关于 algo-strategy
此技能根据现有模板生成双模式交易策略文件,并按用户选择设置标的、交易所、周期、指标库和执行类型。文件写入指定的 strategies 目录,并提供回测和实盘运行命令。
主要功能
- 01支持多种策略模板
- 02配置标的、交易所和周期
- 03询问指标库与执行类型
- 04生成兼容主机的策略文件
- 05提供回测与实盘运行命令
适用场景
- 01根据目录模板创建策略
- 02为 ML 策略配置训练文件
- 03准备策略以进行回测或实盘运行
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ marketcalls/ openalgo-execution-skills --skill algo-strategy安装后在 Claude Code 中输入/algo-strategy确认已加载。
详细介绍
从模板创建完整的双模式策略文件。
参数
将 $ARGUMENTS 解析为:模板 symbol exchange interval
$0= 模板(例如ema-crossover、rsi、supertrend、donchian、macd、opening-range、atr-breakout、bb-squeeze、ml-logistic、ml-xgb、pairs-trading、regime-trend、event-driven)$1= symbol(例如 SBIN、RELIANCE、NIFTY)。默认值:模板目录中的默认值$2= exchange(例如 NSE、NSE_INDEX、NFO)。默认值:模板目录中的默认值$3= interval(例如 1m、5m、15m、D)。默认值:模板默认值
如果没有参数,询问用户想使用哪个模板。请参阅 algo-expert/rules/strategy-catalog.md。
生成前必须询问
解析参数后,询问用户(不要默默使用默认值):
-
指标库:
(1) openalgo [默认] (2) talib- 默认使用 openalgo。用户必须明确确认使用 talib。
- 专用指标(Supertrend、Donchian、Ichimoku、HMA、KAMA)始终使用 openalgo。
-
执行类型 - 默认值取决于模板(请参阅 strategy-catalog.md):
(1) end-of-candle (eoc)- 在 bar 收盘时生成信号,在下一根 bar 以 MARKET 执行(大多数模板的默认值)(2) real-time limit (limit)- 由 tick 驱动的 LIMIT 下单(atr-breakout 的默认值)(3) stop-trigger (stop)- 由经纪商端执行 SL/SL-M(opening-range 的默认值)
告知用户该模板建议使用的默认值,并允许用户选择其他值。
说明
- 阅读
algo-expert/rules/unified-strategy-pattern.md、mode-toggle.md和execution-types.md。 - 阅读匹配的模板
algo-expert/rules/assets/<template>/strategy.py,并以此为起点。 - 如果
strategies/<template>_<symbol>/目录不存在,则创建该目录。 - 将模板复制到
strategies/<template>_<symbol>/strategy.py,并:- 将
SYMBOL、EXCHANGE、INTERVAL常量替换为用户指定的值 - 将
INDICATOR_LIB设为用户的选择("openalgo"或"talib") - 将
EXECUTION_TYPE设为用户的选择("eoc"、"limit"、"stop") - 将
STRATEGY_NAME更新为<template>_<symbol>(默认值;可通过环境变量覆盖) - 调整
PRODUCT以匹配资产类别(NSE 股票 → MIS 或 CNC;NFO → NRML) - 将
QUANTITY调整为合理的起始值(股票为 1,期货为每手数量)
- 将
- 对于 ML 模板(
ml-logistic、ml-xgb),还需复制train.py,并提醒用户在运行策略之前先运行它:python strategies/ml_logistic_RELIANCE/train.py - 文件必须符合
self-hosted-strategies.md中的主机兼容性要求:- 优先读取 HOST_SERVER,然后回退到 OPENALGO_HOST
- 从 OPENALGO_STRATEGY_EXCHANGE 读取交易所
- 安装 SIGTERM/SIGINT 处理程序
- 仅向 stdout 输出日志
- 如果没有
--modeCLI 参数,dispatcher 从环境变量MODE读取值
- 输出:
- 文件位置
- 后续步骤:
- 回测:
python strategies/<name>/strategy.py --mode backtest - 实盘:
python strategies/<name>/strategy.py --mode live - 上传到 /python:使用
/algo-host <name>进行验证并生成上传指南
- 回测:
可用模板
| 模板 | 默认 symbol | 默认 exchange | 默认 interval | 默认执行方式 |
|---|---|---|---|---|
ema-crossover | SBIN | NSE | 5m | eoc |
rsi | RELIANCE | NSE | 15m | eoc |
supertrend | NIFTY | NSE_INDEX | 5m | eoc |
donchian | NIFTY | NSE_INDEX | D | eoc |
macd | INFY | NSE | D | eoc |
opening-range | SBIN | NSE | 5m | stop |
atr-breakout | RELIANCE | NSE | 5m | limit |
bb-squeeze | TCS | NSE | 15m | eoc |
ml-logistic | RELIANCE | NSE | 15m | eoc |
ml-xgb | RELIANCE | NSE | 15m | eoc |
pairs-trading | SBIN/PNB | NSE | D | eoc(双腿) |
regime-trend | RELIANCE | NSE | D | eoc(ADX+VIX+成交量门控) |
event-driven | RELIANCE | NSE | D | scheduled-time |
对于期权模板(short-straddle、iron-condor),请改用 /algo-options。
成本
文件中的 COSTS = cost_lookup(PRODUCT, EXCHANGE) 会自动解析:
- MIS + NSE → 0.0225% + Rs 20 + 5 bps 滑点
- CNC + NSE → 0.111% + Rs 20 + 3 bps 滑点
- NRML + NFO → 0.018% + Rs 20 + 2 bps 滑点(期货)
- NRML + NFO with options → 0.098% + Rs 20 + 10 bps 滑点
如果用户需要不同的经纪商费率,请引导他们查看 algo-expert/rules/transaction-costs.md,以覆盖这些常量。
风险默认值
模板附带合理的 RISK 值(参见 strategy-catalog.md)。请告知用户,这些值只是起始点,并非最优值——实盘前应通过回测进行调优。
避免
- 不要在代码、日志输出或技能文本中使用图标/表情符号
- 不要在任意路径下生成文件——始终放在
strategies/<name>/下 - 不要在用户未明确运行的情况下自动将
MODE=live切换为实盘模式
评论
支持 Markdown