backtesting-trading-strategies
This skill is for backtesting trading strategies, helping users evaluate and optimize their trading models' performance on historical data.
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill backtesting-trading-strategiesBefore / After Comparison
1 组Manually backtesting trading strategies is time-consuming and error-prone, making it difficult to comprehensively evaluate strategy performance on historical data, thus affecting the accuracy of investment decisions.
This skill automates trading strategy backtesting, quickly evaluating and optimizing model performance on historical data, providing reliable data support, and improving decision quality.
backtesting-trading-strategies
Backtesting Trading Strategies
Overview
Validate trading strategies against historical data before risking real capital. This skill provides a complete backtesting framework with 8 built-in strategies, comprehensive performance metrics, and parameter optimization.
Key Features:
-
8 pre-built trading strategies (SMA, EMA, RSI, MACD, Bollinger, Breakout, Mean Reversion, Momentum)
-
Full performance metrics (Sharpe, Sortino, Calmar, VaR, max drawdown)
-
Parameter grid search optimization
-
Equity curve visualization
-
Trade-by-trade analysis
Prerequisites
Install required dependencies:
set -euo pipefail
pip install pandas numpy yfinance matplotlib
Optional for advanced features:
set -euo pipefail
pip install ta-lib scipy scikit-learn
Instructions
- Fetch historical data (cached to
${CLAUDE_SKILL_DIR}/data/for reuse):
python ${CLAUDE_SKILL_DIR}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d
- Run a backtest with default or custom parameters:
python ${CLAUDE_SKILL_DIR}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y
python ${CLAUDE_SKILL_DIR}/scripts/backtest.py \
--strategy rsi_reversal \
--symbol ETH-USD \
--period 1y \
--capital 10000 \ # 10000: 10 seconds in ms
--params '{"period": 14, "overbought": 70, "oversold": 30}'
-
Analyze results saved to
${CLAUDE_SKILL_DIR}/reports/-- includes*_summary.txt(performance metrics),*_trades.csv(trade log),*_equity.csv(equity curve data), and*_chart.png(visual equity curve). -
Optimize parameters via grid search to find the best combination:
python ${CLAUDE_SKILL_DIR}/scripts/optimize.py \
--strategy sma_crossover \
--symbol BTC-USD \
--period 1y \
--param-grid '{"fast_period": [10, 20, 30], "slow_period": [50, 100, 200]}' # HTTP 200 OK
Output
Performance Metrics
Metric Description
Total Return Overall percentage gain/loss
CAGR Compound annual growth rate
Sharpe Ratio Risk-adjusted return (target: >1.5)
Sortino Ratio Downside risk-adjusted return
Calmar Ratio Return divided by max drawdown
Risk Metrics
Metric Description
Max Drawdown Largest peak-to-trough decline
VaR (95%) Value at Risk at 95% confidence
CVaR (95%) Expected loss beyond VaR
Volatility Annualized standard deviation
Trade Statistics
Metric Description
Total Trades Number of round-trip trades
Win Rate Percentage of profitable trades
Profit Factor Gross profit divided by gross loss
Expectancy Expected value per trade
Example Output
================================================================================
BACKTEST RESULTS: SMA CROSSOVER
BTC-USD | [start_date] to [end_date]
================================================================================
PERFORMANCE | RISK
Total Return: +47.32% | Max Drawdown: -18.45%
CAGR: +47.32% | VaR (95%): -2.34%
Sharpe Ratio: 1.87 | Volatility: 42.1%
Sortino Ratio: 2.41 | Ulcer Index: 8.2
--------------------------------------------------------------------------------
TRADE STATISTICS
Total Trades: 24 | Profit Factor: 2.34
Win Rate: 58.3% | Expectancy: $197.17
Avg Win: $892.45 | Max Consec. Losses: 3
================================================================================
Supported Strategies
Strategy Description Key Parameters
sma_crossover
Simple moving average crossover
fast_period, slow_period
ema_crossover
Exponential MA crossover
fast_period, slow_period
rsi_reversal
RSI overbought/oversold
period, overbought, oversold
macd
MACD signal line crossover
fast, slow, signal
bollinger_bands
Mean reversion on bands
period, std_dev
breakout
Price breakout from range
lookback, threshold
mean_reversion
Return to moving average
period, z_threshold
momentum
Rate of change momentum
period, threshold
Configuration
Create ${CLAUDE_SKILL_DIR}/config/settings.yaml:
data:
provider: yfinance
cache_dir: ./data
backtest:
default_capital: 10000 # 10000: 10 seconds in ms
commission: 0.001 # 0.1% per trade
slippage: 0.0005 # 0.05% slippage
risk:
max_position_size: 0.95
stop_loss: null # Optional fixed stop loss
take_profit: null # Optional fixed take profit
Error Handling
See ${CLAUDE_SKILL_DIR}/references/errors.md for common issues and solutions.
Examples
See ${CLAUDE_SKILL_DIR}/references/examples.md for detailed usage examples including:
-
Multi-asset comparison
-
Walk-forward analysis
-
Parameter optimization workflows
Files
File Purpose
scripts/backtest.py
Main backtesting engine
scripts/fetch_data.py
Historical data fetcher
scripts/strategies.py
Strategy definitions
scripts/metrics.py
Performance calculations
scripts/optimize.py
Parameter optimization
Resources
-
yfinance - Yahoo Finance data
-
TA-Lib - Technical analysis library
-
QuantStats - Portfolio analytics
Weekly Installs2.3KRepositoryjeremylongshore…s-skillsGitHub Stars1.6KFirst SeenJan 26, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled onopencode2.0Kgemini-cli2.0Kcodex2.0Kgithub-copilot1.9Kkimi-cli1.9Kamp1.9K
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill