帰無仮説とは
帰無仮説とは、検証を始めるときに置く「何もない」という仮定です。トレードルールなら、「このルールは、比較対象より良い結果を生まない」と置きます。 検証は、ルールが効くことを証明しに行く作業ではありません。帰無仮説が正しい(ルールに追加のエッジがない)と仮定したとき、実際に観測した成績がどのくらい起こりにくいかを調べる作業です。
たとえば「ルールがなくても、この時間帯に持っていればこのくらいの成績は出る」という結果の範囲を先に作っておき、実際の成績をその上に置きます。 範囲の真ん中に埋もれるなら、その成績はエッジなしでも普通に起きる程度です。範囲の端より外にあるなら、エッジなしでは説明しにくい、と言えます。
大事な注意が1つあります。帰無仮説を棄却できなかったことは、「このルールは絶対に効かない」という証明ではありません。今のデータの量と検定の方法では、偶然との差を区別できなかった、という意味です。 逆に、棄却できたことも「将来も効く」という証明ではありません。この期間のこの比較対象に対して、偶然とは言いにくい差があった、というところまでです。 値動きの大部分が偶然に近いという相場の見方は、効率的市場とランダムウォークの記事で扱っています。
比較対象の条件をそろえる
帰無分布は、比較対象から作ります。比較対象とは、「調べたいルールの部分だけを取り除き、それ以外はできるだけ同じにした売買」のことです。 よくある誤りは、比較対象を「利益ゼロ」にすることです。ゼロと比べると、同じ時間帯・同じ方向に持っていただけで得られた利益まで、すべてルールの手柄に見えてしまいます。
比較対象でそろえる条件は、次の5つです。
- 方向の比率:ルールが買い80%・売り20%なら、比較対象も同じ比率にする。上がり続けた相場では、買いが多いだけで有利になるため。
- 保有時間:ルールが8本持つなら、比較対象も8本持つ。長く持つほど相場の流れを多く受け取るため。
- 曜日・時間帯:ロンドン序盤のルールを、24時間の平均と比べない。時間帯によって値動きの大きさも向きも違うため。
- コスト:両方に同じスプレッド・手数料・滑りを入れ、同じ約定の仕方(次の足の始値など)にする。
- 回数:取引の回数を同じくらいにする。回数が違うと、ぶれの大きさが変わるため。
比較対象の作り方の1つに、ルールの売買のタイミングや方向を無作為に入れ替える方法があります。ただし、入れ替えで時間帯やボラティリティのまとまり(荒れる日が続く性質)まで壊すと、現実より簡単に勝てる比較対象になってしまいます。 何を残して何を壊すかは、仮説が「何によって勝つ」と言っているかで決めます。値動きの並びそのものを入れ替える置換検定は第12回で扱います。
FXとゴールドで特にそろえるもの
FXの通貨ペアは、株の買い持ちと同じ物差しでは測れません。2つの通貨の金利差(スワップ)、ドルや円への共通の値動き、東京・ロンドン・ニューヨークの時間帯の違いがあります。「いつ買っても同じ」ではないので、方向と時間帯をそろえた比較が必要です。 ゴールド(XAU/USD)は、長い上昇・下落の局面、ドルや実質金利、リスク回避の流れ、ロンドン・ニューヨーク時間への依存があります。買い中心のルールなら、金が上がった局面の保有益と、シグナルが付け加えた分を分けて見ます。
Bさんの3つの比較対象
Bさんは、東京時間(JST 9:00〜15:00)の高値・安値を、ロンドン現地時刻 8:00〜10:00 の15分足の終値で抜けた方向に、次の足の始値で入り、ロンドン16:00に決済するルールを1通りだけ登録しました(第6回)。 その登録書には、データを見る前に3つの比較対象を書いてあります。それぞれが、ルールのどの部分を取り除いたものかを確認します。
- C1(方向だけ無作為):Bさんと同じ日・同じ約定時刻・同じ保有時間で、買いか売りかだけを無作為に決める。買いと売りの比率はBさんと同じにし、1000回作る。取り除いたのは「ブレイクの向きに入る」という判断だけ。
- C2(ブレイクなしで入る):ブレイクがあってもなくても、毎日ロンドン 08:15 に買いで入り、同じくロンドン16:00に決済する。取り除いたのは「ブレイクを待つ」という判断。
- C3(相場の流れ):同じ保有時間帯に、単純に買い持ち・売り持ちしたときの平均。取り除いたのは、判断のすべて。
探索期間(2005〜2016年)の結果です。取引は1,893件、次の足の始値で約定させています。
| 対象 | 条件 | 1取引の平均(pips) | 読み方 |
|---|---|---|---|
| Bさん | 通常コスト 0.4 | −0.14 | コスト前は +0.26。買い916件 +2.64、売り977件 −2.76(コスト前) |
| C1(方向だけ無作為) | 通常コスト 0.4 | 1000回の平均 −1.22 | Bさんは上回ったが、1000回のうちBさんの −0.14 以上になった回が5.6%あった(p=0.056) |
| C2(08:15に入る) | コスト前 | +1.35 | ブレイクに関係なく買って16時に決済するだけで、Bさんのコスト前 +0.26 を上回った |
| C3(相場の流れ) | コスト前 | +2.67(同じ保有時間帯の平均的な流れ) | Bさんの買いは流れとほぼ同じだけ稼ぎ、売りは流れとほぼ同じだけ負けた |
この表から読めることは、はっきりしています。探索期間のこの時間帯は、平均するとドル円が上がる時間帯でした(C3 の +2.67)。Bさんの買いの +2.64 は、その流れとほとんど同じです。売りの −2.76 も、流れを逆向きに受けただけに見えます。 つまり探索期間では、ブレイクの向きに入るという判断は、相場の流れ以上のものをほとんど付け加えていません。何も判断しないC2のほうが、コスト前ではむしろ良かったくらいです。 C1との比較は p=0.056 で、事前に決めた p<0.05 には届きませんでした。
その後の期間でも、C1との差はBさんにとって一番高い壁でした。検証期間(2017〜2022年)の p は 0.10、最終テスト(2023年1月〜2026年7月)の p は 0.084 です。 最終テストのBさんは1取引 +4.42 pipsで、95%信頼区間 [+0.39, +8.46] はゼロを含みません。ゼロと比べれば有意、比較対象と比べれば有意でない。これが、比較対象を置く意味そのものです。Bさんは事前に書いた基準のとおり、この項目を不合格とし、判定は「保留」になりました(第17回)。
2人の「やったこと/結果」
| 比較対象の決め方 | 比較の結果 | |
|---|---|---|
| Aさん | 比較対象を置かず、ゼロと比べて報告した(報告:351件、+8.65 pips、PF 1.83)。売りが負けたのを見て、買いだけのルールにした | 検証者が「同じ時刻・同じ決済ルールで、無作為な日に買う」と比べると、探索期間は +8.65 対 +1.63(p=0.000)、検証期間は +3.94 対 +0.75(p=0.097)、最終テストは p=0.174 |
| Bさん | データを見る前に、C1〜C3を登録書に書いた。両方向を対称に検証した | C1との差は、探索 p=0.056、検証 p=0.10、最終テスト p=0.084。一度も有意にならず、この項目は不合格のまま |
Aさんの探索期間の差(p=0.000)は、Bさんよりずっと強く見えます。しかし、Aさんの成績は57,662通りから選ばれたもので、Bさんは1通りです。この差の中身を、次の章で分けます。
利益を分ける:相場の流れ・ルールの実力・最適化の水増し
比較対象との差が分かっても、まだ足りないことがあります。差の中に何が入っているかです。統計学者の Timothy Masters は著書『Testing and Tuning Market Trading Systems』で、戦略の利益を3つに分ける考え方を示しています。
- 相場の流れ(トレンド):ルールと同じだけ買い・売りの時間を持っていれば、どんな持ち方でも得られた分。
- ルールの実力(スキル):いつ入り、いつ出るかというタイミングが付け加えた分。
- 最適化の水増し(バイアス):たくさん試して最良を選んだことで、過去の成績が良く見えている分。
公開されている例:Turnaround Tuesday
YouTube チャンネル Unbiased Trading の動画「How I Optimized My Trading Strategies to Profitability (Like a Quant)」(2026年)は、この分解を実際に回しています。 題材は、米国株ETFのSPYを、2日続けて下げた月曜の終値で買う Turnaround Tuesday という古い曜日のパターンです。5年分の日足で44トレードでした。 分解の結果は、利益の約88%がルールの実力で、相場の流れによる分は小さいというものです。動画では理由として、市場にいた時間が約10%しかないので相場全体の上昇をあまり受け取れないこと、パラメータを最適化していないので水増しは小さいことを挙げています。
この例は、分解の読み方を知るには分かりやすい一方で、5年・44トレード・1市場という短い検証で、何が言えて何が言えないかは第13回で検討しました。 また、動画の中で、データ提供元の Public から報酬を受けて作ったことが開示されています。そして、パラメータを最適化していなくても、多くの曜日パターンの中から「有名になった1つ」を選んだこと自体には、見えない試行が含まれます(第3回)。
Aさんの利益を分ける
同じ考え方で、Aさんの最終案を分けてみます。Aさんは買いだけのルールなので、比較対象は「同じ時刻に入り、同じ決済ルールで出る買いを、無作為に選んだ日に行う」(300回)です。 さらに、Aさんが後から足したフィルタ(金曜・5月の除外、RSI>55)を通る日だけから無作為に選んだ場合も計算し、フィルタの分を切り出しました。 条件は3期間ともAさんの報告と同じ、シグナル足の終値で約定・コスト0です(比較対象も同じ条件)。
図の読み方を、期間ごとに確かめます。
- 探索期間(2005〜2016年):合計 +8.65 のうち、同じ時刻に無作為な日に買うだけで +1.63、フィルタを通る日に限ると +2.57 でした(フィルタの分は図の +0.94)。残り +6.08 は大きく、比較対象との差は p=0.000 です。
- 検証期間(2017〜2022年):合計 +3.94 のうち、無作為な買いが +0.75、フィルタを通る日に限っても +0.79 で、フィルタの分はほぼ消えました。残りは +3.16 ですが、比較対象との差は p=0.097 で有意になりません。
- 最終テスト(2023年1月〜2026年7月):合計 +6.03 のうち、無作為な買いだけで +2.18。円安が進んだこの期間は、ルールがなくても買えば儲かった分が大きくなりました。最終テストでの比較対象との差は p=0.174 です。
ここで注意したいのは、金茶の「残り」が、Masters の分け方でいうルールの実力と最適化の水増しの合計だという点です。この分解だけでは、2つを分けられません。 探索期間の「残り」が大きいのは当然とも言えます。Aさんは探索期間の成績を見て、57,662通りの中から一番良いものを選んだからです。選んだデータの上で測れば、選んだことによる水増しがそのまま「残り」に入ります。 水増しの大きさは、値動きの並びを壊した相場で同じ最適化をやり直すと見積もれます。第12回の結果を先に言うと、探索期間のグリッド最良案の総pips +5,143 のうち、約77%は、年ごとの流れを残して並びだけを壊した相場でも、最適化で作れました。 Aさんの探索期間の「残り」の大部分は、ルールの実力ではなく選び方の水増しだった可能性が高い、ということです。そして、選ぶのに使っていない検証期間と最終テストでは、比較対象との差が有意になりませんでした。
「同じポジション比率のランダム戦略」と比べる考え方
Masters は、相場の流れの分を計算する方法として、同じ比率でポジションを持つランダムな戦略との差を取る考え方を紹介しています(Better System Trader のインタビュー「How to avoid trading strategies that degrade quickly」、2021年、67:08〜72:22)。 たとえば、期間の30%で買い、20%で売り、50%は手じまいしているシステムなら、同じ30%・20%・50%を期間全体に無作為にばらまいた「何も考えないシステム」の利益を計算できます。実際の利益からそれを引いた差が、「いつ買い、いつ売るかを知っていた」分だ、という見方です。
一方で Masters は、正反対の見方もあると言います。上昇相場で「売りより買いを多く持った」こと自体が、相場を読む力かもしれない。そう考えるなら、差を取ると本当の実力まで引いてしまいます。 Masters 自身は、どちらが正しいとは決められないとして両方の結果を見ており、ランダムなシステムに勝てなかったならシステムを考え直すが、差の大きさそのものはあまり重視しない、と話しています。
Aさんに当てはめると、この論点ははっきりします。Aさんが「買いを多く持った」のは、相場を読んだからではありません。探索期間で売りが負けたのを見て、買いだけのルールを選んだからです。 第11回で見るとおり、Aさんの最終案は、パラメータを1つずつ変えても成績があまり変わらず、方向を変えたときだけ大きく変わりました(買い +8.65、売り −0.09、両方向 +4.30)。 「買いを多く持った」ことを実力と数えてよいのは、その向きをデータを見る前の理由で決めた場合だけです。結果を見て決めた向きは、実力ではなく試行の1つとして、Nに数えます(第8回)。
p値を誤解しない
比較対象との差を判断するときに使うのがp値です。p値は「帰無仮説が正しい確率」ではありません。帰無仮説が正しいと仮定したときに、観測した結果と同じか、それより極端な結果が出る割合です。 BさんのC1の p=0.056 は、「方向を無作為に決めた1000回のうち、Bさんの −0.14 pips以上になった回が5.6%あった」という意味です。「Bさんのルールが偶然である確率が5.6%」という意味ではありません。
p値について、よくある誤解を3つ整理します。
- 小さいp値は、大きな利益を意味しない:差が統計的に確かでも、コストを払った後に残る差が小さければ取引する価値はありません。統計的な差と、口座に残る実用的な差は、別々に確かめます。
- 大きいp値は、効かない証明ではない:取引が少ないと、実用的な差があっても検出できないことがあります。Bさんの p=0.084 も「効かない」ではなく、「まだ区別できていない」です。
- 試した数を隠すと、p値は意味を失う:100通りを試して一番小さいp値だけを報告すれば、偶然の当たりを選べてしまいます。
たくさんのルールを同じデータで比べて、一番良いものを報告するとき、その成績を1つのルールの検定と同じように読むことはできません。データを使い回したモデル選択をどう補正するかは、Halbert White の「A Reality Check for Data Snooping」(2000年)が扱った問題です。 このコースでは、試した数を記録する方法を第8回で、試した数を成績の評価に反映する DSR を第14回で扱います。
t検定と置換検定の結果がずれる理由
同じ成績に、2種類の検定をかけることがあります。1つは、実際の収益の平均がゼロより大きいかを調べるt検定や、実際の収益を再標本化するブートストラップです。もう1つは、値動きの並びをシャッフルして作った相場と比べる置換検定です。 この2つの結果が大きく食い違うことがあります。Masters は、その理由を次のように説明しています(同じインタビュー、71:20〜72:22)。
t検定やブートストラップは、実際の収益をそのまま使うので、「ポジションの偏り」と「相場の流れ」が重なって生まれた利益も評価に含めます。 置換検定では、値動きの順番を並べ替えても、期間の始めと終わりの価格は変わりません。どの偽の相場も同じ流れを持っているので、流れの分は打ち消されます(どう打ち消されるかの詳しい仕組みは複雑だ、と Masters は断っています)。 そのため、流れのある相場で、買いと売りのどちらかに大きく偏ったシステムを検定すると、2つの結果が大きく食い違いやすい、というのが Masters の説明です。
これは、どちらかの検定が間違っているという話ではありません。2つの検定は、別の帰無仮説を調べています。t検定は「収益はゼロ」、置換検定は「並びに規則はない」です。 Aさんのように買いだけのルールを円安の期間で検証するなら、両方を並べ、ずれていたら「利益の多くは流れから来ているかもしれない」と読むのが実務的です。置換検定の手順とAさん・Bさんの結果は第12回で扱います。
よくある間違い
「利益がゼロより大きいから、エッジがある」
同じ方向・同じ時間帯に持つだけでプラスになるなら、ゼロとの比較はルールの力を過大に見積もります。Bさんの最終テストは、ゼロとの比較なら95%信頼区間がゼロを含まないのに、方向だけ無作為にしたC1との比較では p=0.084 でした。比べる相手で結論が変わります。
「負けた方向を外して、片方向にする」
Aさんは売りが負けたのを見て、買いだけにしました。上昇が続いた期間なら、買いだけにすれば成績は必ず良く見えます。それは相場の流れを取り込んだだけで、しかも結果を見て選んだ試行です。仮説の理由が両方向に当てはまるなら、両方向を対称に検証します。
「無作為化すれば、どんな比較対象でも公平」
時間帯やボラティリティのまとまりまで壊した比較対象は、現実より弱い相手になり、ルールが実際以上に強く見えます。何をそろえ、何を無作為にするかは、仮説が何によって勝つと言っているかで決めます。
「有意なら採用」
統計的な差と、コストを払った後に残る実用的な差は別物です。さらに、たくさん試した中から選んだ案なら、その p値は1つだけ試した場合より甘くなります。比較対象との差、コスト後の差、試した数の3つを並べて判断します。
実戦課題
自分が検証しているルールを1つ選び、次の順に作業してください。
- 比較対象を書く:「比較対象は、方向の比率・曜日・時間帯・保有時間・コストを○○の方法でそろえる」という1行を、仮説の記録(第6回)に書き足します。最適な条件を探す前に、比較の方法を先に固定します。
- 方向別に分ける:成績を買いと売りに分け、それぞれを「同じ保有時間帯の単純な買い持ち・売り持ち」と並べます。買いの成績が流れとほぼ同じなら、ルールは流れ以上のものを付け加えていません。
- 方向だけ無作為にする:同じ日・同じ時刻・同じ保有時間で、方向だけを無作為にした売買を1000回作り、自分の成績以上になった回の割合(p値)を出します。
- ゼロとの比較と並べる:平均の95%信頼区間(ゼロとの比較)と、比較対象とのp値を並べて書き、結論が変わるかどうかを確かめます。
- 研究ログに残す:比較対象の結果を見てルールを変えたなら、それは新しい試行です。N+1として記録します(第8回)。
やるべきこと/やるべきでないこと
| やるべきこと | やるべきでないこと |
|---|---|
| 比較対象との差で評価する | 損益の絶対値や、ゼロとの比較だけを見る |
| 比較対象を、データを見る前に登録書に書く | 結果を見てから、勝てる比較対象を選ぶ |
| 方向の比率・保有時間・時間帯・コスト・回数をそろえる | ロンドン序盤のルールを、24時間の平均と比べる |
| 両方向を対称に検証する | 負けた方向を外して片方向にする |
| 成績を買い・売りに分け、同じ時間帯の相場の流れと並べる | 上昇局面の買いの利益を、そのままルールの実力と呼ぶ |
| 比較対象との差に、最適化の水増しが混ざることを置換検定で確かめる | 探索期間で選んだ案の「残り」を、全部ルールの実力と読む |
| t検定と置換検定を並べ、ずれたら流れの影響を疑う | 都合のよい方の検定結果だけを報告する |
チェックリスト
次の回に進む前に、以下が自分の言葉で説明できるか確認してください。
- 帰無仮説を「このルールは比較対象より良い結果を生まない」と書けること
- 棄却できなかったことが「効かない証明」ではない理由
- 比較対象でそろえる5つの条件(方向の比率・保有時間・時間帯・コスト・回数)
- BさんのC1〜C3が、それぞれルールのどの部分を取り除いたものか
- Bさんの最終テストが、ゼロとの比較では有意、C1との比較では有意でなかったことの意味
- 利益を相場の流れ・ルールの実力・最適化の水増しに分ける考え方と、Aさんの「残り」に水増しが混ざる理由
- p値の意味と、t検定と置換検定の結果がずれる理由
ミニテスト
4問で確認します。不正解なら別の選択肢を選び直せます。正解すると解説が表示されます。
Q1. トレードルールを検証するときの帰無仮説の基本形はどれですか?
まず「エッジはない」と置き、観測した成績がそれでは説明しにくいかを調べます。比べる相手はゼロではなく、ルール以外の条件をそろえた比較対象です。
Q2. Bさんの最終テストは、平均 +4.42 pips、95%信頼区間 [+0.39, +8.46] でしたが、方向だけ無作為にしたC1との比較は p=0.084 でした。正しい読み方は?
ゼロと比べれば有意でも、同じ日・同じ時刻・同じ保有時間で方向だけ無作為にした場合との差は有意ではありません。仮説の中心は「抜けた方向へ動きやすい」なので、ここが確かめられないのは重い不合格です。基準は結果を見て緩めません。
Q3. Aさんの探索期間の成績 +8.65 pipsを分けると、無作為な日の買いが +1.63、フィルタの分が +0.94、「残り」が +6.08 でした。「残り」の正しい読み方は?
探索期間は、Aさんが成績を見て最良案を選んだデータそのものなので、選んだことによる水増しが「残り」に入ります。第12回の置換検定では、探索期間のグリッド最良の総pipsの約77%が、並びを壊した相場でも最適化で作れました。検証期間では、比較対象との差は有意になりませんでした(p=0.097)。
Q4. 同じシステムにt検定と置換検定をかけたら、結果が大きく食い違いました。Masters の説明で最もありそうな理由は?
t検定やブートストラップは、ポジションの偏りと相場の流れが重なった利益も含めて評価します。置換検定では、どの偽相場も期間全体の流れが同じなので、その分が打ち消されます。ずれは「利益が流れから来ているかもしれない」という合図です。