mcpField
B
backtest-expert

backtest-expert

github.com/nicepkgその他28899 回インストール40 週間前に更新
リポジトリ

backtest-expert について

システマティックトレーダー向けのバックテスト手法スキルです。悲観的な前提で戦略を検証し、紙上の利益よりストレステスト、アウトオブサンプル検証、過剰適合の回避を重視します。

主な機能

  1. 01仮説の明確化とルールの定式化
  2. 02コストと執行摩擦のテスト
  3. 03パラメーターと相場局面への感度分析
  4. 04ウォークフォワード検証
  5. 05バックテストのバイアスと失敗要因の特定

活用シーン

  1. 01実運用前の戦略検証
  2. 02誤解を招くバックテスト結果の調査
  3. 03パラメーター変更の影響評価

インストール

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

$npx skills add https://github.com/nicepkg/ai-workflow --skill backtest-expert

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

同梱ファイルreferences/failed_tests.mdreferences/methodology.md

詳細

バックテストの専門家

楽観的な結果よりも堅牢性を重視する、プロフェッショナルな手法に基づいた体系的なトレーディング戦略のバックテストアプローチです。

中核となる考え方

目標:「紙の上で最大の利益を上げる」戦略ではなく、「最も崩れにくい」戦略を見つけることです。

原則:摩擦を加え、前提条件にストレステストを行い、何が生き残るかを確認します。悲観的な条件下でも持ちこたえる戦略は、実際のトレーディングでも機能する可能性が高くなります。

このスキルを使用する場面

このスキルは、次のような場合に使用します。

  • 体系的なトレーディング戦略を開発、または検証するとき
  • トレーディングのアイデアが実運用に耐えうるほど堅牢かどうかを評価するとき
  • バックテストが誤解を招く可能性のある理由を調査するとき
  • 適切なバックテスト手法を学ぶとき
  • よくある落とし穴(カーブフィッティング、先読みバイアス、生存者バイアス)を避けるとき
  • パラメーター感度やレジーム依存性を評価するとき
  • スリッページや執行コストについて現実的な見通しを立てるとき

バックテストのワークフロー

1. 仮説を明確にする

エッジを1文で定義します。

例:「決算発表を受けて3%超のギャップアップとなった株が、最初の1時間以内に前日の終値まで押し戻された場合、平均回帰の機会が生まれます。」

エッジを明確に説明できない場合は、検証に進まないでください。

2. 裁量を排したルールを定義する

以下を完全に具体化します。

  • エントリー:正確な条件、タイミング、価格の種類
  • エグジット:損切り、利益確定目標、時間ベースの決済
  • ポジションサイジング:固定$$、ポートフォリオに対する割合、ボラティリティ調整
  • フィルター:時価総額、出来高、セクター、ボラティリティ条件
  • 対象ユニバース:取引可能な金融商品

重要:主観的な判断は一切認められません。すべての判断は、ルールに基づき曖昧さのないものでなければなりません。

3. 初回のバックテストを実施する

以下の期間と条件でテストします。

  • 最低5年間(できれば10年以上)
  • 複数の市場レジーム(強気、弱気、高ボラティリティ/低ボラティリティ)
  • 現実的なコスト:手数料+保守的なスリッページ

初回の結果を確認し、基本的な実現可能性を評価します。根本的な欠陥がある場合は、仮説を練り直します。

4. 戦略にストレステストを行う

テスト時間の80%は、ここに費やす必要があります。

パラメーター感度:

  • 損切り幅を基準値の50%、75%、100%、125%、150%でテストします
  • 利益確定目標を基準値の80%、90%、100%、110%、120%でテストします
  • エントリー/エグジットのタイミングを±15~30分ずらします
  • 狭い範囲の急激なピークではなく、安定したパフォーマンスの「プラトー」を探します

執行時の摩擦:

  • スリッページを一般的な推定値の1.5~2倍に増やします
  • 最悪の約定条件をモデル化します(買いは売気配値+1ティック、売りは買気配値-1ティック)
  • 現実的な注文拒否のシナリオを追加します
  • 悲観的な手数料体系でテストします

時間的な堅牢性:

  • 年ごとのパフォーマンスを分析します
  • 大半の年で期待値がプラスになることを求めます
  • 戦略が1~2回の例外的な期間に依存していないことを確認します
  • さまざまな市場レジームで個別にテストします

サンプルサイズ:

  • 絶対最小:30回の取引
  • 推奨:100回以上の取引
  • 高い信頼度:200回以上の取引
5. アウトオブサンプル検証

ウォークフォワード分析:

  1. 学習期間(例:1~3年目)で最適化します
  2. 検証期間(4年目)でテストします
  3. 期間を前に進めて繰り返します
  4. インサンプルとアウトオブサンプルのパフォーマンスを比較します

警戒すべき兆候:

  • アウトオブサンプルのパフォーマンスがインサンプルの50%未満
  • 頻繁なパラメーターの再最適化が必要
  • 期間ごとにパラメーターが大きく変化する
