OptiNod アカデミー
ロバストネス3種 — 同じリターンの二つの設定のうち、どちらを信じるかを分ける基準
リターンが同じ二つのパラメータ設定のうち、実戦で生き残るほうを見分ける三つの安定性スコア(neighborhood stability、モンテカルロ、top-N consistency)を、OptiNodの実装に即して解説します。
> リーダーボード1位の正体は、その1位の隣の枠がどれだけ近い成績を出したかで分かれます。
ロバストネス(robustness)は本来、統計学で前提が少し外れても推定値が大きく揺らがない性質を指す言葉です。トレーディングに移すと、定義は一行に圧縮できます。パラメータを一枠ずらしたり、データ区間を少し変えたりしても、成績が似たまま保たれるか。OptiNodのロバストネスエンジンは、この問いを三つの角度からスコア化し、一つの総合スコアにまとめます。
一般には、この概念をバックテストが終わったあとに一度確認して通り過ぎる形式的な手続き程度に受け取られています。リターン順に並べたリーダーボードから1位を選び、その1位の安定性スコアが赤くさえなければ通す、というやり方です。スコアは、リターン順位を先に決めたあとに形式的に付け加わる付加情報程度に扱われます。
順序が逆です。三つのスコアは1位を選んだあとに確認する手続きではありません。1位を選ぶ基準そのものとして使うべきです。リターンがまったく同じ二つの設定の優劣は、三つのスコアが分けてくれます。スコアが低いほうはカーブフィッティングで作られた山なので、実戦では成績がついてきません。この記事を読み終えると、リーダーボードを見るときにリターンの列より安定性の列を先に確認するようになります。

