fix: implement api resilience to handle data delays at open

This commit is contained in:
pie
2026-04-28 18:52:36 +01:00
parent dc111abf8c
commit be4df42e01
2 changed files with 22 additions and 4 deletions
+9 -3
View File
@@ -40,14 +40,20 @@ def scan_for_candidates(tickers: List[str] = DEFAULT_TICKERS, min_price: float =
df.ta.atr(length=14, append=True)
latest = df.iloc[-1]
# Safely get the close price, falling back to yesterday if today's is NaN (common at exactly 09:30)
close_price = df['Close'].iloc[-1]
if pd.isna(close_price) and len(df) > 1:
close_price = df['Close'].iloc[-2]
yesterday_atr = df['ATRr_14'].iloc[-2]
close_price = latest['Close']
# Safely get avg volume
avg_volume = df['Volume'].tail(14).mean()
if pd.isna(avg_volume):
avg_volume = 0
# Filters
if close_price < min_price or avg_volume < min_volume or pd.isna(yesterday_atr):
if pd.isna(close_price) or close_price < min_price or avg_volume < min_volume or pd.isna(yesterday_atr):
continue
atr_percent = (yesterday_atr / close_price) * 100