適応度地形(Fitness Landscape)の数学的定義
システムトレードのパラメータ空間を \(d\) 次元の有界集合 \(\Theta \subset \mathbb{R}^d\) とし、個々のパラメータベクトルを \(oldsymbol{ heta} = ( heta_1, heta_2, \dots, heta_d)\) と表します。例えば、\( heta_1\) がEMA期間、\( heta_2\) がATR損切り倍率、\( heta_3\) が保有時間制限(バー数)です。
このパラメータ空間から実数への写像として目的関数 \(J(oldsymbol{ heta})\) を定義します。
※\(J(oldsymbol{ heta})\) はコスト控除後の年率シャープレシオ、プロフィットファクター、期待値R、またはDSRなど。
機械学習では損失関数 \(L(oldsymbol{ heta})\) を最小化するため「平らな谷底(Flat Minima)」を探しますが、金融クオンツでは戦略パフォーマンス \(J(oldsymbol{ heta})\) を最大化するため、「広大で平坦な台地(Flat Plateau)」を探すことになります。数学的には \(L(oldsymbol{ heta}) = -J(oldsymbol{ heta})\) と置けば完全に同値です。
| 目的関数 \(J(oldsymbol{ heta})\) | 長所(実務上のメリット) | 注意点・隠蔽されやすいリスク |
|---|---|---|
| コスト後シャープレシオ | リスクあたりのリターンを正規化でき、異なる戦略間で比較が容易。 | 試行回数ペナルティがない。特定の高ボラ期間に極端に依存しやすい。 |
| 期待値 \(E(R)\)(損益比率) | 1トレードあたりの経済的優位性が明確。スプレッド負けを防ぎやすい。 | トレード数が少ない外れ値(少数の大当たり)で数値が歪みやすい。 |
| DSR (Deflated Sharpe) | 探索パラメータ数(試行回数 \(N\))の選択バイアスを自動的に控除。 | パラメータ感応度の局所的な急峻さ(崖)までは直接検出できない。 |
| 複合目的関数(制約付き) | 「SR > 1.2 かつ 最大DD < 15% かつ 取引数 > 200」など多面評価可能。 | 制約条件やペナルティ係数の設計自体が新たな「過剰最適化」を生みやすい。 |
局所幾何学:勾配とヘッセ行列(Hessian)による曲率診断
もし目的関数 \(J(oldsymbol{ heta})\) がパラメータに関して2階微分可能であれば、最適解 \(oldsymbol{ heta}^*\) の局所的な性質はテイラー展開により以下のように表されます。
ここで、局所極大点 \(oldsymbol{ heta}^*\) では勾配ベクトル \( abla J(oldsymbol{ heta}^*) = \mathbf{0}\) です。したがって、パラメータが微小量 \(oldsymbol{\delta}\) だけズレたときの性能変化は、ヘッセ行列(Hessian Matrix) \(\mathbf{H}\) の曲率によって支配されます。
ヘッセ行列の固有値を \(\lambda_1 \le \lambda_2 \le \dots \le \lambda_d < 0\) とすると、曲率の絶対値が最大となる方向の固有値 \(|\lambda_1|\) が極めて大きい場合、その最適点は「針の山(Sharp Peak)」です。わずか数ミリのズレで谷底へ転落します。逆に、すべての固有値の絶対値 \(|\lambda_i|\) が小さくゼロに近ければ、そこは「頑健な台地(Flat Plateau)」です。
離散グリッドでの有限差分と相対近傍
実際のトレード戦略では、ローソク足の本数やATR倍率などパラメータが離散的(Discrete)であり、注文発生の有無が閾値でステップ状に変化するため、厳密な解析的偏微分は行えません。そこで、離散的な有限差分(Finite Difference)を用います。
第 \(j\) パラメータの探索刻み幅を \(h_j\) とし、基本単位ベクトルを \(\mathbf{e}_j\) とすると、中心差分による局所傾斜と2階差分(曲率)は以下のように計算します。
短期EMAが「5」のときの \(\pm 1\)(変化率20%)と、長期EMAが「200」のときの \(\pm 1\)(変化率0.5%)は、物理的な意味が全く異なります。パラメータの近傍を定義する際は、線形スケールではなく対数スケール(\( heta' = \ln heta\))やパーセンテージ相対幅(例: \(\pm 15\%\))で近傍を定義することがクオンツの標準手法です。
ロバスト最適化:近傍最悪値(Worst-Case)の採点
頑健な戦略パラメータを選定するための最も実践的なアルゴリズムが、「ミニマックス近傍評価(Robust Neighborhood Evaluation)」です。半径 \(arepsilon\) の相対近傍 \(B_arepsilon(oldsymbol{ heta})\) を定義し、単一のセル値ではなく、その周辺一帯の統計量を算出します。
import pandas as pd
import numpy as np
# grid_df: index=(ema_period, atr_mult), columns=['sharpe']
def evaluate_landscape_robustness(grid_df, target_ema, target_atr, ema_rel_tol=0.15, atr_rel_tol=0.15):
# 相対近傍の抽出 (±15% の範囲)
ema_min, ema_max = target_ema * (1 - ema_rel_tol), target_ema * (1 + ema_rel_tol)
atr_min, atr_max = target_atr * (1 - atr_rel_tol), target_atr * (1 + atr_rel_tol)
neighbors = grid_df.loc[
(grid_df['ema'] >= ema_min) & (grid_df['ema'] <= ema_max) &
(grid_df['atr'] >= atr_min) & (grid_df['atr'] <= atr_max),
'sharpe'
]
results = {
"center_sharpe": grid_df.loc[(grid_df['ema']==target_ema) & (grid_df['atr']==target_atr), 'sharpe'].values[0],
"neighbor_count": len(neighbors),
"worst_sharpe": neighbors.min(),
"median_sharpe": neighbors.median(),
"q10_sharpe": neighbors.quantile(0.10),
"positive_ratio": (neighbors > 0).mean() # 近傍で黒字を維持している確率
}
return results
# 判定基準:
# ① worst_sharpe > 0 (近傍最悪値でも赤字転落しない)
# ② positive_ratio >= 0.90 (周辺セルの90%以上がプラス収益)
# ③ center_sharpe - median_sharpe < 0.3 (中心点だけが突出していない)Flat Minimaの罠と理論的限界
「平坦な台地を選べば、絶対に実運用で勝てるのか?」――答えは「否」です。Flatness(平坦性)は強力な過学習フィルターですが、これ自体がエッジを保証するわけではありません。以下の限界を把握しておく必要があります。
| 理論的限界・罠 | 現象とメカニズム | 対策とチェック手法 |
|---|---|---|
| 再パラメータ化問題 | パラメータの単位軸(線形軸 vs 対数軸 vs 逆数軸)を変えるだけで、見かけの平坦さ(Hessianの固有値)が幾何学的に変化してしまう。 | 経済的・物理的に意味のある相対比率(%)で空間を正規化して診断する。 |
| 不活性パラメータの錯覚 | 例えば損切りATR倍率が「10.0」など広すぎて過去1回も発動しなかった場合、ATR軸方向は完全な水平台地に見えるが、実際には無防備なだけ。 | 各パラメータがシグナルや決済に実質関与しているか(発動頻度)を確認する。 |
| 共通ノイズへの適合 | 近傍のパラメータ同士は同じ期間の同じ相場履歴を食べているため、過去の特定バブル相場全体に全員で適合して「偽の巨大台地」を形成する。 | 時代や市場を分割したOOS(アウトオブサンプル)やCPCVでの交差検証を併用する。 |
| レジーム反転 | 全期間で見れば平坦な台地に見えても、低ボラ相場では全員大勝ち、高ボラ相場では全員大負けというレジーム交差を見落とす危険。 | 年別・ボラティリティレジーム別のスライス断面分析(第8回)を実施する。 |
試行数 \(N\) の会計とOOSプロトコル
多くのトレーダーが犯す致命的な勘違いが、「私は最高点を選ばず、慎重に台地を選んだのだから、過剰最適化はしていない。試行回数 \(N\) は1として扱ってよい」という主張です。
これは完全な誤りです。台地を診断するために \(20 imes 30 = 600\) セルのグリッドを計算したのであれば、あなたの脳とアルゴリズムは確実に「600通りのデータ」を見ています。選択に使われた候補数 \(N\) は厳密に600です。
- 事前登録:探索を行う前に、パラメータの探索範囲、刻み幅、相対近傍半径 \(arepsilon\)、および台地選定のスコアリングルール(例: \(J_{ ext{worst}}\) 最大化)を完全固定する。
- 試行会計:計算した全セル数(600通り)を通算試行数 \(N\) に算入し、第2回のDSRを算出する。
- インサンプル限定:パラメータ・ランドスケープの診断と台地の選定は、訓練データ(In-Sample)の中だけで完結させる。
- アウトオブサンプル(OOS)の封印解除:台地として選ばれた単一のパラメータセットだけを持って、完全未接触のOOSデータやフォワード運用に挑む。
ミニテスト
4問の理解度テストです。
Q1. システムトレードの評価において、目的関数 \(J(oldsymbol{ heta})\) を最大化する地形の適切な表現はどれ?
正解はBです。機械学習の「平坦な谷底(Flat Minima)」と同様、成績を最大化する売買戦略では微小なパラメータ変化に対して成績を維持する「平坦な台地」を探します。
Q2. 離散的なグリッドサーチでパラメータ感応度を診断する際、最も実践的で有効な指標はどれ?
正解はCです。段差のある離散空間では、相対近傍内の最悪値や中央値、正の成績を維持するセルの比率を見ることで、微小な環境変化に対する頑健性を計測できます。
Q3. \(20 imes 30 = 600\) セルのグリッドヒートマップを描いて台地を選定した場合、試行会計で加算すべき試行数 \(N\) はいくつか?
正解はAです。「台地を選んだから」といって探索した事実が消えるわけではありません。描画・比較した全600セルが選択バイアスの母集団となります。
Q4. パラメータ・ランドスケープで「広い台地」が確認できたことが証明する事実はどれ?
正解はBです。台地はパラメータの過敏さを否定する局所的証拠に過ぎず、未知の相場環境(OOS)でエッジが通用するかどうかは別の検証プロセスが必要です。
学術文献・参考資料
- Sepp Hochreiter and Jürgen Schmidhuber (1997), "Flat Minima", Neural Computation, Vol. 9, No. 1, pp. 1-42.
- Laurent Dinh, Razvan Pascanu, Samy Bengio, Yoshua Bengio (2017), "Sharp Minima Can Generalize For Deep Nets", ICML 2017.
- Robert Pardo (2008), The Evaluation and Optimization of Trading Strategies, Wiley, Chapter 8: "Parameter Sensitivity and Surface Analysis".