backtesting-trading-strategies

Backtesting Trading Strategies

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "backtesting-trading-strategies" with this command: npx skills add gracefullight/stock-checker/gracefullight-stock-checker-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:

pip install pandas numpy yfinance matplotlib

Optional for advanced features:

pip install ta-lib scipy scikit-learn

Instructions

Step 1: Fetch Historical Data

python {baseDir}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d

Data is cached to {baseDir}/data/{symbol}_{interval}.csv for reuse.

Step 2: Run Backtest

Basic backtest with default parameters:

python {baseDir}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y

Advanced backtest with custom parameters:

Example: backtest with specific date range

python {baseDir}/scripts/backtest.py
--strategy rsi_reversal
--symbol ETH-USD
--period 1y
--capital 10000
--params '{"period": 14, "overbought": 70, "oversold": 30}'

Step 3: Analyze Results

Results are saved to {baseDir}/reports/ including:

  • *_summary.txt

  • Performance metrics

  • *_trades.csv

  • Trade log

  • *_equity.csv

  • Equity curve data

  • *_chart.png

  • Visual equity curve

Step 4: Optimize Parameters

Find optimal parameters via grid search:

python {baseDir}/scripts/optimize.py
--strategy sma_crossover
--symbol BTC-USD
--period 1y
--param-grid '{"fast_period": [10, 20, 30], "slow_period": [50, 100, 200]}'

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 {baseDir}/config/settings.yaml :

data: provider: yfinance cache_dir: ./data

backtest: default_capital: 10000 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 {baseDir}/references/errors.md for common issues and solutions.

Examples

See {baseDir}/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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

yahoo-finance

No summary provided by upstream source.

Repository SourceNeeds Review
General

financial data fetcher

No summary provided by upstream source.

Repository SourceNeeds Review
General

biome-validator

No summary provided by upstream source.

Repository SourceNeeds Review
Research

stock-analysis

No summary provided by upstream source.

Repository SourceNeeds Review