SMAはどのように責任ある形でバックテストできますか?

バイアス制御と制限を使ってSMAをバックテストする方法を学びます。

SMAはどのように責任ある形でバックテストできますか?

SMAを定義し、何が正確に検証されているのかを明確にする

単純移動平均(SMA)のバックテストは、価格データを計算された平均へと変換するルールをテストし、その平均が利用可能になったときに、選択した意思決定ルールがどのように振る舞うかを評価します。「SMAを“売買シグナル”に変換していない」場合でも、評価しているメカニズムを指定する必要があります。つまり、SMAの式、時間軸、そしてサンプリング頻度(たとえば、日足の終値と、日中のバー)です。

責任ある定義は、書き下した前提から始まります。明示しなければならない前提の例は、使用する価格系列(終値、典型価格、または別の定義)、データセットにおける「バー」が何を意味するか、そしてSMAのウィンドウ長がその時間単位の中で何を表すのか、です。後からこれらの選択肢のいずれかを変更すると、同じアイデアをテストしていることにはなりません。

意思決定のされ方に合うデータルールを使う

バックテストは、データセットに意思決定時点では知り得なかった情報が含まれていると信頼性が低下します。よくある失敗パターンは、先読みバイアスです。これは、暗黙的に将来データを含んでいる価格や計算値を使うことを指します。SMAの場合、通常は、時刻tにおけるSMA値は、時刻tまでに利用可能だったデータ(または、意思決定がバーの始値で行われると仮定するならt-1まで)だけから計算したいはずです。

また、データの一貫性も制御してください。リサンプリング、補間、(該当する場合)コーポレートアクションの調整、あるいは複数ソースのつなぎ合わせを行うと、バックテスト結果が変わり得ます。責任ある実践として、1つの前処理パイプラインを定義し、すべての実験で固定したままにします。

コスト、スリッページ、執行の前提を含める

教育目的のバックテストであっても、コストと執行の前提をモデル化すべきです。というのも、それらが結果を支配することが多いからです。変動要因には、スプレッド/手数料、コミッション体系、スリッページ、そして観測されたバーの価格と、実際に得られ得る価格との差があります。

たとえば、次のような前提を明記してください。SMAに基づくタイミングを執行の時間へどう変換するか(バー終値か、次のバーか)、取引がビッド/アスクのような価格で行われると仮定するのか、それともミッド価格と仮定するのか、そして部分約定をどう扱うのか、です。コストを含めない場合、タイミングの小さな変更が、摩擦のない世界でのみ利益に見える可能性があるため、バリアント間の順位付けが誤解を招くことがあります。

バイアスチェックとアウト・オブ・サンプルテストで過学習を制御する

責任あるバックテストは、「一度実行してリターンを見る」だけではありません。同じように、探索と評価を分けるバイアス制御が必要です。

まず、ブロック分割または時系列順の分割から始めます。たとえば、SMAのウィンドウ長や、SMAと組み合わせるかもしれない他のルールの閾値など、パラメータを選ぶための初期期間を使い、その後の期間は評価のために完全に手を付けずに残します。多くのパラメータ値をテストし、同じデータで後から評価するのと同じデータに基づいて最良のものを選ぶと、バックテストはパフォーマンスを過大評価し得ます。

次に、現実の不確実性を反映するアウト・オブ・サンプルのチェックを追加します。たとえば:

  • 重なりのない複数のテストウィンドウで、プロセスを繰り返します(ローリング・フォワード)。
  • データセットをわずかに摂動させる頑健性テストを試します(たとえば、サンプリング頻度を小さく変更する)そして、結論が崩れるかどうかを見ます。
  • レジームに配慮した評価を概念的に用います(たとえば、トレンド局面とレンジ局面での挙動を比較する)ただし、常に同じデータルールと評価ウィンドウのロジックを維持します。

見出しの結果だけでなく、制限と失敗モードをテストする

過去の関係は、将来の結果を保証しません。SMAベースのバックテストでは、物質的な制限と失敗モードとして、しばしば次が含まれます:

  1. レジーム転換:市場がトレンドのときと、平均回帰のときで、SMAは異なる働きをします。
  2. パラメータへの感度:結論は、選んだサンプルにたまたま合う1つのウィンドウ長に依存している可能性があります。
  3. データ品質:欠けたバー、異なる銘柄の履歴、または一貫しない価格定義は、計算されたSMAを変え得ます。
  4. 執行の不一致:理想的な約定を前提とするバックテストは、実際にタイミングルールが達成できることを過大に見積もる可能性があります。

これらの制限を具体化するために、評価指標の中で「失敗」がどのような状態を指すのかを定義してください。1つの数値に頼るのではなく、コストが増えたとき、スリッページの前提が悪化したとき、そしてあるテストウィンドウから別のテストウィンドウへ移したときに、結果がどう変わるかを見ます。

検証と次の問い:独立に検証すべきことは何か?

バックテストを責任ある形で検証するには、それを再現可能な実験として扱ってください。

まず、SMA系列を独立に再計算し、移動ウィンドウを手作業で確認できる小さなサンプルにおいて、SMAの値が実装と一致することを確認します。

DOCUMENT END

外国為替およびCFD取引には大きなリスクがあります。FoxiForexの情報は教育目的であり、個別の金融助言ではありません。スポンサー掲載は明確に表示されます。