
Indicator Scanner
- 404 installs
- 13 repo stars
- Updated June 12, 2026
- marketcalls/openalgo-indicator-skills
indicator-scanner is a finance skill that implements OpenAlgo indicator scanners batch-evaluating symbols against technical conditions like RSI oversold, EMA crossovers, and Supertrend signals to produce ranked actionabl
About
indicator-scanner is a Claude Code skill for quantitative developers building OpenAlgo trading automations who need multi-symbol technical screeners. The skill creates scanners that batch-evaluate watchlists—defaulting to nifty50 or banknifty—against conditions including rsi-oversold, rsi-overbought, ema-crossover, supertrend-buy, supertrend-sell, macd-crossover, adx-trending, and custom filter combinations. Arguments parse as scan-type and watchlist, with tools for Read, Write, Edit, Bash, Glob, and Grep to generate runnable scanner code. Developers reach for indicator-scanner when they need scheduled or triggered signal lists ranking symbols that match indicator criteria rather than manually charting each ticker.
- Universe and symbol batching
- Ranking and filter rules
- Scheduled and on-demand scans
- Signal list output formats
- Performance-aware scanning loops
Indicator Scanner by the numbers
- 404 all-time installs (skills.sh)
- +22 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #248 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/marketcalls/openalgo-indicator-skills --skill indicator-scannerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 404 |
|---|---|
| repo stars | ★ 13 |
| Last updated | June 12, 2026 |
| Repository | marketcalls/openalgo-indicator-skills ↗ |
How do you batch-scan stocks by technical indicators?
Implement OpenAlgo indicator scanners that batch-evaluate symbols, rank matches, and emit actionable signal lists on schedules or triggers.
Who is it for?
Quantitative developers using OpenAlgo who need automated multi-symbol technical scanners with ranked signal output on schedules or triggers.
Skip if: Discretionary traders wanting chart UI analysis only or teams not using OpenAlgo as their trading automation platform.
When should I use this skill?
A watchlist needs batch screening for RSI, EMA, Supertrend, MACD, or ADX conditions with ranked actionable signal output.
What you get
Runnable OpenAlgo scanner code emitting ranked signal lists for symbols matching RSI, EMA, Supertrend, MACD, or ADX conditions on a watchlist.
- Scanner source code
- Ranked signal lists
By the numbers
- 8 built-in scan types including rsi-oversold, ema-crossover, and macd-crossover
Files
Create a multi-symbol indicator scanner that screens stocks by technical conditions.
Arguments
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: nifty50
If no arguments, ask the user what they want to scan for.
Instructions
1. Read the indicator-expert rules for reference 2. Create scanners/{scan_type}/ directory (on-demand) 3. Create {scan_type}_scanner.py 4. The script must:
- Load
.envfrom project root - Define the watchlist (predefined or custom)
- Fetch data for each symbol via
client.history() - Compute indicator(s) using
openalgo.ta - Check the scan condition
- Print results as a formatted table
- Save results to CSV
- Optionally get real-time LTP via
client.quotes()for current values
Scan Logic Pattern
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)Predefined Scan Types
| 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 |
Predefined Watchlists
NIFTY 50 (nifty50)
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",
]Bank NIFTY (banknifty)
BANKNIFTY = [
"HDFCBANK", "ICICIBANK", "KOTAKBANK", "AXISBANK", "SBIN",
"INDUSINDBK", "BANKBARODA", "FEDERALBNK", "PNB", "IDFCFIRSTB",
"BANDHANBNK", "AUBANK",
]Output Format
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.csvExample Usage
/indicator-scanner rsi-oversold nifty50 /indicator-scanner ema-crossover banknifty /indicator-scanner supertrend-buy nifty50 /indicator-scanner volume-spike nifty50 /indicator-scanner custom
Related skills
FAQ
What scan types does indicator-scanner support?
indicator-scanner supports rsi-oversold, rsi-overbought, ema-crossover, supertrend-buy, supertrend-sell, macd-crossover, adx-trending, and custom filter combinations. Arguments parse as scan-type and watchlist, defaulting to rsi-oversold on the nifty50 watchlist.
What watchlists can indicator-scanner screen?
indicator-scanner screens watchlists including nifty50, banknifty, and custom symbol lists passed as arguments. The generated OpenAlgo scanner batch-evaluates all symbols and emits ranked signal lists for matches against the chosen technical conditions.