mcpField
B
backtesting-trading-strategies

backtesting-trading-strategies

github.com/jeremylongshoreデータ・データベース2.9k4.7k 回インストール2 日前に更新
リポジトリ

backtesting-trading-strategies について

クオンツ研究者や戦略開発者向けに、過去データで取引戦略をシミュレーションするスキルです。組み込み戦略、リスク・パフォーマンス指標、パラメーターのグリッド検索、チャート出力に対応します。結果は過去のシミュレーションであり、将来の成績を示すものではありません。

主な機能

  1. 018種類の組み込み戦略
  2. 02パフォーマンスとリスク指標の計算
  3. 03グリッド検索によるパラメーター最適化
  4. 04エクイティカーブのチャート作成
  5. 05取引ごとの分析を出力

活用シーン

  1. 01戦略の過去成績を比較
  2. 02ドローダウンとリスク指標を確認
  3. 03パラメーターの組み合わせを検索
  4. 04取引記録とエクイティカーブを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill backtesting-trading-strategies

インストール後、Claude Code で/backtesting-trading-strategiesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

commands/
backtest-strategy.md
compare-strategies.md
optimize-parameters.md
walk-forward.md
config/
settings.yaml
references/
errors.md
examples.md
implementation.md
scripts/
backtest.py
fetch_data.py
metrics.py
optimize.py
strategies.py
tests/
test_metrics.py
test_strategies.py

詳細

トレード戦略のバックテスト

概要

過去のデータを使用してトレード戦略をシミュレーションします。結果は過去のシミュレーションを示すものであり、将来のパフォーマンスを予測するものではありません。このフレームワークには、組み込みの8つの戦略、以下の指標、パラメーター最適化が含まれています。

主な機能:

  • 事前に構築された8つのトレード戦略(SMA、EMA、RSI、MACD、Bollinger、Breakout、Mean Reversion、Momentum)
  • パフォーマンス指標(Sharpe、Sortino、Calmar、VaR、最大ドローダウン)
  • パラメーターのグリッドサーチ最適化
  • 資産曲線の可視化
  • トレードごとの分析

前提条件

このスキルを呼び出す前に、ユーザーはシミュレーションに使用する Python 環境に必要な依存関係をインストールします。

set -euo pipefail
pip install pandas numpy yfinance matplotlib

高度な機能で必要となるオプション:

set -euo pipefail
pip install ta-lib scipy scikit-learn

手順

  1. 過去のデータを取得します(再利用できるよう ${CLAUDE_SKILL_DIR}/data/ にキャッシュされます)。

    python ${CLAUDE_SKILL_DIR}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d
    
  2. デフォルトまたはカスタムのパラメーターでバックテストを実行します。

    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 \
      --params '{"period": 14, "overbought": 70, "oversold": 30}'
    
  3. ${CLAUDE_SKILL_DIR}/reports/ に保存された結果を分析します。結果には *_summary.txt(パフォーマンス指標)、*_trades.csv(トレードログ)、*_equity.csv(資産曲線データ)、*_chart.png(資産曲線の可視化)が含まれます。

  4. グリッドサーチでパラメーターを最適化し、最適な組み合わせを見つけます。

    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]}'
    

出力

パフォーマンス指標
指標説明
総リターン全体の利益または損失の割合
CAGR年平均成長率
シャープ比率過去のリスク調整後リターン
ソルティノ比率下方リスク調整後リターン
カルマーレシオリターンを最大ドローダウンで割った値
リスク指標
指標説明
最大ドローダウンピークから谷までの最大下落幅
VaR (95%)信頼水準95%のバリュー・アット・リスク
CVaR (95%)VaRを超える予想損失
ボラティリティ年率換算した標準偏差
トレード統計
指標説明
総トレード数往復トレードの数
勝率利益が出たトレードの割合
プロフィットファクター総利益を総損失で割った値。損失が観測されていない場合は該当なし
期待値トレードごとの期待値
出力例

図を含まないレイアウトです。実際の値は入力系列、手数料、スリッページ、 戦略、パラメーターによって異なります。これらのプレースホルダーを測定済みのリターンとして提示しないでください。

HISTORICAL SIMULATION: [strategy]
[symbol] | [start_date] to [end_date]
Total Return: [computed] | Max Drawdown: [computed]
Sharpe Ratio: [computed] | Win Rate: [computed]
Total Trades: [observed] | Profit Factor: [computed or N/A]

損失トレードが観測されていない場合、プロフィットファクターは利用できません。これには、トレード数がゼロの場合や、勝ちまたは損益分岐のトレードが1回だけの場合も含まれます。負けトレードが1回だけの場合、総利益をその損失で割った値はゼロになりますが、これは戦略の質を示す証拠ではありません。トレード数がゼロまたは1回のサンプルではパフォーマンスを評価できません。また、最適化は過去データを用いたインサンプル比較であり、予測ではありません。

対応する戦略

戦略説明主なパラメーター
sma_crossover単純移動平均のクロスオーバーfast_period、slow_period
ema_crossover指数移動平均のクロスオーバーfast_period、slow_period
rsi_reversalRSIの買われすぎ・売られすぎperiod、overbought、oversold
macdMACDシグナルラインのクロスオーバーfast、slow、signal
bollinger_bandsバンドを用いた平均回帰period、std_dev
breakoutレンジからの価格ブレイクアウトlookback、threshold
mean_reversion移動平均への回帰period、z_threshold
momentum変化率に基づくモメンタムperiod、threshold

設定

${CLAUDE_SKILL_DIR}/config/settings.yaml を作成します。

data:
  provider: yfinance
  cache_dir: ./data

backtest:
  default_capital: 10000 # Starting simulated capital in quote-currency units
  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

エラー処理

よくある問題と解決策については、Read を使用して references/errors.md を確認してください。

例

詳しい使用例については、references/examples.md を参照してください。以下の内容が含まれています。

  • 複数資産の比較
  • ウォークフォワード分析
  • パラメーター最適化のワークフロー

ファイル

ファイル用途
scripts/backtest.pyメインのバックテストエンジン
scripts/fetch_data.py過去データの取得ツール
scripts/strategies.py戦略の定義
scripts/metrics.pyパフォーマンスの計算
scripts/optimize.pyパラメーターの最適化

リソース

  • yfinance - Yahoo Finance のデータ
  • TA-Lib - テクニカル分析ライブラリ
  • QuantStats - ポートフォリオ分析

コメント