indicator-scanner by marketcalls/openalgo-indicator-skills
npx skills add https://github.com/marketcalls/openalgo-indicator-skills --skill indicator-scanner创建一个多符号指标扫描器,根据技术条件筛选股票。
将 $ARGUMENTS 解析为:扫描类型 观察列表
$0 = 扫描类型 (例如,rsi-oversold, rsi-overbought, ema-crossover, supertrend-buy, supertrend-sell, macd-crossover, adx-trending, custom)。默认值:rsi-oversold$1 = 观察列表 (例如,nifty50, banknifty, custom)。默认值:nifty50如果没有参数,询问用户想要扫描什么。
scanners/{scan_type}/ 目录(按需){scan_type}_scanner.py.envclient.history() 获取每个符号的数据广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
openalgo.ta 计算指标client.quotes() 获取实时 LTP 以获取当前值results = []
for symbol in watchlist:
df = fetch_data(symbol, exchange, interval)
close = df["close"]
# 计算指标
rsi = ta.rsi(close, 14)
current_rsi = rsi.iloc[-1]
# 检查条件
if current_rsi < 30: # RSI 超卖
results.append({
"symbol": symbol,
"ltp": close.iloc[-1],
"rsi": current_rsi,
"signal": "OVERSOLD",
})
# 打印表格
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)
| 扫描类型 | 条件 | 指标 |
|---|---|---|
rsi-oversold | RSI(14) < 30 | RSI |
rsi-overbought | RSI(14) > 70 | RSI |
ema-crossover | EMA(10) 在过去 3 根 K 线上穿 EMA(20) | EMA |
ema-crossunder | EMA(10) 在过去 3 根 K 线下穿 EMA(20) | EMA |
supertrend-buy | Supertrend 方向变为 -1(上升趋势) | Supertrend |
supertrend-sell | Supertrend 方向变为 1(下降趋势) | Supertrend |
macd-crossover | MACD 在过去 3 根 K 线上穿信号线 | MACD |
adx-trending | ADX > 25(强趋势) | ADX |
bb-squeeze | 布林带宽度处于 20 周期低点(波动性挤压) | Bollinger |
volume-spike | 成交量 > 2 倍 20 日均值 | Volume |
custom | 向用户询问条件 | 任意 |
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
每周安装量
100
仓库
GitHub 星标数
5
首次出现
2026年2月28日
安全审计
安装于
codex100
opencode100
gemini-cli99
cursor98
amp98
cline98
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) |
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
Weekly Installs
100
Repository
GitHub Stars
5
First Seen
Feb 28, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
codex100
opencode100
gemini-cli99
cursor98
amp98
cline98
Python PDF处理教程:合并拆分、提取文本表格、创建PDF文件
65,000 周安装
腾讯云 CloudBase HTTP API 使用指南 - 原生应用与后端集成方案
649 周安装
iOS语音识别开发指南:SpeechAnalyzer与SFSpeechRecognizer API详解(iOS 10-26+)
663 周安装
Motion 动画库:JavaScript/React/Vue 高性能动画解决方案,支持120fps GPU加速
650 周安装
HTML转PDF转换器 - 支持RTL语言和像素级精确渲染的Puppeteer工具
652 周安装
AWS 架构图生成器 - 自动从 CloudFormation/CLI 生成 AWS 架构图
651 周安装
Ralph Wiggum:基于规范驱动开发的自主AI编程工具,解决上下文窗口溢出
652 周安装
| 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 |