mcpField
B
backtesting-trading-strategies

backtesting-trading-strategies

github.com/gracefullightデータ・データベース492.0k 回インストール今日更新
リポジトリ

backtesting-trading-strategies について

クオンツ取引の調査担当者向けに、過去データで売買戦略を検証するスキルです。8種類の戦略、パフォーマンス・リスク指標、パラメーターのグリッド検索と、資産曲線を含むレポート出力に対応します。

主な機能

  1. 018種類の組み込み売買戦略
  2. 02パフォーマンスとリスク指標の計算
  3. 03グリッド検索によるパラメーター最適化
  4. 04資産曲線の可視化
  5. 05取引ログとレポートの出力

活用シーン

  1. 01過去価格データで戦略を評価
  2. 02ドローダウンとリスク指標を比較
  3. 03戦略のパラメーター候補を検索
  4. 04個別取引と資産曲線を確認

インストール

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

$npx skills add https://github.com/gracefullight/stock-checker --skill backtesting-trading-strategies

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

同梱ファイル

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

config/
settings.yaml
references/
errors.md
examples.md
implementation.md
scripts/
backtest.py
fetch_data.py
metrics.py
optimize.py
strategies.py

詳細

トレーディング戦略のバックテスト

概要

実資金をリスクにさらす前に、過去のデータを使用してトレーディング戦略を検証します。このスキルでは、8 つの組み込み戦略、包括的なパフォーマンス指標、パラメーター最適化を備えた完全なバックテストフレームワークを提供します。

主な機能:

  • 8 つの事前構築済みトレーディング戦略(SMA、EMA、RSI、MACD、Bollinger、Breakout、Mean Reversion、Momentum)
  • 包括的なパフォーマンス指標(Sharpe、Sortino、Calmar、VaR、最大ドローダウン)
  • パラメーターのグリッドサーチによる最適化
  • エクイティカーブの可視化
  • 取引ごとの分析

前提条件

必要な依存関係をインストールします。

pip install pandas numpy yfinance matplotlib

高度な機能を利用する場合は、次の依存関係も必要です。

pip install ta-lib scipy scikit-learn

手順

ステップ 1:過去のデータを取得する
python {baseDir}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d

データは再利用できるよう、{baseDir}/data/{symbol}_{interval}.csv にキャッシュされます。

ステップ 2:バックテストを実行する

デフォルトのパラメーターで基本的なバックテストを実行します。

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

カスタムパラメーターを指定して高度なバックテストを実行します。

# 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}'
ステップ 3:結果を分析する

結果は {baseDir}/reports/ に保存されます。内容は次のとおりです。

  • *_summary.txt - パフォーマンス指標
  • *_trades.csv - 取引ログ
  • *_equity.csv - エクイティカーブのデータ
  • *_chart.png - エクイティカーブの画像
ステップ 4:パラメーターを最適化する

グリッドサーチで最適なパラメーターを見つけます。

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

出力

パフォーマンス指標
指標説明
総リターン全体の利益または損失の割合
CAGR年平均成長率
シャープレシオリスク調整後リターン(目標:>1.5)
ソルティノレシオ下方リスク調整後リターン
カルマーレシオリターンを最大ドローダウンで割った値
リスク指標
指標説明
最大ドローダウンピークからボトムまでの最大下落幅
VaR(95%)信頼水準 95% のバリュー・アット・リスク
CVaR(95%)VaR を超える損失の期待値
ボラティリティ年率換算した標準偏差
取引統計
指標説明
総取引数往復取引の数
勝率利益が出た取引の割合
プロフィットファクター総利益を総損失で割った値
期待値取引ごとの期待値
出力例
================================================================================
                    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
================================================================================

対応する戦略

戦略説明主なパラメーター
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

設定

{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

エラー処理

よくある問題と解決方法については、{baseDir}/references/errors.md を参照してください。

例

次の内容を含む詳しい使用例については、{baseDir}/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 - ポートフォリオ分析

コメント