Strategy 对比
- 作者仓库星标 142
- 作者仓库 vectorbt-backtesting-skills
Create a strategy comparison script.
Arguments
Parse $ARGUMENTS as: symbol followed by strategy names
$0= symbol (e.g., SBIN, RELIANCE, NIFTY)- Remaining args = strategies to compare (e.g., ema-crossover rsi donchian)
If only a symbol is given with no strategies, compare: ema-crossover, rsi, donchian, supertrend. If "long-vs-short" is one of the strategies, compare longonly vs shortonly vs both for the first real strategy.
Instructions
- Read the vectorbt-expert skill rules for reference patterns
- Create
backtesting/strategy_comparison/directory if it doesn't exist (on-demand) - Create a
.pyfile inbacktesting/strategy_comparison/named{symbol}_strategy_comparison.py - The script must:
- Fetch data once via OpenAlgo
- If user provides a DuckDB path, load data directly via
duckdb.connect(path, read_only=True). See vectorbt-expertrules/duckdb-data.md. - If
openalgo.tais not importable (standalone DuckDB), use inlineexrem()fallback. - Use TA-Lib for ALL indicators (never VectorBT built-in)
- Use OpenAlgo ta for specialty indicators (Supertrend, Donchian, etc.)
- Clean signals with
ta.exrem()(always.fillna(False)before exrem) - Run each strategy on the same data
- Indian delivery fees:
fees=0.00111, fixed_fees=20for delivery equity - Collect key metrics from each into a side-by-side DataFrame
- Include NIFTY benchmark in the comparison table (via OpenAlgo
NSE_INDEX) - Print Strategy vs Benchmark comparison table: Total Return, Sharpe, Sortino, Max DD, Win Rate, Trades, Profit Factor
- Explain results in plain language - which strategy performed best and why
- Plot overlaid equity curves for all strategies using Plotly (
template="plotly_dark") - Save comparison to CSV
- Never use icons/emojis in code or logger output
Example Usage
/strategy-compare RELIANCE ema-crossover rsi donchian
/strategy-compare SBIN long-vs-short ema-crossover
- 流狐分类
- 数据
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @marketcalls · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 Parse $ARGUMENTS as: symbol followed by strategy names $0 = symbol (e.g., SBIN, RELIANCE, NIFTY) Remaining args = strategies to compare (e.g., ema-crossover rsi donchian)
Read the vectorbt-expert skill rules for reference patterns Create backtesting/strategycomparison/ directory if it doesn't exist (on-demand) Create a .py file in backtesting/strategycomparison/ named {symbol}strategycomparison.py
/strategy-compare RELIANCE ema-crossover rsi donchian /strategy-compare SBIN long-vs-short ema-crossover
Create a strategy comparison script.
## Arguments
Parse `$ARGUMENTS` as: symbol followed by strategy names
- `$0` = symbol (e.g., SBIN, RELIANCE, NIFTY)
- Remaining args = strategies to compare (e.g., ema-crossover rsi donchian)
If only a symbol is given with no strategies, compare: ema-crossover, rsi, donchian, supertrend.
If "long-vs-short" is one of the strategies, compare longonly vs shortonly vs both for the first real strategy.
## Instructions
1. Read the vectorbt-expert skill rules for reference patterns
2. Create `backtesting/strategy_comparison/` directory if it doesn't exist (on-demand)
3. Create a `.py` file in `backtesting/strategy_comparison/` named `{symbol}_strategy_comparison.py`
3. The script must:
- Fetch data once via OpenAlgo
- If user provides a DuckDB path, load data directly via `duckdb.connect(path, read_only=True)`. See vectorbt-expert `rules/duckdb-data.md`.
- If `openalgo.ta` is not importable (standalone DuckDB), use inline `exrem()` fallback.
- **Use TA-Lib for ALL indicators** (never VectorBT built-in)
- **Use OpenAlgo ta** for specialty indicators (Supertrend, Donchian, etc.)
- Clean signals with `ta.exrem()` (always `.fillna(False)` before exrem)
- Run each strategy on the same data
- **Indian delivery fees**: `fees=0.00111, fixed_fees=20` for delivery equity
- Collect key metrics from each into a side-by-side DataFrame
- **Include NIFTY benchmark** in the comparison table (via OpenAlgo `NSE_INDEX`)
- **Print Strategy vs Benchmark comparison table**: Total Return, Sharpe, Sortino, Max DD, Win Rate, Trades, Profit Factor
- **Explain results** in plain language - which strategy performed best and why
- Plot overlaid equity curves for all strategies using Plotly (`template="plotly_dark"`)
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Arguments → Instructions → Example Usage
要点 -> Use TA-Lib for ALL indicators · Use OpenAlgo ta · Indian delivery fees · Include NIFTY benchmark · Print Strategy vs Benchmark comparison table · Explain results
文件/命令 -> $ARGUMENTS · backtesting/strategycomparison/ · .py · {symbol}strategycomparison.py · duckdb.connect(path, readonly=True) · rules/duckdb-data.md · openalgo.ta · exrem()
内容 SHA-256 -> 6b15d2bc1551
原文结构
适用与边界
原文中的明确线索
$ARGUMENTS、backtesting/strategycomparison/、.py、{symbol}strategycomparison.py、duckdb.connect(path, readonly=True)、rules/duckdb-data.md、openalgo.ta、exrem()