OptiNod アカデミー

ロバストネス3種 — 同じリターンの二つの設定のうち、どちらを信じるかを分ける基準

リターンが同じ二つの設定のどちらを信頼するかを決めるための三つの堅牢性スコア(Neighborhood Stability、Edge Consistency、Top-N Consistency)の計算方法と、総合点・パラメータ感度の読み方を、OptiNodの実装に基づいて説明します。

1位のリターンを信頼できるかどうかは、1位の周辺の設定の結果と、組み合わせ全体の分布を見て判断します。


ロバストネス(robustness)は本来、統計学で前提が少し合わなくても推定値が大きく揺れない性質を指す言葉です。トレーディングでは、パラメータを1段階動かしたりデータ期間を少し変えたりしても、成績がほぼ同じに保たれるかどうかを意味します。OptiNodの堅牢性分析は、最適化結果の全体を3つの方法で点数化し、0〜100点の総合点1つにまとめます。


多くの人はこの点数を、バックテストの後に形式的に確認する項目として扱います。リターン順に並べた結果表から1位を選び、堅牢性の点数に警告がなければそのまま使います。しかし、堅牢性の点数は1位の1行を評価する数字ではありません。今回の最適化結果の中に、信頼できる設定の領域があるかどうかを評価します。点数が低ければ、1位のリターンがどれだけ高くても、この結果の中には選ぶべき設定がないということです。1位だけが良く周辺が悪い結果がなぜ生まれるのかは、過剰最適化の記事で説明しています。


この記事では、3つの点数がそれぞれ何を計算するのか、総合点とパラメータ感度をどう読むのか、そしてリターンが同じ2つの設定から1つを選ぶときに同じ考え方をどう使うのかを説明します。目標は、結果表のリターンの列を見る前に、堅牢性の総合点と3つの内訳を先に確認できるようになることです。


針型の成績と高原型の成績
針型の成績と高原型の成績最高リターンが同じでも、周辺のパラメータで成績が急に落ちるなら偶然の可能性が高く、広い範囲で同じような成績が続くなら実運用でも保たれる可能性が高くなります。

1位の周辺の成績がそろっていれば、近傍安定性の点数が高くなります


1つ目の点数である近傍安定性(Neighborhood Stability)は、成績上位10件の結果それぞれについて、周辺の結果がどれだけ近い成績を出したかを見ます。周辺の結果とは、すべての数値パラメータで近い結果のことです。距離の基準はパラメータの間隔とテスト範囲の10%のうち大きいほうで、選択式やチェックボックスのパラメータは値が同じである必要があります。周辺の結果が自分自身を含めて3件以上あるときだけ計算し、周辺の成績の標準偏差を結果全体の成績の幅と比べて、ぶれが小さいほど高い点数を付けます。全体の成績の幅は四分位範囲で計算するため、極端な結果がいくつかあっても大きく左右されません。実際に適用する1位の結果が点数の半分を占め、残りの上位結果の平均がもう半分を占めます。この点数は総合点の35%です。


この点数が重要なのは、市場で繰り返される動きを反映した成績であれば、パラメータが1段階変わっても同じような成績が続くからです。EMAの期間を20から21に変えただけでトレンドが消えることはありません。隣の設定で成績が急に落ちるなら、その1位は特定のローソク足いくつかに偶然合った結果である可能性が高いと言えます。実運用ではそのローソク足は二度と来ないため、このような設定の成績はすぐに消えます。


2021年5月19日、BTCは始値42,850ドルから日中30,000ドルまで下落し、36,690ドルで引けました。このような急落のローソク足1本に損切り幅をティック単位まで合わせた設定は、バックテストでリターン1位になりやすくなります。しかし、損切り幅を1段階広げるだけで成績は大きく下がり、近傍安定性の点数がこの差を捉えます。1つの損切り位置の成績だけを見ずに、その損切り位置を前後に1段階ずつ動かしたときの成績の幅もあわせて確認してください。


組み合わせの大半が損失なら、Edge Consistency の点数は低くなります


