Loading...
Loading...
Scan multiple symbols with indicator conditions. Find stocks matching RSI oversold, EMA crossovers, Supertrend signals, and custom filter combinations.
npx skill4agent add marketcalls/openalgo-indicator-skills indicator-scanner$ARGUMENTS$0$1scanners/{scan_type}/{scan_type}_scanner.py.envclient.history()openalgo.taclient.quotes()results = []
for symbol in watchlist:
df = fetch_data(symbol, exchange, interval)
close = df["close"]
# Compute indicator
rsi = ta.rsi(close, 14)
current_rsi = rsi.iloc[-1]
# Check condition
if current_rsi < 30: # RSI oversold
results.append({
"symbol": symbol,
"ltp": close.iloc[-1],
"rsi": current_rsi,
"signal": "OVERSOLD",
})
# Print table
df_results = pd.DataFrame(results)
print(df_results.to_string(index=False))
df_results.to_csv(script_dir / f"{scan_type}_results.csv", index=False)| Scan Type | Condition | Indicator |
|---|---|---|
| RSI(14) < 30 | RSI |
| RSI(14) > 70 | RSI |
| EMA(10) crossed above EMA(20) in last 3 bars | EMA |
| EMA(10) crossed below EMA(20) in last 3 bars | EMA |
| Supertrend direction changed to -1 (uptrend) | Supertrend |
| Supertrend direction changed to 1 (downtrend) | Supertrend |
| MACD crossed above Signal in last 3 bars | MACD |
| ADX > 25 (strong trend) | ADX |
| Bollinger Width at 20-bar low (volatility squeeze) | Bollinger |
| Volume > 2x 20-day average | Volume |
| Ask user for conditions | Any |
NIFTY50 = [
"ADANIENT", "ADANIPORTS", "APOLLOHOSP", "ASIANPAINT", "AXISBANK",
"BAJAJ-AUTO", "BAJFINANCE", "BAJAJFINSV", "BPCL", "BHARTIARTL",
"BRITANNIA", "CIPLA", "COALINDIA", "DIVISLAB", "DRREDDY",
"EICHERMOT", "GRASIM", "HCLTECH", "HDFCBANK", "HDFCLIFE",
"HEROMOTOCO", "HINDALCO", "HINDUNILVR", "ICICIBANK", "INDUSINDBK",
"INFY", "ITC", "JSWSTEEL", "KOTAKBANK", "LT",
"M&M", "MARUTI", "NESTLEIND", "NTPC", "ONGC",
"POWERGRID", "RELIANCE", "SBILIFE", "SBIN", "SUNPHARMA",
"TCS", "TATACONSUM", "TATAMOTORS", "TATASTEEL", "TECHM",
"TITAN", "ULTRACEMCO", "UPL", "WIPRO",
]BANKNIFTY = [
"HDFCBANK", "ICICIBANK", "KOTAKBANK", "AXISBANK", "SBIN",
"INDUSINDBK", "BANKBARODA", "FEDERALBNK", "PNB", "IDFCFIRSTB",
"BANDHANBNK", "AUBANK",
]Symbol LTP RSI(14) Signal
------ --- ------- ------
SBIN 769.60 28.4 OVERSOLD
TATASTEEL 142.30 25.1 OVERSOLD
COALINDIA 385.00 29.7 OVERSOLD
Scan: RSI Oversold (<30) | Watchlist: NIFTY 50 | Date: 2025-02-28
Found 3 / 50 symbols matching condition
Results saved to: scanners/rsi_oversold/rsi_oversold_results.csv/indicator-scanner rsi-oversold nifty50/indicator-scanner ema-crossover banknifty/indicator-scanner supertrend-buy nifty50/indicator-scanner volume-spike nifty50/indicator-scanner custom