PluginBench
Skill
Review
Audit score 70

backtesting-trading-strategies

jeremylongshore/tons-of-skills-marketplace

Backtest crypto and traditional trading strategies with performance metrics and parameter optimization.

What is backtesting-trading-strategies?

Validate trading strategies against historical data before risking capital. This skill provides 8 pre-built strategies, comprehensive performance metrics (Sharpe, Sortino, max drawdown), equity curve visualization, and parameter grid search optimization.

  • Run backtests on 8 built-in strategies (SMA, EMA, RSI, MACD, Bollinger, Breakout, Mean Reversion, Momentum)
  • Calculate performance metrics including Sharpe ratio, Sortino ratio, Calmar ratio, max drawdown, and VaR
  • Generate equity curves and trade-by-trade analysis logs
  • Optimize strategy parameters via grid search to find best combinations
  • Fetch and cache historical data from yfinance for reuse
  • Visualize backtest results with equity curve charts and summary reports

How to install backtesting-trading-strategies

npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill backtesting-trading-strategies
Prerequisites
  • Python 3.7+
  • pandas, numpy, yfinance, matplotlib (required)
  • ta-lib, scipy, scikit-learn (optional, for advanced features)
Claude Code
Cursor
Windsurf
Cline

How to use backtesting-trading-strategies

  1. 1.Install dependencies: pip install pandas numpy yfinance matplotlib
  2. 2.Fetch historical data: python ${CLAUDE_SKILL_DIR}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d
  3. 3.Run a backtest: python ${CLAUDE_SKILL_DIR}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y
  4. 4.Review results in ${CLAUDE_SKILL_DIR}/reports/ for summary metrics, trade log, equity curve, and chart
  5. 5.(Optional) Optimize parameters: 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]}'

Use cases

Good for
  • Test a new trading strategy idea against 1-2 years of historical data before deploying live
  • Compare performance of SMA crossover vs RSI reversal on Bitcoin to decide which to trade
  • Optimize RSI period and overbought/oversold thresholds to maximize Sharpe ratio on Ethereum
  • Validate that a breakout strategy's win rate and profit factor meet your risk criteria
  • Run walk-forward analysis to check if strategy parameters remain stable over time
Who it's for
  • Retail traders evaluating new strategies before risking capital
  • Quantitative analysts comparing strategy performance across assets
  • Crypto traders testing signal-based approaches on historical data
  • Anyone building a trading system who needs to validate assumptions with backtests

backtesting-trading-strategies FAQ

What data sources does this use?

yfinance, which pulls from Yahoo Finance. Data is cached locally to ${CLAUDE_SKILL_DIR}/data/ for reuse across backtests.

Can I backtest my own custom strategy?

Yes. Define your strategy in scripts/strategies.py following the template, then run backtest.py with --strategy your_strategy_name.

What do the performance metrics mean?

Sharpe ratio measures risk-adjusted return (target >1.5); Sortino focuses on downside risk; max drawdown is the largest peak-to-trough decline; Calmar is return divided by max drawdown.

How do I optimize strategy parameters?

Use optimize.py with --param-grid to specify ranges for each parameter. It runs grid search and returns the best combination by Sharpe ratio.

Does this account for commissions and slippage?

Yes. Default commission is 0.1% per trade and slippage is 0.05%. Both are configurable in config/settings.yaml.

Full instructions (SKILL.md)

Source of truth, from jeremylongshore/tons-of-skills-marketplace.


name: backtesting-trading-strategies description: 'Backtest crypto and traditional trading strategies against historical data.

Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves,

and optimizes strategy parameters. Use when user wants to test a trading strategy,

validate signals, or compare approaches.

Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance",

"simulate trades", "optimize parameters", or "validate signals".

' allowed-tools: Read, Write, Edit, Grep, Glob, Bash(python:*) version: 1.28.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT tags:

  • crypto
  • testing
  • performance compatibility: Designed for Claude Code

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

Related skills

More from jeremylongshore/tons-of-skills-marketplace and the wider catalog.

SVsvg-icon-generator logo

svg-icon-generator

jeremylongshore/tons-of-skills-marketplace

Generate SVG icons with automated assistance and best-practice guidance.

1.3k installsAudited
USuse-modern-go logo

use-modern-go

jetbrains/go-modern-guidelines

Apply Modern Go Guidelines CLI to ensure idiomatic, version-specific Go code during development.

2.3k installsAudited
AIai-image-generator logo

ai-image-generator

jezweb/claude-skills

Generate professional images using Gemini or GPT APIs with model selection, prompting framework, and multi-turn editing.

1.3k installs
APapp-docs logo

app-docs

jezweb/claude-skills

Generate complete user documentation for a web app with screenshots. Browses the app via browser automation, screenshots every screen, and produces a structured user guide with step-by-step instructions, annotated screenshots, workflow diagrams, and reference tables. Supports quick (key screens), standard (all pages), thorough (every state and flow), and exhaustive (publishable documentation suite). Triggers: 'document the app', 'user guide', 'app documentation', 'screenshot docs', 'generate user docs', 'help docs', 'how-to guide', 'write the docs'.

737 installs
AUaussie-business-english logo

aussie-business-english

jezweb/claude-skills

Australian business English writing style for professional communications — warm, direct, EN-AU spelling (colour, organise, centre). Use whenever the user is writing for an Australian audience: emails, chat messages, proposals, client communications, blog posts, web copy, or any business writing. Apply to drafting, editing, and tone-checking professional text.

982 installsAudited
AWaward-application logo

award-application

jezweb/claude-skills

Write compelling award submissions, grant applications, and competition entries. Maps achievements to selection criteria using evidence-based narratives. Use whenever the user is applying for a business award (Telstra, chamber of commerce, industry awards), a grant, a competition, or any submission demonstrating merit against defined criteria.

694 installs