Agent skill · research science · aiskillstore
backtesting-frameworks
Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.
Why this skill is useful
Provides specific implementation patterns and domain knowledge for building robust backtesting systems that the AI wouldn't reliably generate on its own.
What it needs
About 7k tokens when loaded. Last updated 2026-08-07. 405 stars on the source repository.
What this skill does
Backtesting Frameworks Build robust, production-grade backtesting systems that avoid common pitfalls and produce reliable strategy performance estimates. When to Use This Skill Developing trading strategy backtests Building backtesting infrastructure Validating strategy performance Avoiding common backtesting biases Implementing walk-forward analysis Comparing strategy alternatives Core Concepts 1. Backtesting Biases Bias Description Mitigation ------ ------------- ------------ Look-ahead Using future information Point-in-time data Survivorship Only testing on survivors Use delisted securities Overfitting Curve-fitting to history Out-of-sample testing Selection Cherry-picking strategies Pre-registration Transaction Ignoring trading costs Realistic cost models 2. Proper Backtest Structure 3. Walk-Forward Analysis Implementation Patterns Pattern 1: Event-Driven Backtester Pattern 2: Vectorized Backtester (Fast) Pattern 3: Walk-Forward Optimization Pattern 4: Monte Carlo Analysis Performance Metrics `python def calculatemetrics(returns: pd.Series, rfrate: float = 0.02) -> Dict[str, float]: """Calculate comprehensive performance metrics.""" # Annualization factor (assuming daily returns) annfactor = 252 # Basic metrics totalreturn = (1 + returns).prod() - 1 annualreturn = (1 + totalreturn) (annfactor / len(returns)) - 1 annualvol = returns.std() np.sqrt(annfactor) # Risk-adjusted returns sharpe = (annualreturn - rfrate) / annualvol if annualvol > 0 else 0 # Sortino (downside deviation) downsidereturns = returns[returns < 0] downsidevol = downsidereturns.std() np.sqrt(annfactor) sortino = (annualreturn - rfrate) / downsidevol if downsidevol > 0 else 0 # Calmar ratio equity = (1 + returns).cumprod() rollingmax = equity.cummax() drawdowns = (equity - rollingmax) / rollingmax maxdrawdown = drawdowns.min() calmar = annualreturn / abs(maxdrawdown) if maxdrawdown != 0 else 0 # Win rate and profit factor wins = returns[returns > 0] losses = returns[returns < 0] winrate = len(wi …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aiskillstore/backtesting-frameworks--7bd7b8