diff --git a/services/ml/generate_talib_annotations.py b/services/ml/generate_talib_annotations.py index 72205f2..ee1da96 100644 --- a/services/ml/generate_talib_annotations.py +++ b/services/ml/generate_talib_annotations.py @@ -42,12 +42,10 @@ TALIB_PATTERNS = { 'CDLHARAMICROSS': 'Harami Cross', 'CDLPIERCING': 'Piercing', 'CDLDARKCLOUDCOVER': 'Dark Cloud Cover', - 'CDLTHREEWHITESOLDIERS': 'Three White Soldiers', - 'CDLTHREEBLACKCROWS': 'Three Black Crows', 'CDLMARUBOZU': 'Marubozu', 'CDLSPINNINGTOP': 'Spinning Top', - 'CDL3BLACKCROWS': 'Three Black Crows', 'CDL3WHITESOLDIERS': 'Three White Soldiers', + 'CDL3BLACKCROWS': 'Three Black Crows', 'CDLABANDONEDBABY': 'Abandoned Baby', 'CDLADVANCEBLOCK': 'Advance Block', 'CDLBELTHOLD': 'Belt Hold', @@ -94,6 +92,7 @@ def load_ohlcv(input_path: str) -> pd.DataFrame: Load OHLCV data from CSV file. Expected columns: time, open, high, low, close[, volume] + Time can be Unix timestamp or date string. """ logger.info(f"Loading OHLCV data from {input_path}") df = pd.read_csv(input_path) @@ -103,6 +102,14 @@ def load_ohlcv(input_path: str) -> pd.DataFrame: if missing: raise ValueError(f"Missing required columns: {missing}") + # Convert time to Unix timestamp if it's a date string + if df['time'].dtype == 'object': + logger.info("Converting date strings to Unix timestamps...") + df['time'] = pd.to_datetime(df['time']).astype(int) // 10**9 + + # Ensure time is integer + df['time'] = df['time'].astype(int) + logger.info(f"Loaded {len(df)} candles") return df