隣の枠が崖なら1位は偶然で、平らなら本物の山です
一つ目のスコアであるneighborhood stabilityは、最適な組み合わせ周辺のパラメータ枠の成績がどれだけそろっているかを見ます。OptiNodは成績上位10件の結果をとり、各パラメータ軸で一枠前後(±1ステップ)の隣どうしの成績の分散を集めます。その分散の平均に平方根をかけた値(√隣分散の平均)を全体の成績の標準偏差で割って、sensitivityを求めます。sensitivityが低いほどスコアが高く、このスコアが総合スコアの35%を占めます。
このスコアが核心である理由は、本物の市場構造が作った成績は、パラメータが一枠ずれても似たままついてくるからです。EMA期間を20から21に変えたからといって、トレンドが消えるわけではありません。隣の枠の成績が崖のように急落するなら、その1位は特定のローソク足いくつかにたまたま合っただけの結果です。実戦ではそのローソク足が再び来ないので、こうした設定の成績はすぐに消えます。
2021年5月19日、BTCは始値42,850ドルから日中30,000ドルまで押されたのち、36,690ドルで引けました。こうした単発の急落ローソク足一本に損切り幅を一ティック単位まで細かく合わせた設定は、バックテストのリターン1位になりやすいです。しかし損切り幅を一枠広げただけで成績が大きく落ちます。neighborhood stabilityのスコアがこの差を捉えます。チャートでは損切りラインひとつの位置だけを見ず、その損切りラインを左右に一枠ずつずらしたときの成績の幅も合わせて見てください。成績の変動が小さければ安定した区間で、大きければ偶然に頼った区間です。
ランダムに選んでもこの程度の成績が出るなら、実力とは見にくいです
二つ目のスコアであるモンテカルロ(Monte Carlo)検定は、同じパラメータ空間からランダムに選んだ結果の分布と最高設定を比較します。OptiNodは結果の数に応じて200・500・1000回繰り返してランダム上位群の平均分布を作り、実際の最高設定がその分布のどの百分位にあるか、そして統計的有意性(pValue)を計算します。このスコアも総合スコアの35%です。
pValue区間ごとのスコアは次のとおりです。
| pValue | スコア |
|---|---|
| 0.01 未満 | 95 |
| 0.05 未満 | 80 |
| 0.1 未満 | 65 |
| 0.3 未満 | 45 |
| 0.3 以上 | 25 |
この検定が答える問いは単純です。私の1位は、このパラメータ空間で何を選んでも出そうな水準なのか、分布の外にある本物の山なのか。pValueが0.3なら、ランダム抽出10回のうち3回は私の1位と似た成績が出るという意味です。その1位を実力の結果と見るには根拠が弱いです。pValueが0.01なら、偶然でその成績が出る確率は100回に1回を下回ります。
戦略そのものが市場平均に勝てない場合が、ここで引っかかります。2022年11月のFTX破綻のとき、BTCは11月9日の18,545ドルから日中15,588ドルまで下げました。こうした急落区間を含むベア相場のデータでロング戦略を最適化すると、どのパラメータを選んでもほとんどが損失です。このとき1位がランダム分布の真ん中にあれば、モンテカルロのスコアは低く出ます。これはパラメータ選択の問題ではありません。この区間にこの戦略を当てはめたこと自体が無理だという信号です。バックテストと実取引の隔たりを減らすには、この分布上の位置を先に確認する必要があります。
上位が一か所に集まれば本物の山で、散らばれば偶然です
三つ目のスコアであるtop-N consistencyは、上位20%(結果が少なければ最低3件)の結果のパラメータが、どれだけ狭い範囲に集まっているかを見ます。OptiNodは各パラメータごとに、上位群が占める範囲の幅を全範囲で割った比率を求め、上位群に互いに異なるパラメータの組み合わせがいくつあるかという群集数を数えます。範囲が狭く群集が少ないほどスコアが高く、総合スコアの30%を担います。
上位群が一つの領域に集まるということは、市場に実際に機能する設定区間があるという意味です。EMA期間の上位群が18〜24にすべて集まっていれば、その近辺が本物の山です。上位群が期間10にもあり50にもあり90にも散らばっているなら、各成績は互いに異なる偶然の産物であり、そのうち何を選んでも次の区間で再び出てくる保証はありません。
2024年3月14日、BTCが73,777ドルで最高値をつけたのち、同じ日に68,555ドルまで5,000ドル以上揺れたボラティリティ区間を思い浮かべてください。こうした区間では、たまたま大きなローソク足を一、二度うまく捉えた設定が散らばったまま上位に上がってきます。群集数が多いということは、山が一つに集まれず、複数の偶然が入り混じったという意味です。ウォークフォワード分析で区間を分けてみると、こうして散らばった上位群の位置が区間ごとに別の枠へ変わるのを確認できます。
リターンが同じときは総合スコアが二つの優劣を決めます
三つのスコアは、それぞれ35%・35%・30%の加重でまとめられ、総合スコアになります。結果が5件未満なら、スコアの算出を保留します(標本不足)。標本が足りない状態で安定性を論じること自体が、もう一つの過最適化だからです。
三つのスコアを合わせて見るべき理由は、それぞれが異なる種類の偶然を捉えるからです。neighborhood stabilityは一枠隣の急落を、モンテカルロは分布の中に埋もれた平凡な成績を、top-N consistencyは散らばった山を見分けます。一つのスコアだけが高く、残り二つが低い設定は、一種類の検査だけを通過したカーブフィッティングです。
次は、リターンが事実上同じ二つの候補を実戦投入の前にふるい分ける手順です。カットオフの数字は運用上の推奨です。製品が強制する値ではなく、戦略の性格に合わせて調整してください。
1. 一次ソート: リーダーボードのソート基準を、リターンから総合スコアの降順に変えます。
2. neighborhood stabilityの下限(推奨): 主要なパラメータ(損切り幅、エントリー期間)のパラメータスコア(sensitivityと範囲の混合値)が60点未満なら、候補から除外します。参考までに、エンジンは40点未満をsensitive、40〜60点をmoderateと表示します。
3. モンテカルロの下限(推奨): pValueが0.05以上(スコア80点未満)なら、実力の根拠が弱いため保留します。
4. top-N群集の確認(推奨): 上位20%の結果のうち、互いに異なるパラメータの組み合わせ(群集数)が上位標本の半分を超えれば、山が散らばったものと見て除外します。
5. 投入の判断: 上の三条件を通過した候補のうち、プロフィットファクターがより高く、最大ドローダウンがより低いほうを選びます。
スコアを読み違える二つのパターン
総合スコアだけを見て、詳細の三つのスコアを確認しない場合。 総合スコア70は、三つのスコアがすべて70の場合もあれば、一つのスコアが95で二つが50台の場合もあります。後者は一つの検査だけを通過した危険な設定です。総合スコアは出発点にすぎず、詳細の三つのスコアを開いてどの検査が弱いかを確認する段階を飛ばしてはいけません。
標本を増やさずにスコアだけを高めようとする場合。 結果が7〜8件しかないときにスコアが高く出ても、それは標本が少なく分散が小さく見積もられた錯覚かもしれません。モンテカルロの繰り返しが200回に減る区間(結果10件以下)では、pValueを細かく区別しにくいです。スコアを信頼するには、まず十分な組み合わせを回して標本を30件以上に増やしてください。
三つのスコアが一方向に集まるときだけ信頼してください
ロバストネススコアは将来のリターンを約束しません。バックテスト区間の中で、その1位が実力の結果なのか偶然の結果なのかを見分ける道具です。だからこそ最後の確認は、三つのスコアが一方向に集まるかどうかです。下の基準もまた推奨の運用値です。
- [ ] neighborhood stability: 主要なパラメータのスコアが60点以上か
- [ ] モンテカルロ:
pValueが0.05未満(スコア80点以上)か - [ ] top-N consistency: 上位20%の群集数が標本の半分以下に集まっているか
- [ ] 標本: 結果が30件以上あり、スコアの解像度が十分か
- [ ] 総合スコアだけでなく、三つの詳細スコアをすべて開いて見たか
三つのスコアが一方向に集まった設定は、データ区間が変わっても似た成績を保つ確率が高いです。2024年8月5日の円キャリー解消でBTCが58,161ドルから49,000ドルまで押されたような、単発の衝撃ローソク足一本に合わせた偶然の設定とは区別されます。同じリターンを示す二つの設定のうち、何を信じるかは、この三つのスコアが決めます。
