直接の答え:バックテスト実践のワークド例とは何か
バックテスト実践のワークド例は、ステップごとに、明確に定義されたルールを過去データに適用して「本来どうなっていたはずか」を推定する方法を示します。ここでいう「バックテスト」とは、過去の観測を使って意思決定をシミュレートすることを指し、将来の結果が履歴と同じになると仮定しません。「実践(practice)」とは、すべての前提を記録して、別の人が同じ計算を再現し、結果がどこから生まれたのかを確認できるようにすることです。
メカニズムと定義:バックテストであなたがやること
バックテスト実践には通常、5つの入力があります。
- 意思決定ルール:いつエントリー/エグジットするか(または予測/スコアをどう計算するか)を正確に定める。
- データセット:一貫したタイムスタンプを持つ、過去の時系列データ。
- トレーディングモデル:注文がどう約定するか(例:次のバーの始値を使う)と、スプレッドをどう扱うか。
- コストモデル:手数料、手数料(fees)、およびスプレッドの前提。
- 指標(メトリック):何を測るか(例:累積リターン、ドローダウン、勝率、または1トレードあたりの平均リターン)。
安定した仕組み:ワークフロー(ルールを定義→データの期間を選ぶ→約定をシミュレート→指標を計算→文書化)は同じままです。変動する条件:相場のレジーム、データの品質、執行(execution)の詳細、そしてコストは変わり得て、それらが結果を支配し得ます。
ワークド例(数値シナリオ)—明示的な前提付き
目的は教育目的で単純なルールを評価することだと仮定します。これは推奨ではなく、前提を明示したままにするため、仮想的な簡略化を用います。
ルール(「if-then」)
各日について、ポジションをちょうど1日保有します。ポジションは「ロング」(エクスポージャーを取る)か「フラット」(エクスポージャーなし)のどちらかです。意思決定ルールは次のとおりです。
- 前日のクローズが2日前のクローズより高ければ、翌日(次の日)をロングで保有する。
- それ以外なら、翌日はフラットでいる。
データセット(過去の観測)
6つの連続した日次観測(Day 0〜Day 5)を使います。以下のクローズは、バックテストでの「既知の」過去価格だと仮定します。
- Day 0 close: 100
- Day 1 close: 102
- Day 2 close: 101
- Day 3 close: 103
- Day 4 close: 104
- Day 5 close: 102
ルールがDay t-2を必要とするため、Day 2〜Day 5の意思決定を計算します。
執行(execution)とコストの前提
これらの前提が、シミュレートされたリターンを決めます。
- エントリー価格:翌日のオープンは、その日のクローズに等しい(簡略化)。これにより、日中の不確実性を取り除きます。
- エグジット価格:翌日のクローズは、次の日のクローズに等しい(保有期間が1日なので)。
- スプレッドと手数料:ロングである毎日における総トレーディングコストは、名目(notional)の0.1%の固定とします。フラットならコストは0%。
- レバレッジ制約なし、マージン金利なし、コストモデル以外のスリッページなし。
指標定義
名目(notional)に対する「ネット日次リターン」を計算します。
- 日 t がロングの場合:ネットリターン = (Close(t) / Close(t-1)) − 1 − 0.001
- フラットの場合:ネットリターン = 0
ステップごとのシミュレーション
意思決定:
- Day 2の意思決定:Day 1のクローズ(102)をDay 0のクローズ(100)と比較。102 > 100 → Day 2はロング。
- Day 3の意思決定:Day 2のクローズ(101)をDay 1のクローズ(102)と比較。101 > 102 は偽 → Day 3はフラット。
- Day 4の意思決定:Day 3のクローズ(103)をDay 2のクローズ(101)と比較。103 > 101 → Day 4はロング。
- Day 5の意思決定:Day 4のクローズ(104)をDay 3のクローズ(103)と比較。104 > 103 → Day 5はロング。
ネットリターンを計算:
- Day 2(ロング):Close(2)/Close(1) − 1 − 0.001 = 101/102 − 1 − 0.001 ≈ −0.0098039 − 0.001 = −0.0108039(約 −1.08%)
- Day 3(フラット):ネット = 0
- Day 4(ロング):104/101 − 1 − 0.001 = 0.0297029 − 0.001 ≈ 0.0287029(約 +2.87%)
- Day 5(ロング):102/104 − 1 − 0.001 = −0.0192308 − 0.001 ≈ −0.0202308(約 −2.02%)
累積の単純合計(この例は小さな数値を使い、説明のためのものなので):総ネットリターン ≈ −1.08% + 0% + 2.87% − 2.02% ≈ −0.23%(評価期間)
このワークド例が教えること:結果は、あなたのルール、データ、そして明示的な執行/コスト前提から、機械的に生み出されます。
限界と失敗パターン(何がうまくいかない可能性があるか)
- 過剰適合:ルールが過去データに対してあまりにも密に調整されている場合(つまみが多い、テストが多い)、過去では良く見えても他の場所では失敗するかもしれません。2) 執行の現実性:完璧な約定や簡略化された価格設定を仮定すると、結果が誇張され得ます。