株式バックテスト:データファーストガイド
調査の質問から時点ベースのデータ、実行の仮定、検証、および保存された証拠までの厳格なワークフロー。
株式バックテストは、各シミュレートされた時点で利用可能だった情報と取引可能な価格に、過去の意思決定ルールを適用します。有効なテストには、時点ベースのユニバース、明示的な価格調整、イベント認識時刻、現実的な約定とコスト、完全なカバレッジ、パラメータ規律、および未変更のアウトオブサンプル期間が必要です。
情報セットを凍結する
意思決定時刻を定義し、そのカットオフまでに知られていたデータのみを許可します。後からのSEC修正、改訂された決算スケジュール、再報告されたファンダメンタルズ、および現在のインデックスメンバーシップは、以前のシミュレーションに漏洩してはなりません。
過去のIDを通じて証券を解決し、上場廃止された名前を保持します。そうでなければ、ユニバースは多くの失敗を除外し、パフォーマンスを過大評価します。
取引可能なものをモデル化する
結果を調べる前に、バーと約定ルールを選択します。時間外イベント後の同日終値約定は不可能であり、薄い出来高と広いスプレッドは理論的な価格を信頼できないものにします。
手数料、スプレッド、スリッページ、ショートの借入と所在の仮定、取引停止、およびポートフォリオ制約を関連性に応じて含めます。感度テストは、結果がわずかに悪い実行でも生き残るかどうかを示すべきです。
- 各シグナルを公開利用可能性まで遅延させる。
- 時点ベースのメンバーシップを使用する。
- 不完全なルックバックを拒否する。
- コストと約定遅延をテストする。
最適化し続けるのではなく、検証する
調査、検証、および最終ホールドアウト期間を分離します。バリエーションの数を制限し、テストされたすべての選択肢を報告し、単純なベースラインと比較します。
コードバージョン、パラメータ、データクエリ、ソース実行、カバレッジスナップショット、取引、およびメトリクスを保存します。その証拠バンドルなしの有望な曲線は、再現可能な結果ではありません。
Key takeaways
- 01時間内に知られていた情報のみをシミュレートする。
- 02上場廃止された証券と現実的な実行を含める。
- 03未変更のホールドアウトを予約する。
- 04完全な証拠バンドルを保存する。