vectorbt

High-performance vectorized backtesting with parameter optimization, portfolio simulation, and rich performance metrics

By agiprolabs · 375 installs

npx skills add agiprolabs/claude-trading-skills --skill vectorbt

Source repository · Upstream listing

Vectorized Backtesting with vectorbt Overview vectorbt is a Python library for vectorized backtesting — running strategy simulations using NumPy/pandas array operations instead of bar by bar loops. This makes it 100–1000x faster than event driven frameworks (backtrader, zipline), enabling parameter optimization across thousands of combinations in seconds. Key strengths: Blazing speed via NumPy vectorization Built in parameter grid search and optimization 50+ built in performance metrics (Sharpe, Sortino, Calmar, max drawdown, profit factor) Rich plotting (equity curves, drawdowns, trade markers, heatmaps) Native pandas integration — your data stays in DataFrames throughout Installation vectorbt pulls in pandas, NumPy, and Plotly automatically. For technical indicators, also install pandas ta: Core Concepts 1. Signals — Boolean Entry/Exit Arrays Strategies in vectorbt are expressed as boolean pandas Series (or arrays) indicating where to enter and exit positions: vectorbt resolves conflicting signals automatically (you can't enter while already in a position). 2. Portfolio — The Backtesting Engine vbt.Portfolio.from signals() is the primary backtesting function. It takes price data and entry/exit signals, simulates trades, and computes performance: 3. Metrics — Built in Performance Analysis 4. Parameter Optimization — Grid Search in Seconds Pass arrays instead of scalars to test many parameter combos simultaneously: Basic Workflow Step 1: Load OHLCV Data For Solana tokens, fetch data via the birdeye api skill and load into a DataFrame. Step 2: Compute Indicators Step 3: Generate Entry/Exit Signals Step 4: Run Backtest Step 5: Analyze Results Key Portfolio Parameters Parameter Description Example close Price series (pd.Series or DataFrame) df["close"] entries Boolean entry signals fast slow exits Boolean exit signals fast < slow init cash Starting capital 10 000 fees Fee per trade (fraction) 0.003 (0.3%) slippage Slippage per trade (fraction) 0.005 (0.5%) size Position size 0.95 size type How to interpret size "percent" , "amount" , "value" freq Data frequency "1h" , "4h" , "1d" direction Trade direction "both" , "longonly" , "shortonly" accumulate Allow adding to positions False sl stop Stop loss level (fraction) 0.05 (5%) tp stop Take profit level (fraction) 0.10 (10%) Performance Metrics Returns total return() — cumulative return over the period annualized return() — annualized compound return daily returns() — Series of daily returns Risk max drawdown() — maximum peak to trough decline annualized volatility() — annualized standard deviation of returns value at risk() — VaR at specified confidence level Risk Adjusted sharpe ratio() — excess return per unit volatility sortino ratio() — excess return per unit downside deviation calmar ratio() — annualized return / max drawdown omega ratio() — probability weighted gain/loss ratio Trade Statistics trades.win rate() — fraction of profitable trades trades.profit factor() — gross profit / gross loss trades.expectancy() — average P&L per trade trades.avg winning trade() — mean profit on winners trades.avg losing trade() — mean loss on losers trades.count() — total number of completed trades Parameter Optimization Grid Search Walk Forward Validation Always validate optimized parameters on out of sample data: See references/optimization guide.md for detailed walk forward methodology and overfitting prevention. Crypto Specific Considerations 24/7 Markets Crypto markets never close. Use hourly or minute based frequencies, not business day frequencies: Realistic Fees DEX swaps on Solana typically cost 0.25–1% including AMM fees. CEX spot fees are 0.05–0.1%. Slippage Low liquidity tokens can have 1–5% slippage. Always model this: Short History Many tokens have less than 1 year of data. Be cautious about annualizing metrics from short samples. Common Strategy Patterns EMA Crossover RSI Mean Reversion Bollinger Band Breakout Stop Loss and Take Profit Related Skills pandas ta — Technical indicator computation (feeds vectorbt signals) birdeye api — Fetch Solana token OHLCV data for backtesting trading visualization — Advanced chart generation for backtest results portfolio analytics — Deeper portfolio level risk/return analysis position sizing — Optimal position sizing methodology risk management — Portfolio level risk guardrails regime detection — Market regime awareness for adaptive strategies Files References references/api guide.md — Complete vectorbt API reference for Portfolio, indicators, plotting, and data loading references/optimization guide.md — Grid search, walk forward validation, overfitting prevention, and optimization best practices Scripts scripts/backtest example.py — Three strategy backtest comparison using synthetic data (EMA crossover, RSI mean reversion, Bollinger breakout) scripts/parameter sweep.py — EMA crossover parameter grid search with walk forward validation