2つ目の点数である Edge Consistency は、テストした組み合わせ全体のうち、どれだけが損益分岐点を上回ったかを見ます。損益分岐点は指標ごとに決まっており、純利益とシャープレシオは0、PFは1です。点数の60%は基準を上回った組み合わせの割合で決まり、30%以下なら0点、90%以上なら満点です。残りの40%は、全組み合わせの成績の中央値が損益分岐点をどれだけ上回っているかで決まります。この点数も総合点の35%です。最大ドローダウンや勝率のように損益分岐点がない指標で分析する場合、この点数は計算せず、その比重を残りの2つの点数に振り分けます。


この検査が答える問いは単純です。良い成績がパラメータ空間全体に広がっているのか、選び出したいくつかの組み合わせにしかないのかです。たとえば純利益で見て利益が出た組み合わせが35%しかなく中央値も損失なら、1位のリターンはほとんどが損失の組み合わせの中から選ばれた結果です。以前のOptiNodは、この部分でモンテカルロ検定を使っていました。上位の結果を同じ結果値から無作為に選んだ組と比べる方法でしたが、すべての組み合わせが損失の結果でもp値がほぼ0になり、判断の根拠になりませんでした。そのため、組み合わせ全体が基準を上回っているかを直接数える方法に変えました。


戦略そのものがその期間で利益を出せない場合も、ここで確認できます。2022年11月のFTX破綻のとき、BTCは11月9日に18,545ドルから日中15,588ドルまで下落しました。このような急落を含む下落相場のデータでロング戦略を最適化すると、ほとんどのパラメータが損失になり、Edge Consistency の点数は低く出ます。これはパラメータの選び方の問題とは言いにくく、この期間にこの戦略を使うこと自体が合っていないというサインです。バックテストと実運用の差を小さくするには、まずこの割合を確認する必要があります。


上位結果の位置 — まとまれば本当の最高点、散らばれば偶然
上位結果の位置 — まとまれば本当の最高点、散らばれば偶然成績上位の設定をパラメータの地図の上に点で表示します。1つの区域にまとまれば、その区域が実際に成績の良い範囲で、地図全体に散らばれば1位は偶然に近いと言えます。

上位の結果が1か所に集まれば、上位N一貫性の点数が高くなります


3つ目の点数である上位N一貫性(Top-N Consistency)は、成績上位20%(結果が少ない場合は最低3件)のパラメータが狭い範囲に集まっているかを見ます。点数の60%は集中度です。パラメータごとに、上位の結果が占める範囲をテストした範囲全体と比べ、狭く集まっているほど高い点数を付けます。このとき、成績への影響が大きいパラメータほど大きな比重を置きます。成績をほとんど変えないパラメータは、上位の結果で広く散らばっていても過剰最適化の根拠にならないからです。残りの40%は、上位の結果のうち互いにつながった最大のまとまりが占める割合です。つながっているかどうかは、近傍安定性と同じ距離の基準で判断します。この点数は総合点の30%です。


上位の結果が1つの区域に集まるということは、市場で実際に成績の出る設定の範囲があるということです。EMA期間の上位結果が18〜24に集まっていれば、その付近が実際に成績の良い範囲です。反対に、上位の結果が期間10にも50にも90にも散らばっていれば、それぞれの成績は別々の偶然による可能性が高く、どれを選んでも次の期間に同じ成績が出る保証はありません。


2024年3月14日にBTCが73,777ドルで史上最高値を付けた後、同じ日に68,555ドルまで5,000ドル以上動いた期間を例に取ります。このような期間では、大きなローソク足1〜2本を偶然うまく捉えた設定が、散らばったまま上位に入ります。最大のまとまりの割合が低いなら、上位の結果が1つの範囲にまとまらず、いくつもの偶然が混ざっているということです。ウォークフォワード分析で期間を分けてみると、このように散らばった上位結果の位置が区間ごとに違う場所へ移ることを確認できます。


総合点は結果全体を、パラメータ感度はパラメータごとに評価します


3つの点数は35%・35%・30%の比重で合わせられ、総合点になります。重複を除いた結果が5件未満の場合や、すべての結果のパラメータ値が同じ場合は点数を計算しません。サンプルが足りない状態で安定性を論じること自体が、もう1つの過剰最適化になるからです。総合点に応じて表示される案内は次のとおりです。


