OptiNod アカデミー
ウォークフォワード分析 — 最適化プロセスそのものを検証する方法
全期間を一度に最適化して得たスコアは、未来を見てから答えを合わせたスコアです。ウォークフォワードは、イン・サンプルで選んだ設定を次のアウト・オブ・サンプルだけで評価し、最適化プロセスそのものを検証します。
> 全期間を一度に最適化すると、未来を先に見てから答えを合わせたようなスコアになります。ウォークフォワードは、まだ見ていない期間だけを使って最適化プロセスそのものを検証します。
ウォークフォワード分析(Walk-Forward Analysis)は、データを時系列に沿ってイン・サンプル(In-Sample)期間とアウト・オブ・サンプル(Out-of-Sample)期間に分け、イン・サンプルでパラメータを最適化したあと、その設定を次のアウト・オブ・サンプル期間だけで評価する検証方法です。このウィンドウを時間軸に沿って一つずつ進めながら同じ手順を繰り返し、アウト・オブ・サンプルの成績だけをつなぎ合わせた曲線を、実運用成績の推定値として見ます。
一般的に、バックテストは単純に見られがちです。全期間を一度に回し、累積リターン曲線が右肩上がりで、最大ドローダウンも許容できる範囲なら良い戦略だと判断されます。何十通りものパラメータ組み合わせをすべて試し、その中で最も良かった設定を選ぶところまでが、通常の最適化です。
しかし、全期間を一度に最適化する方法には避けられない欠陥があります。最適化に使った同じデータで、もう一度成績を評価しているからです。RSIの期間を17にした理由が「2021年から2024年までで17が最も良かったから」だとすれば、その17が同じ期間で良いスコアを出すのは当然です。未来を先に見て答えを書き込んだ試験用紙に近いものです。ウォークフォワード分析は、ここで視点を少しずらします。検証すべき対象は、「直前のデータでパラメータを選ぶ」という最適化プロセスそのものです。

全期間を一度に最適化すると未来を見たスコアになります
全期間最適化のスコアが膨らむ仕組みは単純です。パラメータの組み合わせが多いほど、そのうち一つは純粋な偶然で、その特定期間にうまく合います。50通りの組み合わせを試せば、その50通りの1位には戦略の実力が含まれているかもしれません。しかし実際には、その期間のノイズに最もよく合っただけで1位になった可能性のほうが高いのです。これを過剰最適化(Overfitting)と呼びます。全期間を一度に最適化する方法には、過剰最適化を取り除く仕組みが構造的にありません。
実際のデータで見ると、さらに明確です。BTCは2022年1月の約46,000ドルから12月の約16,500ドルまで、1年を通じて一貫した下落トレンドを続けました。2022年のデータだけでトレンドフォロー戦略を最適化すると、ほぼすべてのパラメータは「ショート中心、反発は無視」に収束します。その期間では、その設定が圧倒的に良いスコアを出すからです。ところが同じ設定を2023年に適用すると、結果は変わります。BTCは2023年1月の16,500ドルから10月の34,000ドルを経て、12月には42,000ドルまで回復しました。2022年には最適だったショート偏重の設定は、2023年の回復相場では反対方向に賭け続け、損失を積み上げます。
全期間を一度に最適化すると、この2年をひとまとまりに平均化し、どちらか一方に過度に合わせた設定が生んだ偶然の高スコアを、そのまま「戦略の実力」として記録してしまいます。スコアが良いほど、むしろ疑って見るべきです。
アウト・オブ・サンプルは一度だけ見るデータです
ウォークフォワードの核心的なルールは、アウト・オブ・サンプル期間をパラメータ決定に絶対に使わないことです。イン・サンプル期間でパラメータを選んだら、その設定をそのまま持ち込み、まだ一度も見ていない次の期間で取引をシミュレーションします。結果が良くても悪くても記録し、ウィンドウを一つ進めて次の組み合わせに移ります。
この手順が実運用に似ているのは、時間の方向が同じだからです。実運用では、トレーダーは過去データで設定を決め、その設定でまだ来ていない未来を取引します。未来がどう展開するか分からないまま臨みます。ウォークフォワードのアウト・オブ・サンプル期間は、イン・サンプル時点から見ると、まさにその「まだ来ていない未来」の役割を果たします。だからこそ、アウト・オブ・サンプル成績だけをつなげた曲線は、全期間を一度に最適化した結果よりも、実運用にずっと近いものになります。
具体的に、BTCの日足に2年のイン・サンプルと6カ月のアウト・オブ・サンプルを適用するとします。2021年1月から2022年12月まででパラメータを選び、その設定を2023年1月から6月までの期間だけで評価します。次にウィンドウを6カ月進め、2021年7月から2023年6月までで再び最適化し、2023年7月から12月までで評価します。このように進めていくと、各アウト・オブ・サンプル期間は、その直前のイン・サンプル時点では一度も見ていない未来でした。この点が、アウト・オブ・サンプル曲線に信頼性を与えます。
ローリングとアンカードでは適応速度が異なります
イン・サンプルウィンドウの進め方は、大きく二つに分かれます。
- ローリング(Rolling)ウィンドウ: イン・サンプル期間を固定し、ウィンドウ全体をそのまま前にずらします。常に直近2年のような新しいデータだけを見ます。古いデータは捨てます。
- アンカード(Anchored)ウィンドウ: イン・サンプルの開始点を最初に固定し、終了点だけを伸ばし続けます。最初の区間は2年、次は2年半、その次は3年というように累積され、すべての過去データを学習に使い続けます。
両者の違いは、市場環境が変わるときの適応速度に表れます。ローリングは直近データだけを見るため、新しいトレンドに素早く適応できますが、一度経験したまれな出来事の記憶をすぐに失います。2022年6月、セルシウスの出金停止とスリー・アローズ・キャピタル(3AC)の破綻が重なり、BTCが17,600ドルまで下落した急落局面や、11月のFTX破綻で15,500ドルまで下落した急落局面は、ローリングウィンドウが2年分だけを見る場合、やがて学習期間の外へ押し出されます。その結果、似たような激変に再び無防備になる可能性があります。アンカードはそうした出来事を永久に記憶しますが、データが蓄積するほど遠い過去の比重が大きくなり、直近のトレンド転換には鈍くなります。
選択基準は、市場の性質によって決まります。局面が頻繁に変わるクリプトでは、適応という面でローリングが有利なことが多く、構造がゆっくり変化する市場や、まれな危機への耐性が重要な戦略ではアンカードのほうが安全です。どちらを使うにせよ、結果が良くなるまで方式を変えながら選ぶ行為は、検証を無効にします。

