From 114e0f61655c43eb98c7d1f159cc7875b219494c Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Sat, 8 Feb 2025 10:53:27 -0800 Subject: [PATCH] fix: Correct interval format and enhance data fetching error handling in ATR-EMA scanner --- src/screener/t_atr_ema_v2.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/screener/t_atr_ema_v2.py b/src/screener/t_atr_ema_v2.py index 747b4bd..3cb350b 100644 --- a/src/screener/t_atr_ema_v2.py +++ b/src/screener/t_atr_ema_v2.py @@ -56,8 +56,19 @@ def run_atr_ema_target_scanner(min_price: float, max_price: float, min_volume: i for ticker, current_price, current_volume, last_update in stocks: try: - df = get_stock_data(ticker, start_date, end_date, "1D") - if df.empty or len(df) < 50: + # Validate interval and fetch data + VALID_INTERVALS = ["1d", "5m", "15m", "30m", "1h", "4h", "1w"] + + try: + df = get_stock_data(ticker, start_date, end_date, "1d") + if df.empty or len(df) < 50: + print(f"⚠️ {ticker}: Insufficient historical data ({len(df)} bars)") + continue + if "1d" not in VALID_INTERVALS: + raise ValueError(f"Invalid interval format. Must be one of: {VALID_INTERVALS}") + + except Exception as e: + print(f"❌ Data fetch failed for {ticker}: {str(e)}") continue results = indicator.calculate(df) @@ -123,4 +134,4 @@ def run_atr_ema_target_scanner(min_price: float, max_price: float, min_volume: i print("❌ No bullish signals found.") except Exception as e: - print(f"❌ Error during scan: {e}") \ No newline at end of file + print(f"❌ Error during scan: {e}")