複数戦略ポートフォリオのバックテスト|相関・配分・ドローダウンを統合検証
Backtest Learning ・ BT10
複数戦略ポートフォリオのバックテスト|相関・配分・ドローダウンを統合検証
良い戦略を並べるだけでは分散になりません。複数戦略 バックテストの本質は、単体成績の比較ではなく、同じ時間軸に揃えたリターンで相関・合成損益・配分後ドローダウン・同時損失をまとめて検証することにあります。共通の土台を作り、見かけの分散と実質の分散を切り分ける手順を図解します。
- 合成前に揃える標準化(期間・通貨・初期資金・コスト・頻度)
- 取引単位ではなく共通時間軸のリターン系列で相関を測る理由
- 等金額・等リスク・固定比率・上限付き配分の記述的な比較
- クラスタリングで「実質同じ戦略」を見抜き、過剰適合をストレスする方法
この記事の要点
- 良い戦略を並べるだけでは分散にならない。同じ時間軸のリターンを揃え、相関・合成DD・同時損失を見る。
- 相関は取引単位ではなく、共通カレンダーのリターン系列(日次など)で測る。定義を明示する。
- 平常時の低相関はストレス時にも続くとは限らない。相関は線形の同時変動しか捉えない。
- 等金額・等リスク・固定比率・上限付きは記述的に比較する。最適配分は推奨しない。
- クラスタリングで「実質同じ戦略」を見つけ、OOS・コスト・レジームで配分をストレスする。
目次
この記事では、複数のPine戦略・銘柄・時間足を運用している上級トレーダー向けに、複数戦略 バックテストを単体成績ではなく同時運用の視点で検証する手順を解説します。結論、合成前の標準化、相関の意味と定義、配分方式、合成エクイティとポートフォリオDD、クラスタリング、ボラティリティ計算ツール、そしてストレスの当て方の順に進みます。単体のバックテストの読み方に不安があれば、まずTradingViewバックテストの全体像を押さえておくと、本記事の位置づけが明確になります。
30秒でわかる結論
複数戦略のポートフォリオを評価するとき、良い戦略を単に並べてもそれだけでは分散になりません。分散の効果は、各戦略が「いつ・どれだけ同時に損失を出すか」で決まるからです。したがって最初にすべきは、すべての戦略の損益を同じ時間軸・同じ通貨・同じ初期資金に揃え、共通カレンダーのリターン系列を作ることです。
その土台の上で、戦略間の相関、配分後の合成ドローダウン、そして急落局面での同時損失を確認します。平常時に相関が低く見えても、ストレス局面では相関が跳ね上がり、複数の戦略が一緒に沈むことがあります。以下では架空の教育用データとして3つの戦略(トレンドフォロー、平均回帰、ブレイクアウト)を例に、見かけの分散と実質の分散をどう切り分けるかを具体的に見ていきます。
合成前の標準化:土台を揃える
戦略を合成する前に、比較の土台を揃えます。ここを省くと、後段の相関も配分も意味を失います。最低限そろえるべき項目は次のとおりです。
- 期間とタイムゾーン:各戦略の対象期間を共通の開始・終了に切り、タイムゾーンを統一します。日付の基準がずれると、同時損失を過小・過大に評価します。
- 通貨:損益を基準通貨へ換算します。換算せずに金額を足すと、為替の値動きが戦略の相関に紛れ込みます。
- 初期資金:同じ初期資金を前提に、金額ではなくリターン率で揃えます。規模の違いが寄与の大小を歪めないようにします。
- 取引コスト:スプレッド・手数料・スリッページの前提を戦略間で統一します。前提差があると合成損益が実態からずれます。反映方法はコスト感度とストレステストで詳しく扱っています。
- リターン頻度:日次・週次など、相関と合成に使う頻度を決めて全戦略で統一します。頻度が混ざると相関係数が比較できません。
- 欠損と重複ポジション:データの欠損期間の扱いを決め、同じ銘柄・同じ方向のポジションが複数戦略で重なる場合の合算ルールを定めます。
この標準化は地味ですが、ポートフォリオ検証の信頼性はほぼここで決まります。土台がずれたまま先へ進むと、後で見る相関行列や配分後DDが、戦略の性質ではなく前処理の粗さを映してしまいます。
戦略間相関の意味と限界
相関係数は、2つの戦略のリターンが同じ方向にどれだけ一緒に動くかを−1から+1で表す指標です。+1に近いほど同時に上下し、0に近いほど独立に近く、−1に近いほど逆に動きます。分散の観点では、相関が低い戦略を組み合わせるほど、合成後のボラティリティやドローダウンが個別の合計より小さくなりやすくなります。
ただし相関には明確な限界があります。第一に、相関は線形の同時変動しか捉えません。非線形の連動や、同じ材料に反応する構造的な依存は見落とされます。第二に、相関は期間に依存します。平常時に低くても、急落局面ではリスク資産全般が同時に売られ、多くの戦略の相関が+1側へ跳ね上がる「相関の収束」が起こり得ます。つまり平常時の低相関が、いちばん助けてほしいストレス時にも続くとは限りません。だからこそ、相関係数の一点の値だけで分散を判断せず、同時ドローダウンやレジーム別の挙動と合わせて読みます。相場局面の把握にはマクロリサーチワークベンチのような外部視点も役立ちます。
相関は何で計算するか
相関を測るとき、取引単位で計算しないことが実装上の要点です。各戦略の取引は発生タイミングも保有期間もばらばらなので、取引ごとの損益を並べても比較の時間軸がそろいません。そこで、共通のカレンダー上でリターン系列に変換します。
実装の定義
本記事では相関を次のように定義します。まず各戦略について、共通期間の日次リターン系列(その日のエクイティ変化率)を作ります。取引がない日は0リターンとして系列を連続させます。次に、2戦略の日次リターン系列どうしでピアソン相関係数を計算します。頻度を日次で統一するのは、戦略間で頻度が混ざると相関が比較できなくなるためです。週次で運用の粒度に合わせたい場合は、全戦略を週次に揃えて再計算します。
この定義に従うと、図1の相関行列は「同じ日にどれだけ一緒に動いたか」を表します。取引数や勝率といった単体指標の読み方はバックテスト結果の見方で扱っているので、相関を読む前に各戦略の素性を把握しておくと解釈が安定します。
資金配分の方式を比較する
配分は「どの戦略にどれだけ資金を割り当てるか」を決める工程です。ここでは代表的な4方式を記述的に比較します。いずれも一長一短で、どれかが普遍的に優れているわけではありません。本記事は特定の配分や最適配分を推奨しません。
- 等金額配分:各戦略へ同じ資金額を割り当てる。実装が単純だが、ボラティリティの大きい戦略がポートフォリオのリスクを支配しやすい。
- 等リスク配分(リスクパリティ):各戦略の想定ボラティリティに反比例させ、リスク寄与を均そうとする。推定ボラが外れると狙いどおりにならない。
- 固定比率配分:運用者の裁量で比率を固定する(例:50/30/20)。方針が明確な反面、根拠が主観になりやすい。
- 上限付き配分:1戦略の比率に上限(例:40%)を設け、集中を抑える。分散は保ちやすいが、上限が機械的だと非効率も生じる。
下表は、例示3戦略に各方式を当てはめたときの配分と、架空の教育用データとしての合成年率ボラティリティ・合成最大ドローダウンです。等リスク配分では、ボラの小さい戦略B(想定12%)に厚く、ボラの大きい戦略C(想定24%)に薄く配分される点に注目してください。
| 配分方式 | 戦略A | 戦略B | 戦略C | 合成年率ボラ | 合成最大DD |
|---|---|---|---|---|---|
| 等金額 | 33% | 33% | 34% | 13.0% | −14.0% |
| 等リスク | 29% | 48% | 23% | 11.0% | −11.5% |
| 固定比率 | 50% | 30% | 20% | 14.2% | −16.2% |
| 上限付き(40%) | 40% | 40% | 20% | 12.4% | −13.1% |
表の数値は、配分の考え方を説明するための架空の教育用データです。合成年率ボラや合成最大DDは、相関やボラの前提を変えれば大きく変わります。特定の配分が良い・安全であることを示すものではありません。
合成エクイティとポートフォリオDD
配分が決まったら、各戦略のリターン系列を配分比率で重み付けして足し合わせ、合成エクイティカーブを作ります。そのカーブから改めてポートフォリオ最大ドローダウンを計算します。ここで大切なのは、各戦略の最大DDを単純に足さないことです。相関が低ければ、ある戦略が沈むとき別の戦略が持ちこたえ、合成DDは個別の合計より浅くなる傾向があります。逆に相関の高い戦略が同時に沈むと、想定より深くなります。
合成の効果は、平常時の滑らかさだけでなく同時損失の場面で試されます。次の図は、ある急落月(架空の教育用データ)における各戦略の月次寄与と、等金額ポートフォリオの合成損益を分解したものです。日足の順張り系である戦略Aと戦略Cが同時にマイナスへ振れ、平均回帰の戦略Bがわずかに逆へ動いて緩衝している構図が読み取れます。
手元の複数戦略で合成DDと同時損失を確認する
ここまでの相関行列・合成エクイティ・同時ドローダウンの考え方は、各戦略のStrategy TesterのCSV/XLSXを読み込めば実際の数字で確認できます。まずは無料の基本分析で戦略ごとのKPI・エクイティ・ドローダウンを個別に可視化し、複数戦略の合成・相関・資金配分シミュレーションといった横断的な検証が必要になった段階で、上位プランのユースケースを比較できます。
クラスタリングで実質同じ戦略を見抜く
複数戦略を並べても、それらが実質的に同じ動きをしていれば、分散したつもりで一つの賭けに集中しているだけです。図1の相関行列では、戦略Aと戦略Cが0.62と高相関でした。両者はともに日足の順張り系で、同じトレンド局面で一緒に勝ち、同じ反転で一緒に負けます。相関の高い戦略をまとめると、見かけの本数より少ないクラスターが浮かび上がります。
この例では、戦略AとCが1つのクラスター(順張り系)、戦略Bが別のクラスター(平均回帰系)を形成します。つまり「3戦略」に見えても、独立した動きの源は実質2つです。クラスタリングや類似性診断は、こうした重複を数値で可視化し、配分が特定のクラスターに偏っていないかを点検するのに役立ちます。
ポートフォリオボラティリティ計算
相関が合成リスクをどう変えるかは、2戦略の簡易式で直感的に確かめられます。下の計算ツールに、2つの戦略の想定年率ボラティリティ・相関係数・配分比率を入れると、簡略化したポートフォリオボラティリティを表示します。前提と式は常時表示し、最適配分は出しません。入力値はブラウザ内だけで計算し、外部へ送信しません。JavaScriptが無効な場合は、直下の静的な計算例をご覧ください。
2戦略ポートフォリオボラティリティ計算ツール
上の値で「ボラを計算する」を押すと、ポートフォリオボラと分散効果が表示されます。
この計算は相関がリスクに与える影響を示す概念用の簡略式で、最適な配分や将来のリスクを示すものではありません。実際のポートフォリオは3戦略以上、時変の相関、非線形の同時リスクを含み、単一の数式では表しきれません。想定ボラや相関の前提が外れれば結果も変わります。
最適配分を過信しないストレス
過去データ上でドローダウンやシャープを最良にする配分は、その期間の相関とボラティリティに当てはめた結果にすぎません。相場局面が変われば、その配分は簡単に崩れます。したがって、配分は一点の最適値としてではなく、前提を揺さぶったときの結果の分布として評価します。過剰最適化そのものの見抜き方は過剰最適化を防ぐ方法で、時間分割での検証はウォークフォワード分析とOOS検証で詳しく扱っています。
配分に当てるストレスの観点は次のとおりです。
- サンプル外(OOS):配分を決めた期間と別の期間で、同じ配分の合成成績を確認する。
- 相関のシフト:平常時の相関ではなく、急落局面に絞った相関で合成DDを取り直す。
- 取引コスト:スプレッド・手数料・スリッページを厚めに置き、寄与の順位が入れ替わらないか見る。
- 制約と上限:1戦略・1クラスターへの上限を設けたときに、合成DDと寄与がどう動くか。
- 再配分頻度:月次・四半期など再配分の間隔を変え、結果が頻度に過敏でないか確認する。
同時損失の順序やまれな連敗の影響は、単一のシナリオでは見えません。連敗や順序リスクをランダムに並べ替えて確認するモンテカルロ法による破産確率の検証や、合成後のドローダウンの深さ・回復期間を読む最大ドローダウンの見方を併用すると、配分の頑健さを多面的に確認できます。資金配分シミュレーションはあくまで結果の分布であり、将来収益や最適運用を保証しません。
実務チェックリスト
- 全戦略の期間・タイムゾーン・通貨・初期資金・コスト・リターン頻度を統一したか。
- 相関は取引単位ではなく、共通時間軸のリターン系列(定義を明示)で計算したか。
- 平常時の相関だけでなく、急落局面の相関と同時ドローダウンを確認したか。
- 等金額・等リスク・固定比率・上限付きを記述的に比較し、単一の最適配分に依存していないか。
- 合成最大DDを個別の合計ではなく、合成エクイティから計算したか。
- 相関の高い戦略をクラスターにまとめ、見かけの本数と実質の本数を切り分けたか。
- OOS・相関シフト・コスト・制約・再配分頻度で配分をストレスし、結果を分布として見たか。

