
Strategy Compare
Generate a Python script that backtests several strategies on one symbol and prints a side-by-side stats table.
Overview
Strategy-compare is an agent skill for the Validate phase that builds a Python script to compare multiple backtest strategies on one symbol with a side-by-side stats table.
Install
npx skills add https://github.com/marketcalls/vectorbt-backtesting-skills --skill strategy-compareWhat is this skill?
- Parses symbol plus strategy list; defaults to ema-crossover, rsi, donchian, supertrend when omitted
- long-vs-short mode compares longonly, shortonly, and both for a chosen strategy
- Single OpenAlgo data fetch; optional DuckDB read_only load per vectorbt-expert duckdb-data rules
- TA-Lib for indicators; OpenAlgo ta for Supertrend, Donchian; exrem with fillna(False)
- Writes backtesting/strategy_comparison/{symbol}_strategy_comparison.py on demand
- Default 4-strategy compare: ema-crossover, rsi, donchian, supertrend
Adoption & trust: 1.1k installs on skills.sh; 150 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have several TA strategies in mind for one ticker but no repeatable script to rank them on the same data and signal hygiene.
Who is it for?
Indian equities or index symbols workflows using OpenAlgo, VectorBT, TA-Lib, and optional DuckDB historical files.
Skip if: Live trading deployment, portfolio accounting, or non-Python stacks without the vectorbt-expert conventions.
When should I use this skill?
When comparing multiple strategies or long/short/both on one symbol; argument-hint: [symbol] [strategies...].
What do I get? / Deliverables
You get a runnable {symbol}_strategy_comparison.py that fetches data once and tables stats across strategies (or long/short/both variants).
- Python comparison script in backtesting/strategy_comparison/
- Side-by-side strategy statistics output when executed
Recommended Skills
Journey fit
Strategy comparison is how you validate edges before committing capital or productizing a signal stack. Prototype subphase fits on-demand backtest scripts and long-vs-short experiments—not production brokerage ops.
How it compares
Opinionated comparison generator tied to OpenAlgo/VectorBT—not a generic charting MCP or spreadsheet-only analysis.
Common Questions / FAQ
Who is strategy-compare for?
Solo builders backtesting systematic strategies with VectorBT who want fast A/B tables before tuning parameters.
When should I use strategy-compare?
In Validate prototype when choosing among ema-crossover, rsi, donchian, supertrend, or custom named strategies on one symbol.
Is strategy-compare safe to install?
It can run Bash and fetch market data—inspect generated scripts and check the Security Audits panel on this Prism page.
SKILL.md
READMESKILL.md - Strategy Compare
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"`) - Save comparison to CSV 4. 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`