원클릭으로
indicator-scanner
// Scan multiple symbols with indicator conditions. Find stocks matching RSI oversold, EMA crossovers, Supertrend signals, and custom filter combinations.
// Scan multiple symbols with indicator conditions. Find stocks matching RSI oversold, EMA crossovers, Supertrend signals, and custom filter combinations.
OpenAlgo indicator expert. Use when user asks about technical indicators, charting, plotting indicators, creating custom indicators, building dashboards, real-time feeds, scanning stocks, indicator combinations, or using openalgo.ta. Also triggers for indicator functions (sma, ema, rsi, macd, supertrend, bollinger, atr, adx, ichimoku, stochastic, obv, vwap, crossover, crossunder, exrem).
Build a web dashboard for technical indicator analysis using Plotly Dash or Streamlit. Supports single-symbol, multi-symbol, and multi-timeframe layouts with real-time refresh.
Set up the Python environment for OpenAlgo indicator analysis. Installs openalgo, plotly, dash, streamlit, numba, yfinance, matplotlib, seaborn, and creates the project folder structure.
Create a custom technical indicator using Numba JIT + NumPy. Generates production-grade, O(n) optimized indicator functions with charting and benchmarking.
Chart any technical indicator on a symbol using Plotly. Creates interactive dark-themed charts with candlestick, overlays, and subplots. Supports all 100+ openalgo.ta indicators.
Set up real-time indicator computation on live WebSocket market data. Streams LTP/Quote/Depth and computes indicators in real-time with optional Plotly live charting.
| name | indicator-scanner |
| description | Scan multiple symbols with indicator conditions. Find stocks matching RSI oversold, EMA crossovers, Supertrend signals, and custom filter combinations. |
| argument-hint | [scan-type] [watchlist] |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion |
Create a multi-symbol indicator scanner that screens stocks by technical conditions.
Parse $ARGUMENTS as: scan-type watchlist
$0 = scan type (e.g., rsi-oversold, rsi-overbought, ema-crossover, supertrend-buy, supertrend-sell, macd-crossover, adx-trending, custom). Default: rsi-oversold$1 = watchlist (e.g., nifty50, banknifty, custom). Default: nifty50If no arguments, ask the user what they want to scan for.
scanners/{scan_type}/ directory (on-demand){scan_type}_scanner.py.env from project rootclient.history()openalgo.taclient.quotes() for current valuesresults = []
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-oversold | RSI(14) < 30 | RSI |
rsi-overbought | RSI(14) > 70 | RSI |
ema-crossover | EMA(10) crossed above EMA(20) in last 3 bars | EMA |
ema-crossunder | EMA(10) crossed below EMA(20) in last 3 bars | EMA |
supertrend-buy | Supertrend direction changed to -1 (uptrend) | Supertrend |
supertrend-sell | Supertrend direction changed to 1 (downtrend) | Supertrend |
macd-crossover | MACD crossed above Signal in last 3 bars | MACD |
adx-trending | ADX > 25 (strong trend) | ADX |
bb-squeeze | Bollinger Width at 20-bar low (volatility squeeze) | Bollinger |
volume-spike | Volume > 2x 20-day average | Volume |
custom | 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