关于 strategy-compare
为交易者生成策略对比脚本,在同一份数据上运行多个 VectorBT 策略,汇总指标、绘制净值曲线并与 NIFTY 基准比较。
主要功能
- 01按标的创建策略对比脚本
- 02一次获取数据并运行多个策略
- 03汇总收益、夏普、索提诺等指标
- 04绘制策略净值曲线并保存 CSV
- 05纳入 NIFTY 基准进行比较
适用场景
- 01比较多个交易策略的历史表现
- 02评估多空模式或策略相对 NIFTY 的表现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ marketcalls/ vectorbt-backtesting-skills --skill strategy-compare安装后在 Claude Code 中输入/strategy-compare确认已加载。
详细介绍
创建策略对比脚本。
参数
按以下格式解析 $ARGUMENTS:标的代码,后接策略名称
$0= 标的代码(例如 SBIN、RELIANCE、NIFTY)- 其余参数 = 要对比的策略(例如 ema-crossover rsi donchian)
如果只提供标的代码,没有提供策略,则对比:ema-crossover、rsi、donchian、supertrend。 如果策略中包含 "long-vs-short",则针对第一个实际策略,对比 longonly、shortonly 和 both。
指令
- 阅读 vectorbt-expert 技能规则,了解参考模式
- 如果
backtesting/strategy_comparison/目录不存在,则按需创建 - 在
backtesting/strategy_comparison/中创建一个.py文件,命名为{symbol}_strategy_comparison.py - 脚本必须:
- 通过 OpenAlgo 仅获取一次数据
- 如果用户提供 DuckDB 路径,则通过
duckdb.connect(path, read_only=True)直接加载数据。参见 vectorbt-expertrules/duckdb-data.md。 - 如果无法导入
openalgo.ta(独立 DuckDB 模式),则使用内联的exrem()备用实现。 - 默认对所有指标使用 OpenAlgo ta(绝不使用 VectorBT 内置指标)。只有用户明确说“talib”/“TA-Lib”时才切换到 TA-Lib
- 特殊指标(Supertrend、Donchian 等)始终使用 OpenAlgo ta——没有对应的 TA-Lib 实现
- 使用
ta.exrem()清理信号(调用 exrem 前始终先执行.fillna(False)) - 使用相同数据运行每个策略
- 印度交割手续费:交割股票使用
fees=0.00111, fixed_fees=20 - 从每个策略中收集关键指标,并放入并排对比的 DataFrame
- 在对比表中加入 NIFTY 基准(通过 OpenAlgo
NSE_INDEX) - 打印策略与基准的对比表:总收益率、Sharpe、Sortino、最大回撤、胜率、交易次数、盈利因子
- 用通俗语言解读结果——说明哪个策略表现最佳及其原因
- 使用 Plotly 绘制所有策略叠加的权益曲线(
template="plotly_dark") - 将对比结果保存为 CSV
- 代码或日志输出中绝不使用图标/表情符号
用法示例
/strategy-compare RELIANCE ema-crossover rsi donchian
/strategy-compare SBIN long-vs-short ema-crossover
评论
支持 Markdown