3方向の頑健性
別期間
上昇、下落、低ボラ、高ボラ、金利制度の違う期間へ分けます。全期間の利益が1年に集中していないか、期間を前後へずらしても符号が維持されるかを見ます。
近傍パラメータ
20期間だけ良く、19と21で崩れる戦略は弱い可能性があります。本物の構造なら、合理的な近傍で成績が滑らかに変わることが期待されます。ただし近傍を見て最良値を選び直せば、新しい試行です。
別市場
同じ現象が起きる理由を持つ市場で確認します。USD/JPYで見えた結果をEUR/JPYやXAU/USDへコピーするのではなく、市場構造と部品を再評価します。
点ではなく面を見る
パラメータの成績表では最高点より周囲を見ます。広い範囲がほどほどに良い「台地」は、1セルだけ飛び出す「針」より安定しています。採用値は経済的・市場構造的な理由で決め、結果の頂点を追いかけません。勾配・Hessian・近傍頑健スコアを使う定量化は上級コースのパラメータ・ランドスケープの数理へ進んでください。
期間分割も同じです。平均だけでなく年別、ボラティリティ別、時間帯別を出します。時間帯別レポートは行を年、列を時間0〜23、右端を年合計、下段を時間合計とし、サーバー時刻とJSTを併記します。
ウォークフォワードとCPCV
ウォークフォワード
古い期間を学習・選択用のIn-Sample(IS)、その直後を未使用のOut-of-Sample(OOS)として評価し、窓を前へ進めます。学習期間を一定幅で動かすRolling方式と、開始点を固定して広げるExpanding方式があります。最終成績は各OOS区間だけを時系列順に接続し、IS成績を混ぜません。
PurgingとEmbargo
シグナルの保有期間やラベル期間が学習区間とテスト区間をまたぐと、未来情報が漏れます。テスト区間と結果判定期間が重なる学習サンプルを除くのがPurging、境界の前後へ追加の空白期間を置くのがEmbargoです。特徴量の標準化や閾値選択も、各IS区間だけでやり直します。
CPCV
Combinatorial Purged Cross-Validation(CPCV)は、時系列を複数グループへ分け、テストグループの組み合わせを変えながらPurgingを行い、複数のOOS経路を作ります。単一のウォークフォワード成績では見えない、OOS成績の中央値、下位分位、経路依存性を確認できます。分割数・組合せ数・経路数の導出は上級コースのCPCV:複数のOOS経路を組み立てるで説明します。
同じ履歴を複数経路で評価する方法であり、構造変化や未知の危機を保証しません。小標本では分割しすぎると各区間が薄くなります。ウォークフォワード、CPCV、固定ホールドアウトの設計自体も結果を見て選ばず、先に決めます。
別市場へ転写する3手順
1. 構成要素を転写先で個別確認
日選択、時刻、方向、フィルタ、出口へ分解し、それぞれを転写先データで確認します。転写元で有効だった曜日除外や時間帯が、転写先でも有効とは限りません。
2. コントロール群との差を測る
対象条件だけでなく、非対象日・非対象曜日などを同じ時刻と保有条件で集計します。edge = 対象群 − コントロール群として差を評価し、必要に応じてWelch検定を使います。生の平均がプラスでも、コントロールも同じなら固有エッジではありません。
3. 既存戦略との相関を確認
転写結果が再現しても、既存戦略とリターン相関が高ければ、束ねる分散効果は小さくなります。通貨名が違うことではなく、損益の動きが違うことを確認します。
FX通貨ペアと金CFDでは、取引時間、契約仕様、主要参加者、金利・ドルへの反応が違います。転写先は別の母集団として扱います。
転写とNの扱い
事前に固定した部品分解とコントロールの記述統計は、候補選択をしない限りN外です。転写先で時間や閾値を動かし、良い組み合わせを選び始めた時点からNへ加算します。実行前に対象・期間・バリエーション数を宣言します。
よくある間違い
同じパラメータで動けば再現とする
転写先の一般的な時間帯ドリフトを拾っただけかもしれません。コントロールとの差を見ます。
別銘柄で最適化し直す
横展開ではなく、新しい探索です。Nを加算し、独立した検証として扱います。
利益だけ比較して相関を見ない
同時に負ける戦略を増やしても、口座全体は強くなりません。
実戦課題
候補戦略を「日・時刻・方向・入口・出口・フィルタ」の部品表へ分解します。さらにウォークフォワードのIS期間、OOS期間、更新間隔、Purging幅、Embargo幅を結果を見る前に表へ記入します。転写先については、各部品、コントロール群、既存戦略との相関の3欄を採用判断より前に埋めます。
相関市場の不一致も、別市場の結果をそのまま転写できません。FX・DXY・ゴールド・銀の比較例はSMT Divergenceで確認できます。
チェックリスト
- 別期間・近傍パラメータ・別市場を区別した
- ISとOOSを混ぜて報告していない
- ラベル期間に応じてPurgingとEmbargoを設計した
- ウォークフォワードとCPCVの目的の違いを説明できる
- 転写先を別母集団として扱った
- 部品ごとに確認した
- 対象群−コントロール群で差を測った
- 既存戦略との相関を採用前に確認した
ミニテスト
4問で確認します。
Q1. 頑健なパラメータ面に期待する形は?
小さな変更で崩れないかを見ます。
Q2. 別市場へ転写するとき最初に行うことは?
転写元の部品をそのまま信じません。
Q3. 転写先の固有エッジは何で見る?
一般的なドリフトを差し引きます。
Q4. ウォークフォワードとCPCVの違いは?
目的は補完的で、どちらも情報漏洩を防ぐ設計が必要です。
参考資料
組合せ分割によるバックテスト過学習の評価は Bailey et al., The Probability of Backtest Overfitting を参考にしています。