skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
marketcalls/openalgo-indicator-skills536 installs

indicator-scanner

Scan multiple symbols with indicator conditions. Find stocks matching RSI oversold, EMA crossovers, Supertrend signals, and custom filter combinations.

How do I install this agent skill?

npx skills add https://github.com/marketcalls/openalgo-indicator-skills --skill indicator-scanner
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill accepts user arguments to generate dynamic files and directories, exposing an indirect prompt injection or structure layout manipulation risk via malicious inputs if not sanitized. The primary logic involves parsing and writing local boilerplate automation scripts for technical stock scanning.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerpass

    1 file scanned · No issues

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

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

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/marketcalls/openalgo-indicator-skills/indicator-scanner">View indicator-scanner on skillZs</a>