strategy-compare

Compare multiple strategies or directions (long vs short vs both) on the same symbol. Generates side-by-side stats table.

By marketcalls · 2,025 installs

npx skills add marketcalls/vectorbt-backtesting-skills --skill strategy-compare

Source repository · Upstream listing

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 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=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