シリーズ「検証結果の読み方」全3回の第1回です。
過去検証のやり方を説明した記事はたくさんあります。ツールを開いてチャートを送り、ルール通りにエントリーして、勝率と損益を記録する。手順としてはそれで合っています。
ただ、その先がほとんど書かれていません。出てきた勝率60%という数字を、どこまで信じていいのか。ここを飛ばすと、検証したのに勝てないという状態になります。手法が悪いのではなく、検証の読み方でつまずいているケースがかなりあります。
TL;DR
確かめる数字は3つです。
- トレード数:何回のトレードでその勝率を出したか
- 試行回数:採用するまでに何通りのルールを試したか
- 期間を分けた結果:前半と後半で同じ傾向が出るか
このうち2番目が一番見落とされていて、一番効きます。
50トレードの勝率60%は、負け越しと区別がつかない
50トレードして30勝、勝率60%だったとします。悪くない数字に見えます。
ですがこれは50回しか投げていないコインの結果です。同じ手法を無限に回したときの本当の勝率がどのあたりにあるか、幅で出すとこうなります(二項分布の95%信頼区間、Wilson法)。
| トレード数 | 勝率 | 本当の勝率がある範囲(95%) |
|---|---|---|
| 50 | 60% | 46.2% 〜 72.4% |
| 100 | 60% | 50.2% 〜 69.1% |
| 300 | 60% | 54.4% 〜 65.4% |
| 1000 | 60% | 56.9% 〜 63.0% |
50トレードでは下限が46.2%です。負け越す手法だったとしても、50回やれば勝率60%くらいは普通に出ます。この検証結果からは、勝てる手法かどうかを判断できません。
300トレードあたりから範囲が実用的な幅に収まってきます。50や100で結論を出しているなら、まだ足りていないと考えたほうが安全です。
もっと効くのは「何通り試したか」
ここからが本題です。
検証の説明記事はたいてい、パラメータを変えて一番成績の良い組み合わせを採用しましょう、と書いてあります。移動平均を20から25に変えてみる、損切り幅を30pipsから50pipsにしてみる。ごく自然な手順に見えます。
ですが、これをやると数字が勝手に良くなります。
実力がちょうど五分五分(本当の勝率50%)の手法を用意して、100トレードの検証をM通り走らせ、その中から一番成績の良かったものだけを見る。これを2万回繰り返して集計しました。
| 試した通り数 | 一番良かったものの見かけの勝率(中央値) |
|---|---|
| 1通り | 50% |
| 5通り | 56% |
| 10通り | 57% |
| 30通り | 60% |
| 100通り | 62% |
実力が完全に五分五分でも、30通り試せば見かけの勝率60%が普通に出ます。しかも中央値で60%です。運が良ければ75%まで出ました。
つまり冒頭の「50トレードで勝率60%」は、パラメータを30通り試した後の数字なら、何の情報も持っていません。エッジがゼロの手法から出る典型的な値です。
試行回数は自己申告するしかないので、正直に数えてください。パラメータの組み合わせだけでなく、通貨ペアを変えた回数、時間足を変えた回数、途中で条件を足したり外したりした回数も全部入ります。感覚的には、思っているより1桁多いことが多いです。
期間を分けると、かなり落とせる
3つ目は単純です。検証期間を前半と後半に割って、両方で同じ傾向が出るかを見ます。
さきほどと同じ、実力五分五分の手法で計算しました。
- 前半100トレードで勝率55%以上が出る確率:17.9%
- 前半で55%以上、かつ後半でも55%以上になる確率:3.3%
5分の1近く残っていたまぐれが、両方の期間を要求すると30分の1まで落ちます。完璧なフィルタではありませんが、手間に対して効果が大きい部分です。
注意点として、前半を見てからルールを調整して後半で試したなら、それは分けたことになりません。後半も試行回数のうちに入ります。
よくある間違い
- 勝率だけを見る:勝率90%でも、1回の負けが9回の勝ちを消すなら意味がありません。損益の期待値と合わせて見ます
- 都合の悪い期間を外す:相場が特殊だったから、という理由で期間を削ると試行回数が増えるだけです
- スプレッドとスワップを入れない:短い足ほどここで結果が反転します。往復コストを引いてから判断します
- 良い結果が出たところで止める:検証を止めるタイミングを結果で決めると、それも実質的な試行になります
まず何をするか
いま手元に検証結果があるなら、次の3つを書き出してみてください。
- トレード数はいくつか。300に届いているか
- 採用するまでに何通り試したか。10通りを超えているなら、上の表の分だけ数字を割り引く
- 期間を2つに割っても同じ方向が出るか
この3つを通した手法だけを、少額の実弾に進める。それだけで、検証したのに勝てないという状態はかなり減ります。
なお、ここで挙げた3つは入口です。試行回数の割り引きをきちんと数式で扱う方法(Deflated Sharpe Ratio)や、パラメータをずらしたときに成績がなだらかに変化するかを見る方法など、もう一段先があります。


コメント