総合点案内
80点以上結果は堅牢です。オーバーフィッティングのリスクは低いです。
60〜79点結果は中程度の堅牢性です。検証のためフォワードテストを推奨します。
40〜59点結果にオーバーフィッティングの兆候が見られます。慎重に進めてください。
40点未満結果がオーバーフィットしている可能性があります。パラメータの削減またはフォワードテストを強く推奨します。

パラメータ感度の表は、パラメータごとに別々に点数を付けます。そのパラメータが成績を大きく動かし、上位の結果でも値が広く散らばっているほど点数が下がります。60点未満は「やや敏感」、40点未満は「非常に敏感」と表示され、非常に敏感なパラメータには範囲を広げて再テストするか、値を固定するよう案内が付きます。


リターンが同じ2つの設定から1つを選ぶ手順


堅牢性の点数は結果全体に対する点数なので、2つの候補を比べるときは同じ考え方を候補ごとに直接当てはめます。以下の基準は推奨値で、製品が強制する値ではありません。戦略の性格に合わせて調整してください。


  1. 総合点の確認: 総合点が40点未満なら、どちらの候補も選びません。この結果には信頼できる範囲がないため、先に戦略かテスト期間を変えます。
  2. Edge Consistency の確認: 基準を上回った組み合わせが半分に満たないなら、パラメータ選びで解決できる問題ではありません。まず戦略の売買ルールを見直します。
  3. 候補ごとの周辺の確認: ヒートマップや結果表で、それぞれの候補の入力値を1段階ずつ動かした結果を見ます。周辺の結果の平均が高く、ばらつきが小さい候補を残します。
  4. 敏感なパラメータの整理: パラメータ感度の表で「非常に敏感」と出たパラメータは、値を固定するか範囲を広げて再実行します。
  5. 最終比較: 残った候補のうちプロフィットファクターが高く最大ドローダウンが低いほうを選び、最適化に使っていない期間でもう一度実行します。

点数を読み違える2つのケース


総合点だけを見て内訳を確認しないケース。 総合点60点は、3つの点数がすべて60点台のときにも、1つが90点で残り2つが40点台のときにも出ます。後者は1種類の検査しか通っていない設定です。総合点は出発点として使い、3つの内訳を開いてどの検査が弱いかを確かめる手順を飛ばしてはいけません。


結果が少ないのに点数だけで判断するケース。 点数は結果が5件あれば計算されますが、結果が少ないと周辺に3件以上がそろわず、近傍安定性を計算できる上位結果が減ります。この場合、点数が高く出ても判断の根拠は弱くなります。点数を信頼するには、まず十分な組み合わせを実行して結果を30件以上に増やしてください。


3つの点数がすべて高いときだけ結果を信頼してください


堅牢性の点数は将来のリターンを約束しません。バックテスト期間の中で、良い成績が広い範囲にわたって出ているのか、偶然合ったいくつかの組み合わせにしか出ていないのかを見分けるための道具です。そのため、最後の確認は3つの点数がそろって高いかどうかです。以下の基準も推奨値です。


  • 総合点が60点以上か
  • 近傍安定性・Edge Consistency・上位N一貫性のうち40点未満の点数がないか
  • Edge Consistency で基準を上回った組み合わせが半分以上か
  • パラメータ感度の表に「非常に敏感」なパラメータがないか
  • 結果が30件以上あり、点数を信頼できるか

3つの点数がすべて高い結果は、データ期間が変わっても同じような成績を保つ可能性が高くなります。2024年8月5日の円キャリートレードの巻き戻しでBTCが58,161ドルから49,000ドルまで下落したような、衝撃的なローソク足1本に合わせた設定とは区別されます。リターンが同じ2つの設定のどちらを信頼するかは、この3つの点数と各候補の周辺の結果をあわせて見て判断します。

自分のバックテストを点検する

最適化結果のCSVやTradingView戦略の取引一覧を読み込むと、成績指標と頑健性のチェック結果をまとめて表示します。ログインしなくても分析できます。

結果ファイルを分析する 分析サンプルを見る