feat: Scan entire date range for candlestick pattern signals

This commit is contained in:
Bobby (aider) 2025-02-19 22:23:36 -08:00
parent fa30002ef9
commit cbac015a5a

View File

@ -35,10 +35,11 @@ CANDLESTICK_PATTERNS = {
def check_entry_signal(df: pd.DataFrame, selected_patterns: list = None) -> list: 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: Args:
df (pd.DataFrame): DataFrame with OHLCV data df (pd.DataFrame): DataFrame with OHLCV data
selected_patterns (list): List of patterns to scan for
Returns: Returns:
list: List of tuples (signal, date, signal_data) for each signal found 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 df['close'].values
) )
# Look for signals in the last candle # Look for signals across all candles
i = len(df) - 1 for i in range(len(df)):
found_patterns = [] found_patterns = []
for pattern_name, pattern_values in pattern_signals.items(): for pattern_name, pattern_values in pattern_signals.items():
# Check if we have a bullish signal (value > 0) # Check if we have a bullish signal (value > 0)
if pattern_values[i] > 0: if pattern_values[i] > 0:
found_patterns.append(CANDLESTICK_PATTERNS[pattern_name]['description']) found_patterns.append(CANDLESTICK_PATTERNS[pattern_name]['description'])
if found_patterns: if found_patterns:
signal_data = { signal_data = {
'price': df.iloc[i]['close'], 'price': df.iloc[i]['close'],
'patterns': ', '.join(found_patterns), 'patterns': ', '.join(found_patterns),
'pattern_count': len(found_patterns) 'pattern_count': len(found_patterns)
} }
signals.append((True, df.iloc[i]['date'], signal_data)) signals.append((True, df.iloc[i]['date'], signal_data))
return signals return signals