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")