Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
marketcalls avatar

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-scanner

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs404
repo stars13
Last updatedJune 12, 2026
Repositorymarketcalls/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

SKILL.mdMarkdownGitHub ↗

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 .env from 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 TypeConditionIndicator
rsi-oversoldRSI(14) < 30RSI
rsi-overboughtRSI(14) > 70RSI
ema-crossoverEMA(10) crossed above EMA(20) in last 3 barsEMA
ema-crossunderEMA(10) crossed below EMA(20) in last 3 barsEMA
supertrend-buySupertrend direction changed to -1 (uptrend)Supertrend
supertrend-sellSupertrend direction changed to 1 (downtrend)Supertrend
macd-crossoverMACD crossed above Signal in last 3 barsMACD
adx-trendingADX > 25 (strong trend)ADX
bb-squeezeBollinger Width at 20-bar low (volatility squeeze)Bollinger
volume-spikeVolume > 2x 20-day averageVolume
customAsk user for conditionsAny

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.csv

Example 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.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.