6. 結果を評価する

確認すべき質問:

  • 悲観的な前提条件でもエッジが保たれるか
  • パラメーターを変えてもパフォーマンスが安定しているか
  • 複数の市場レジームで戦略が機能するか
  • 統計的な信頼を得るのに十分なサンプルサイズがあるか
  • 結果は現実的か。「うますぎる話」ではないか

判断基準:

  • ✅ 導入:すべてのストレステストに耐え、許容できるパフォーマンスを維持する
  • 🔄 調整:中核となるロジックは妥当だが、パラメーターの調整が必要
  • ❌ 断念:ストレステストに失敗する、または脆弱な前提条件に依存する

主なテスト原則

戦略に不利な条件を課す

あらゆる面で摩擦を加えます:

  • 実際より高い手数料
  • 通常の1.5~2倍のスリッページ
  • 最悪の約定条件
  • 注文の拒否
  • 部分約定

理由:悲観的な想定条件でも機能する戦略は、実際の取引でも優れた成果を上げることがよくあります。

ピークではなく安定した範囲を探す

パフォーマンスが急上昇する最適値ではなく、安定したパフォーマンスが得られるパラメーターの範囲を探します。

良い例:損切りを1.5%から3.0%の間のどこに設定しても利益が出る戦略 悪い例:損切りをちょうど2.13%に設定した場合にしか機能しない戦略

安定したパフォーマンスは真の優位性を示します。一方、最適値の範囲が狭い場合は、カーブフィッティングが疑われます。

つまみ食いした事例ではなく、すべてのケースをテストする

誤った方法:うまくいった「市場の勝ち組」を厳選して調べる 正しい方法:条件を満たした銘柄を、失敗したものも含めてすべてテストする

事例を選別すると生存者バイアスが生じ、戦略の質を過大評価してしまいます。

アイデアの創出と検証を分ける

直感:仮説の創出に役立ちます 検証:データのみに基づいて行う必要があります

アイデアへの執着が、テスト結果の解釈に影響しないようにしてください。

よくある失敗パターン

時間を無駄にしないよう、こうしたパターンを早期に見極めましょう:

  1. パラメーター感度:特定のパラメーター値でしか機能しない
  2. 相場局面への依存:ある年は優れた成績を上げる一方、別の年にはひどい成績になる
  3. スリッページへの感度:現実的なコストを加えると利益が出なくなる
  4. サンプル不足:統計的な確信を得るには取引数が少なすぎる
  5. 先読みバイアス:「うますぎて本当とは思えない」結果
  6. 過剰最適化:パラメーターが多く、アウト・オブ・サンプルの結果が悪い

詳細な例と診断フレームワークについては、references/failed_tests.mdを参照してください。

利用可能な参考ドキュメント

手法のリファレンス

ファイル:references/methodology.md

参照するタイミング:特定のテスト手法について詳しい指針が必要な場合。

内容:

  • ストレステストの手法
  • パラメーター感度分析
  • スリッページと摩擦のモデリング
  • サンプル数の要件
  • 相場局面の分類
  • よくあるバイアスと落とし穴(生存者バイアス、先読みバイアス、カーブフィッティングなど)
失敗テストのリファレンス

ファイル:references/failed_tests.md

参照するタイミング:戦略がテストに失敗した場合や、過去の失敗から学ぶ場合。

内容:

  • 失敗が貴重な理由
  • 例を交えたよくある失敗パターン
  • ケーススタディのドキュメント化フレームワーク
  • バックテスト評価用の危険信号チェックリスト

重要な注意事項

時間配分:アイデアの創出に20%、それを崩そうとすることに80%を費やしてください。

コンテキストに依存しないこと:機能するために「完璧なコンテキスト」を必要とする戦略は、システマティック取引に使うには十分な堅牢性がありません。

危険信号:バックテストの結果が良すぎる場合(勝率が90%超、ドローダウンが最小、タイミングが完璧など)は、先読みバイアスやデータの問題がないか慎重に監査してください。

ツールの制約:バックテストプラットフォーム特有の挙動(補間方式、流動性の低い市場の処理、データのアラインメントに関する問題など)を理解してください。

統計的有意性:小さな優位性を立証するには、大きなサンプル数が必要です。1取引あたり5%の優位性を運によるものと区別するには、100件以上の取引が必要です。

裁量取引とシステマティック取引の違い

このスキルでは、以下の特徴を持つシステマティック/クオンツのバックテストに焦点を当てます:

  • すべてのルールが事前にコード化されている
  • 執行に裁量や「感覚」が入らない
  • 厳選した事例ではなく、過去のすべての事例を対象にテストする
  • コンテキスト(ニュース、マクロなど)を意図的に取り除く

裁量トレーダーは異なる方法で分析します。主観的な判断を要するセットアップには、このスキルが当てはまらない場合があります。

コメント