diff --git a/src/screener/t_candlestick.py b/src/screener/t_candlestick.py index efe56ba..43e2447 100644 --- a/src/screener/t_candlestick.py +++ b/src/screener/t_candlestick.py @@ -35,10 +35,11 @@ CANDLESTICK_PATTERNS = { def check_entry_signal(df: pd.DataFrame, selected_patterns: list = None) -> list: """ - Check for bullish candlestick patterns + Check for bullish candlestick patterns across the entire date range Args: df (pd.DataFrame): DataFrame with OHLCV data + selected_patterns (list): List of patterns to scan for Returns: list: List of tuples (signal, date, signal_data) for each signal found @@ -62,22 +63,22 @@ def check_entry_signal(df: pd.DataFrame, selected_patterns: list = None) -> list df['close'].values ) - # Look for signals in the last candle - i = len(df) - 1 - found_patterns = [] - - for pattern_name, pattern_values in pattern_signals.items(): - # Check if we have a bullish signal (value > 0) - if pattern_values[i] > 0: - found_patterns.append(CANDLESTICK_PATTERNS[pattern_name]['description']) - - if found_patterns: - signal_data = { - 'price': df.iloc[i]['close'], - 'patterns': ', '.join(found_patterns), - 'pattern_count': len(found_patterns) - } - signals.append((True, df.iloc[i]['date'], signal_data)) + # Look for signals across all candles + for i in range(len(df)): + found_patterns = [] + + for pattern_name, pattern_values in pattern_signals.items(): + # Check if we have a bullish signal (value > 0) + if pattern_values[i] > 0: + found_patterns.append(CANDLESTICK_PATTERNS[pattern_name]['description']) + + if found_patterns: + signal_data = { + 'price': df.iloc[i]['close'], + 'patterns': ', '.join(found_patterns), + 'pattern_count': len(found_patterns) + } + signals.append((True, df.iloc[i]['date'], signal_data)) return signals