ウォークフォワード効率が1から離れるほど過剰最適化を疑います
アウト・オブ・サンプル曲線を目で見るだけで止まると、判断は曖昧になります。それを一つの数値に圧縮する指標が、ウォークフォワード効率(Walk-Forward Efficiency, WFE)です。定義は単純です。各アウト・オブ・サンプル期間の成績を、対応するイン・サンプル期間の成績で割った値です。リターン基準で計算する場合、イン・サンプルで年率40パーセントを出していた設定が、アウト・オブ・サンプルで年率32パーセントを出したなら、効率は0.8です。
この値を解釈するための目安があります。
- 0.8から1.0の間: 比較的堅牢です。最適化で選んだ設定が、見ていない期間でも実力の大部分を維持したことを意味します。
- 0.5から0.8の間: 注意が必要です。イン・サンプル成績の相当部分が、その期間だけで通用した偶然だった可能性があります。
- 0.5未満: 過剰最適化を強く疑います。イン・サンプルスコアの半分もアウト・オブ・サンプルで再現できないなら、その設定が市場の優位性を捉えたとは考えにくいです。過去のノイズに合わせ込まれた結果に近いものです。
効率が1を超える場合もあります。アウト・オブ・サンプル期間が偶然、イン・サンプルよりも戦略に有利な市場だった場合です。2023年後半の低ボラティリティの回復相場のように、トレンドが滑らかに続いた期間がアウト・オブ・サンプルに入ると、効率が1.2まで上がることもあります。しかし、1を超える値を実力として受け止めてはいけません。次のウィンドウでボラティリティが高まれば、その分だけ素早く1を下回るからです。複数のウィンドウの効率を集め、平均と分布を合わせて見るほうが、単一区間の値一つより信頼できます。

