About strategy-compare
A skill for traders that generates scripts to compare VectorBT strategies on shared data, summarize performance metrics, plot equity curves, and include a NIFTY benchmark.
Key features
- 01Creates comparison scripts for a symbol
- 02Fetches data once and runs multiple strategies
- 03Summarizes return, Sharpe, Sortino, and other metrics
- 04Plots equity curves and saves CSV results
- 05Includes NIFTY as a benchmark
Use cases
- 01Compare historical performance across strategies
- 02Evaluate long, short, or combined modes against NIFTY
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ marketcalls/ vectorbt-backtesting-skills --skill strategy-compareAfter installing, type/strategy-comparein Claude Code to confirm it loaded.
Details
From the project READMECreate 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 OpenAlgo ta for ALL indicators by default (never VectorBT built-in). Only switch to TA-Lib if the user explicitly says "talib"/"TA-Lib"
- Always use OpenAlgo ta for specialty indicators (Supertrend, Donchian, etc.) - no TA-Lib equivalent exists
- 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
Comments
Markdown supported