- 本当は勝ちも負けもしない(PF1.0の)ロジックでも、取引10回なら約38%の確率でPF1.2以上に見える。100回でも約18%、1,000回でようやく約0.2%まで下がる
- 逆に、本当はPF1.2のロジックでも、取引30回では約29%の確率でPF1.0未満(負け越し)に見える
- 回数が少ない検証は「良い・悪い」のどちらにも大きくぶれる。PFを見るときは、取引回数を必ずセットで見るようにしている
EAのバックテストを見ていると、「PF2.5」「勝率80%」のような、ひと目で良さそうな数字に出会うことがあります。ところが取引回数の欄を見ると、20回や30回しかない、ということも少なくありません。
私自身、開発中のロジックで「1年でPF7.56の四半期があったのに、次の四半期はPF0.06だった」という経験をしています(エリオット波動の記事)。このときは月4〜5回しか取引がありませんでした。回数が少ないと、なぜここまでぶれるのか。今回は、できるだけ単純なモデルで計算して確かめてみました。
計算のしかた
実際の相場はもっと複雑ですが、考え方をつかむために、次の2つの「コイン投げ」のようなモデルを置きました。
| モデル | 勝率 | 1回の利益 | 1回の損失 | 本当のPF |
|---|---|---|---|---|
| A:実力ゼロ | 50% | 1 | 1 | 1.0 |
| B:少し勝てる | 50% | 1.2 | 1 | 1.2 |
どちらも毎回の勝ち負けは五分五分で、モデルBだけ勝ったときの利益が少し大きい、という設定です。取引をN回したときに勝ちが何回になるかは二項分布で正確に計算できるので、乱数は使わず、それぞれの勝ち数になる確率と、そのときのPF(総利益÷総損失)を数えました。
※PFは「総利益÷総損失」です。詳しくは成績表の読み方をご覧ください。
実力ゼロでも「良く見える」確率
まずモデルA(本当のPFは1.0)です。取引回数ごとに、検証の結果がPF1.2以上、PF1.5以上に見える確率を出しました。
| 取引回数 | PF1.2以上に見える確率 | PF1.5以上に見える確率 |
|---|---|---|
| 10回 | 約37.7% | 約37.7% |
| 30回 | 約29.2% | 約18.1% |
| 50回 | 約24.0% | 約10.1% |
| 100回 | 約18.4% | 約2.8% |
| 300回 | 約5.9% | 0.1%未満 |
| 1,000回 | 約0.2% | 0.1%未満 |
※10回では、6勝4敗でPFが1.5になるため、2つの列が同じ値になります。
取引10回だと、実力ゼロのロジックでも3回に1回以上は「PF1.2以上」に見えます。100回あっても、5〜6回に1回は同じことが起きます。
ここに「たくさんの設定を試して、いちばん良いものを選ぶ」という最適化が加わると、話はさらに厳しくなります。実力ゼロの設定を20通り試せば、そのうち何通りかが偶然PF1.2以上になるのは、ごく自然なことだからです。
少し勝てるロジックでも「負けて見える」確率
次にモデルB(本当のPFは1.2)です。こちらは逆に、検証の結果が負け越し(PF1.0未満)に見える確率と、結果のPFのおおよその幅(下から5%〜上から5%の範囲)を出しました。
| 取引回数 | PF1.0未満に見える確率 | 結果のPFのおおよその幅 |
|---|---|---|
| 10回 | 約37.7% | 0.30〜4.80 |
| 30回 | 約29.2% | 0.69〜2.07 |
| 100回 | 約18.4% | 0.87〜1.66 |
| 300回 | 約5.9% | 1.00〜1.45 |
| 1,000回 | 約0.2% | 1.08〜1.33 |
本当はPF1.2のロジックでも、10回の検証ではPF0.30にも4.80にも見えます。30回でも、およそ3回に1回は負け越しに見えます。回数が少ないと、良いロジックを捨ててしまう失敗も起きやすいということです。
なお、モデルAの「PF1.2以上に見える確率」とモデルBの「PF1.0未満に見える確率」が同じ値になっているのは、この2つのモデルの関係上、ちょうど裏返しの条件になるためで、計算の誤りではありません。
実際の相場では、もっとぶれやすい
今回のモデルは、勝率50%・利益と損失の大きさが毎回同じ、というかなり素直な設定です。実際のEAでは、次のような理由で、ぶれはこれより大きくなりやすいと考えています。
- 勝率が低く、利益を大きく取るタイプは、数回の大きな勝ちが成績の大部分を占めるので、その数回があるかないかで結果が大きく変わる
- 相場の性格が変わる(値動きの大きさやトレンドの出方が変わる)と、勝率そのものが期間によって変わる
- 1回の損失の大きさがそろっていないと、たまたま起きた大きな負けが結果を左右する(曜日・時間帯の記事でも、マイナスの原因は数回の大きな負けでした)
回数の少ない検証を見るときに、私が気をつけていること
- PFと取引回数を必ずセットで見るPFだけでは、実力なのか偶然なのか区別できません。回数が数十回なら、数字が良くても「まだ分からない」と考えるようにしています。
- 回数が少ないときは、条件を厳しめにするどうしても回数が増やせない場合は、PFの目安を高めにしたり、期間を分けてどの期間でも崩れていないかを確かめたりします。
- 使っていない期間で確かめる最適化に使ったデータでの成績は、偶然の上振れを含んでいます。使っていない期間に当てる検証やウォークフォワードで、選んだ設定がそのまま通用するかを見ています。
- 回数を増やすための無理な変更をしない回数を増やそうとロジックを足すと、今度は成績そのものが落ちることがありました(ロジックを足した記事)。回数は大事ですが、回数だけを追いかけないようにしています。
まとめ
勝率50%の単純なモデルで計算すると、実力ゼロのロジックでも取引10回なら約38%の確率でPF1.2以上に見え、本当はPF1.2のロジックでも30回では約29%の確率で負け越しに見えました。回数が少ない検証は、良いほうにも悪いほうにも大きくぶれます。
EAの成績を見るときは、PFや勝率の数字の前に、まず取引回数を確かめてみてください。それだけでも、偶然の数字に振り回されることはかなり減ると思います。
※本記事は情報提供を目的としたもので、特定の金融商品やEAの売買・利用を推奨するものではありません。記載の確率は、勝率50%・利益と損失が一定という単純化したモデルでの計算値(二項分布による厳密計算)で、実際のEAの成績を表すものではありません。FX・CFD取引には元本を失うリスクがあります。過去の成績は将来の成果を保証しません。投資判断はご自身の責任で行ってください。