New to Claude Skills? Learn how to install them →

jeremylongshore on GitHub

Backtesting Trading Strategies

Free

Test and optimize trading strategies with historical data.

Get this skill

Free · Opens the source repo

What Backtesting Trading Strategies does

The Backtesting Trading Strategies skill provides developers and traders with a robust framework to validate their trading strategies against historical market data. This skill is particularly useful for those looking to assess the viability of their strategies before committing real capital. It includes eight pre-built trading strategies, such as SMA, EMA, and MACD, which can be easily implemented and tested. Users can fetch historical data, run backtests, and analyze the results with detailed performance metrics.

The skill supports comprehensive performance analysis, calculating key metrics like Sharpe and Sortino ratios, total return, and maximum drawdown. This allows users to understand not just the potential profitability of their strategies, but also the associated risks. The built-in parameter optimization feature enables users to fine-tune their strategies by exploring different parameter combinations, ensuring they can identify the most effective settings for their trading approach.

Additionally, the skill includes trade-by-trade analysis and equity curve visualization, helping users to gain insights into their trading performance over time. The results from backtests are saved in an organized manner, providing easy access to performance summaries, trade logs, and visual representations of equity curves. This structured output facilitates thorough analysis and comparison of different strategies.

This skill is ideal for both novice and experienced traders who want to enhance their trading strategies through data-driven insights. Whether validating signals, simulating trades, or comparing multiple approaches, this skill equips users with the necessary tools to make informed trading decisions.

When to use it

Use this skill when you want to validate a trading strategy, compare different approaches, or optimize parameters based on historical performance.

When not to use it

This skill may not be suitable for real-time trading or situations requiring live data feeds, as it focuses on backtesting with historical data only.

What you can build with it

Validating a New Strategy

A trader wants to test a new SMA crossover strategy against historical Bitcoin data to evaluate its effectiveness.

Comparing Strategies

A developer needs to compare the performance of multiple trading strategies, such as RSI and MACD, to determine the best approach.

Optimizing Parameters

A user aims to optimize the parameters of a Bollinger Bands strategy to maximize returns based on historical performance.

How to install Backtesting Trading Strategies

View source

1. Install with the skills CLI

npx skills add jeremylongshore/claude-code-plugins-plus-skills/backtesting-trading-strategies --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by jeremylongshore

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

  1. 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
    
  2. 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}'
    
  3. 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).

  4. 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

MetricDescription
Total ReturnOverall percentage gain/loss
CAGRCompound annual growth rate
Sharpe RatioRisk-adjusted return (target: >1.5)
Sortino RatioDownside risk-adjusted return
Calmar RatioReturn divided by max drawdown

Risk Metrics

MetricDescription
Max DrawdownLargest peak-to-trough decline
VaR (95%)Value at Risk at 95% confidence
CVaR (95%)Expected loss beyond VaR
VolatilityAnnualized standard deviation

Trade Statistics

MetricDescription
Total TradesNumber of round-trip trades
Win RatePercentage of profitable trades
Profit FactorGross profit divided by gross loss
ExpectancyExpected 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

StrategyDescriptionKey Parameters
sma_crossoverSimple moving average crossoverfast_period, slow_period
ema_crossoverExponential MA crossoverfast_period, slow_period
rsi_reversalRSI overbought/oversoldperiod, overbought, oversold
macdMACD signal line crossoverfast, slow, signal
bollinger_bandsMean reversion on bandsperiod, std_dev
breakoutPrice breakout from rangelookback, threshold
mean_reversionReturn to moving averageperiod, z_threshold
momentumRate of change momentumperiod, 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

FilePurpose
scripts/backtest.pyMain backtesting engine
scripts/fetch_data.pyHistorical data fetcher
scripts/strategies.pyStrategy definitions
scripts/metrics.pyPerformance calculations
scripts/optimize.pyParameter optimization

Resources

Frequently asked questions about Backtesting Trading Strategies

Similar skills