5つの通貨ペアでランダムウォークに挑んだ結果——スコアボードを公開する
5つの通貨ペア、5年分のライブデータでFX予測テストを実行した。勝ったのはランダムウォークだった。より興味深い結果は、2つの妥当な分析上の選択だけで、いかに簡単に「勝った」ように見せられたかという点である。
チュートリアルのテストを、5つの通貨ペア・5年分の日次データでライブに実行した。ランダムウォークはすべてのペアで持ちこたえた。しかし正直な話は「モデルが負けた」ということではない。ごく普通で妥当な2つの分析上の選択だけで、1つのペアが本当に統計的に有意な優位性を持っているように見せられたということであり、これこそFX予測の主張には懐疑的な目が必要な理由である。
設定
チュートリアルと同じレシピを、すべてのペアに同一に適用した:
- データ:
/v1/rangeエンドポイント経由の2021年1月から2026年1月までの日次レート。前方補完された週末・祝日の行は除外。 - 分割: 最初の70%を訓練用、最後の378取引日(5ペアすべて同じ日数)をテスト用として保持。モデルはテスト期間を一切見ない。
- シンプルなモデル: 8つの安価な特徴量(リターンのラグ、1週間・1か月モメンタム、10日実現ボラティリティ)によるリッジ回帰。
- 複雑なモデル: 同じ特徴量を300のランダムフーリエ特徴量に拡張したもの。訓練・テストで同一の乱数基底を共有。
- ベンチマーク: ドリフトなしのランダムウォーク。明日のリターン予測は常にゼロ。
- 採点: ランダムウォークに対するサンプル外R²と片側Clark-West検定。t統計量が1.645を超えれば5%水準をクリアする。
70/30分割と通常の標準誤差は、結果を見る*前に*選んだ。これは以下の内容にとって重要である。
スコアボード
事前にコミットした設定では、誰もランダムウォークに勝てなかった。5ペア中4ペアがマイナスのサンプル外R²を記録し、訓練したモデルは変化なしと仮定するより成績が悪かったことを意味する。表の中で最良のClark-West t統計量は1.50(USD/CAD)であり、5%の優位性に必要な1.645には届かなかった。USD/CADの+0.61%というR²が唯一のプラスのセルだが、そのp値0.067は基準に届かなかった。表を印刷されたとおりに読めば、結論は「優位性なし」である。
複雑さはすべてのペアで悪化させた。300特徴量のモデルは隠れた構造を発見しなかった。特徴量あたり訓練行数がわずか約3行しかない状態で、訓練ノイズを丸暗記し、サンプル外では総崩れとなり、全ペアでR²は-20%から-25%に落ち込んだ。USD/JPYではClark-West t統計量が-2.05——ランダムウォークより悪いだけでなく、有意に悪かった。サンプル内では同じモデルが見事にフィットしていた。見たことのないデータに出会うまでは輝かしく見えていた、複雑さの教訓を1つのペアに凝縮したような結果である。
方向はコイン投げだった。上昇・下落の的中率は48.7%から53.2%の間に収まった。378のテスト日数では、おおよそ45〜55%の範囲に収まるものはすべて統計的ノイズであり、どのペアもそこに収まっている。コインを投げれば50%が出る。
それでも「勝った」ように見せる方法
ここからが、FX予測の結果——私たち自身のものも含めて——を疑うべき理由である。「誰もランダムウォークに勝てなかった」というのは、事前に固定した正確な選択について成り立つ話だった。それを1つか2つ変えれば、それぞれ単独では十分に妥当な変更でも、様相は変わる。
標準誤差を入れ替える。Clark-West検定では通常の標準誤差を使った。日次予測誤差には軽い自己相関があるため、査読者が代わりにNewey-West(HAC)誤差を求めるのは妥当な要求だろう。この一箇所だけ置き換えると、2つのペアが5%ラインを超える:
データは何も動いていない。誤差バーの計算式だけが変わり、それだけでさっきまでゼロだった「有意」な結果が2つ生まれた。
分割点を動かす。最後の30%を保持していた。同じく恣意的な線である最後の40%を試すと、USD/CADのClark-West t統計量は2.26まで上昇する。試したどの分割点でもプラスのままだった:
2つのつまみ(どの標準誤差か、どの分割か)と選べる5つのペアがあれば、意欲的な分析者は「機械学習がUSD/CADでランダムウォークに勝った、統計的に有意」という見出しを作り出せる。各ステップは単独では正当化できる。積み重なると、それが誤った結果が論文に紛れ込む仕組みである。
なぜこれが繰り返し起きるのか
短期の主要通貨ペアのFXは、市場が到達しうる効率性にかなり近い。毎日数兆ドルが取引され、価格履歴だけからリッジモデルが見つけられるほど単純なパターンは、ノートブックに届くはるか前に裁定によって消し去られる。次のリターンの条件付き平均が実質的にゼロ変化であるため、今日の価格は明日に対して入手可能な最良の点予測である。モデルが壊れているのではない。その効率性こそが発見である。
ただし*点*という言葉に注意してほしい。条件付き平均が予測不能だからといって、分布全体が予測不能とは限らない。ボラティリティはクラスター化し、レンジは広がったり狭まったりする——その構造は現実であり、予測可能でもある。正当な価値が宿るのもそこである。
ここから得た教訓
私たちはレートAPIを構築しているので、静かな本音をはっきり言おう。「予測レート」エンドポイントを出荷するつもりはない。主要な日次通貨ペアでは「今日のレートをそのまま返す」に正直に勝てないからである。できるのは、今日のレートを正確に、速く、そして(source、前方補完フラグ、ボラティリティといった)メタデータとともに提供することであり、それによって不確実性を見せかけで済まさず定量化できるようにすることだ。
それでも試してみたいなら、上記のすべては関連チュートリアルのコードを使い、無料プランで再現できる。私たちが本当に感心する基準はこうだ: 分割と標準誤差を事前に選び、5つの主要通貨ペアすべてでサンプル外のBonferroni補正済みClark-West統計量をクリアすること。それを成し遂げれば、文献が本当に稀だと言っていることを実際にやり遂げたことになる。