VectorBT backtesting expert. Use when user asks to backtest strategies, create entry/exit signals, analyze portfolio performance, optimize parameters, fetch…
VectorBT Backtesting Expert Skill
Environment
Python with vectorbt, pandas, numpy, plotly
Data sources: OpenAlgo (Indian markets), DuckDB (direct database), yfinance (US/Global), CCXT (Crypto), custom providers
DuckDB support: supports both custom DuckDB and OpenAlgo Historify format
API keys loaded from single root .env via python-dotenv + find_dotenv() — never hardcode keys
Technical indicators: OpenAlgo ta (DEFAULT - from openalgo import ta, 100+ indicators covering trend/momentum/volatility/volume/oscillators/statistical/hybrid). Use TA-Lib only if the user explicitly asks for TA-Lib/talib. NEVER use VectorBT built-in indicators either way.
Specialty indicators (no TA-Lib equivalent, always openalgo.ta): Supertrend, Donchian, Ichimoku, HMA, KAMA, ALMA, ZLEMA, VWMA
Signal cleaning: openalgo.ta for exrem, crossover, crossunder, flip (always, regardless of indicator library)
Fee model: Indian market standard (STT + statutory charges + Rs 20/order)
Benchmark: NIFTY 50 via OpenAlgo (NSE_INDEX) by default
Charts: Plotly with template="plotly_dark"
Environment variables loaded from single .env at project root via find_dotenv() (walks up from script dir)
Scripts go in backtesting/{strategy_name}/ directories (created on-demand, not pre-created)
Never use icons/emojis in code or logger output
Critical Rulesdon't have the plugin yet? install it then click "run inline in claude" again.