From 5b07a565f9a3bb983def2d9bd103f01f5c9f2075 Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Sat, 8 Feb 2025 11:42:36 -0800 Subject: [PATCH] feat: Add date validation to stock data queries --- src/screener/t_atr_ema_v2.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/screener/t_atr_ema_v2.py b/src/screener/t_atr_ema_v2.py index 002fb3b..2112e7d 100644 --- a/src/screener/t_atr_ema_v2.py +++ b/src/screener/t_atr_ema_v2.py @@ -32,6 +32,7 @@ def run_atr_ema_target_scanner(min_price: float, max_price: float, min_volume: i sum(transactions) AS transaction_count FROM stock_db.stock_prices WHERE window_start BETWEEN {start_ts} AND {end_ts} + AND toYear(window_start) <= {end_date.year} GROUP BY ticker HAVING last_close BETWEEN {min_price} AND {max_price} AND total_volume >= {min_volume} @@ -83,6 +84,14 @@ def run_atr_ema_target_scanner(min_price: float, max_price: float, min_volume: i # Get historical data df = get_stock_data(ticker, start_date, end_date, interval) + # Add date validation + if not df.empty: + max_date = df['date'].max() + min_date = df['date'].min() + if max_date.year > end_date.year or min_date.year < (end_date.year - 1): + print(f"⚠️ {ticker}: Invalid date range ({min_date.date()} to {max_date.date()})") + continue + # Enhanced validation with debugging if df.empty: print(f"⚠️ {ticker}: Empty DataFrame")