ウィンドウ期間とステップは取引サンプル数で決めます
ウィンドウ設定で最もよくある誤りは、イン・サンプル期間を短く取りすぎることです。短いほど直近市場に敏感に見えますが、その短い期間内に取引が数件しか入っていなければ、最適化そのものが意味を失います。イン・サンプルで取引が20件しかないなら、そのうち一、二件の大きな利益がパラメータ選択を左右し、そうして選んだ設定はアウト・オブ・サンプルで崩れます。
基準は取引頻度から逆算します。平均保有期間が1週間のスイング戦略が月に4、5件取引するなら、イン・サンプルで100件以上を確保するには、少なくとも1年半から2年が必要です。日足トレンドフォローのように取引が少ない戦略では、さらに長いイン・サンプルが必要です。2024年のBTCは、3月に73,777ドルを付けて2021年の高値を上回ったあと、11月まで58,000ドルから72,000ドルの間で推移するレンジ相場になりました。この8カ月間、トレンドフォロー戦略にはほとんどエントリー機会がありませんでした。こうしたレンジ相場が丸ごとイン・サンプルに入ると、取引サンプルが空に近くなり、最適化が空回りします。
アウト・オブ・サンプル期間とステップは、通常同じ長さにします。6カ月のアウト・オブ・サンプルなら、6カ月ずつ進めます。アウト・オブ・サンプルを短くしすぎると、各区間の取引が数件しかなくなり、効率の値が大きくぶれます。逆に長くしすぎると、再最適化の周期が伸び、市場転換への適応を検証できません。取引サンプルが少ない戦略では、まずウォークフォワード結果そのものを信頼しにくいと認めるほうが誠実です。サンプルが不足していれば、どんな検証方法でも偶然と実力を見分けることはできません。
- [ ] イン・サンプル取引数: 各イン・サンプル期間に少なくとも100件以上の取引が入るように期間を決めます。取引が50件未満なら、イン・サンプルを延ばすか、より短いタイムフレームに落とします。
- [ ] アウト・オブ・サンプル取引数: 各アウト・オブ・サンプル期間に20件以上の取引が入るか確認します。それ未満なら、効率の値を一つずつ信頼せず、複数区間の平均だけを見ます。
- [ ] ウィンドウ数: 全データからイン・サンプルとアウト・オブ・サンプルの組み合わせが少なくとも5組以上取れるようにステップを決めます。組み合わせが2〜3個しかない場合、平均は偶然に左右されます。
アウト・オブ・サンプルを見たあとに手を加えると検証は消えます
ウォークフォワードを最も頻繁に無効化する行為は、アウト・オブ・サンプルの結果を見たあとで、パラメータやウィンドウを再調整することです。アウト・オブ・サンプル効率が0.4だったからといってイン・サンプルの最適化範囲を狭めて再実行したり、ウィンドウ期間を2年から3年に変えて効率が0.7に上がる組み合わせを見つけたりすれば、その瞬間にアウト・オブ・サンプルはイン・サンプルに汚染されます。一度でも結果を見て設定を調整すれば、そのアウト・オブ・サンプルはもはや見ていない未来ではありません。パラメータ決定に使われたデータになってしまいます。
この汚染は目に見えにくいため危険です。コード上では依然としてイン・サンプルとアウト・オブ・サンプルが分離されており、手順も正しく見えます。しかしトレーダーの頭の中で、アウト・オブ・サンプル結果が次の設定選択に影響した瞬間、統計的独立性は崩れます。資産ごと、戦略ごとに、良い結果が出るまでウォークフォワードウィンドウを変えて選んだ効率は、全期間を一度に最適化するときと同じ過剰最適化を、一段上のレベルで繰り返しているだけです。
防御策は、手順を先に固定することです。イン・サンプル期間、アウト・オブ・サンプル期間、ステップ、最適化対象パラメータの探索範囲、評価指標を、データを回す前にすべて確定し、その後はアウト・オブ・サンプル結果が悪くても設定を変えません。結果が悪ければ、その戦略は誤っていたと見て整理するのが誠実な対応です。効率が良く見えるように手順をねじ曲げる行為は、検証そのものを台無しにします。ウォークフォワードは、手順が生み出したスコアが実運用でも続くかを試すための道具です。
ウォークフォワード結果をもう一段ふるいにかける二つの視点
ウォークフォワード効率が0.8を上回ったからといって、すぐに実運用へ投入する前に、さらに二つの点を確認します。
一つ目は、区間ごとの効率の一貫性です。5組の平均効率が0.85でも、その中に1.4と0.3が混ざっているなら、平均は錯覚です。ある区間で運良く1.4を出し、別の区間で0.3まで崩れる戦略は、次の実運用期間がどちらに近いか分からないため危険です。効率の標準偏差が小さく、すべての区間が0.6を上回るあたりに集まっていて、初めて手順が安定していると判断できます。
二つ目は、市場局面が転換する期間での成績です。ウォークフォワードの本当の試金石は、強気から弱気へ、低ボラティリティから高ボラティリティへと市場環境が変わる場面です。2021年11月の約69,000ドルの高値からトレンドが崩れ、2022年の下落相場へ移行した転換点や、2022年11月のFTX急落のようなボラティリティ爆発局面がアウト・オブ・サンプルに入ったウィンドウで、効率がどうだったかを個別に確認します。滑らかなトレンド相場の区間でだけ効率が高く、転換局面で崩れる戦略は、最も重要な瞬間に機能しない手順です。転換局面を含むすべてのウィンドウで効率が許容できる水準にあるとき、ウォークフォワード分析は初めて、その戦略の最適化プロセスが未来でも通用するという根拠を与えます。