バックテストだけで評価はアウト!正しいテストでEAを正しく評価する方法

プロフィール

EAの大魔術師
この世に生まれ何とか勉強していくことで誤魔化しで大学院まで進学したが、就職がうまくいかずIT系の中小企業に就職する。社会人になり将来の不安と日々のストレスと絶望感を味わいながら何とか脱サラを目指しブログと投資を実施中。

 

 

みなさんはEAを評価するときにバックテストだけをすればOKだと思い込んでいませんか?実はこれはアウトです。

EAを正しく評価しないと本番口座でEAを稼働した時に思わぬ損失となってしまいます。EAがバックテスト通りの成績にならないという問題に悩まされることになります。

バックテストの種類を知る前にまず過剰最適化(カーブフィッティング)について知る必要があります。

過剰最適化とは

EAを作るときの過程として最適化という作業を行います。例えば、ボリンジャーバンドの2σで逆張りするEAがあったとします。するとボリンジャーバンドの期間にはいくつの値を使用するか迷うと思います。そこで過去相場で最も利益が出るようなボリンジャーバンドの期間をコンピュータで計算して選び出します。これを最適化と言います。

この最適化の作業を何個ものインジケータで何回も行っていきます。そうするとEAは最適化されすぎた状態になり、過去の相場でしか利益を出すことのできないEAとなってしまいます。これを過剰最適化と呼んでいます。

例えば下のような線は綺麗すぎるので過剰最適化の可能性がある線ですね。

次にバックテストの種類について本題のバックテストの種類について紹介していきます。

ヒストリカルバックテスト

これはみなさんが普段やっていると思いますが、ヒストリカルデータを元に最適化をかける一般的なバックテストです。

初心者でもわかるよう1から解説!MT4でEAのバックテスト方法【自動売買FX】
初心者でもわかるよう1から解説!MT4でEAのバックテスト方法【自動売買FX】
目次1 バックテストとは2 バックテストの方法2.1 準備するもの2.2 手順2.2.1 ① 既存ヒストリカルデータを削除 2.2.2 ②ヒ...

これは最もよく使われる検証法ですが、簡単なため最も誤解されやすい方法でもあります。いくつかインジケーターを組み合わせて最適化を行い最適なパラメータを導き出すという作業を実施すると思いますが、そのほとんどが過剰最適化になってしまうという問題があります。過剰ではなくてもある程度は最適化されています。

この問題があまり認知されていない気がします。今のEAの宣伝を見るとやたらとバックテストの結果がいいとか、悪いとかのお話しをしており、肝心なフォワードの話があまりないように思います。

ここではっきりと申しておきますがバックテストだけでシステムを評価するのは誤りです。次にバックテストよりも優れたアウトオブサンプルテストについて説明します。

アウトオブサンプルテスト

ほとんどの人はヒストリカルデータのすべての期間を使ってヒストリカルバックテストを行ってしまうと思いますが、実はこのやり方はいいやり方ではありません。

これとは別のテスト方法にアウトオブサンプルテストというテスト方法が存在します。このテストはヒストリカルデータを最適化の期間と最適化の後のテストの期間の2種類に分割する方法です。

イメージとしては下記の通りです。

上の例だとまず2003~2006年で最適化を行い、最適化した後のEAを2007~2010年の期間でバックテストを行いパフォーマンスを確認します。

もし、この方法でバックテストがいいパフォーマンスになれば、通常のバックテストで最適化を行った場合に比べてリアルトレードがうまくいく可能性が高まります。

アウトオブサンプルテストを採用しているオススメなEAとしては下記のEAが挙げられます。こういったEAは珍しいし、ちゃんとわかって作っているなと感心します。

RECOBA Triple Swing M51つのEAでEUR/JPY, GBP/JPY, AUD/JPYに対応。リアル口座myfxbookを公開しています。 | GogoJungle

INTER_EURJPY_M5最大SL45pips 勝率80% TP上限無し(変動)。リアル運用5ヵ月で550pips獲得。低ドローダウンのEAです。 | GogoJungle

MILAN_EURJPY_M5『スキャル』×『スイング』の融合。バックテスト年平均1000pipsオーバー。出品までの約7ヶ月で700pips獲得。 | GogoJungle

ただ、アウトオブサンプルテストは最適化したパラメーターの値を永遠に変えられないことが問題になります。これを解決するためにあるテスト方法が次に紹介するウォークフォワードテストです。

ウォークフォワードテスト

ウォークフォワードテストとは簡単に言うとアウトオブサンプルテストをたくさん行って、そのテスト結果をつなぎ合わせたものです。

イメージとしては下記の通りです。

黒枠が最適化期間、赤枠がテスト期間です。最終的にこの赤枠のテスト結果をつなぎ合わせてひとつのバックテスト結果を作ります。

アウトオブサンプルテスト、ウォークフォワードテストを採用しているオススメな EAとしては下記のEAが挙げられます。アウトオブサンプルテスト非常に面倒なテストなのでここまで実施して作成しているEAはそれだけ真面目に作っているという証拠です。

CROCUS_EURJPY【公開本番口座で無双中!】高スプレッド耐性、低資金OK。設定は簡単で初心者にもオススメ | GogoJungle

CROCUS_USDJPY【公開本番口座で収益増加中!】高スプレッド耐性、低資金OK。設定は簡単で初心者にもオススメ | GogoJungle

Sentinel【実績1年以上】コロナ相場でも強いハイポテンシャルEA | GogoJungle

リアルタイムテスト

過去のチャートを使うとどうしてもデータの精度に問題があるとして、バックテストを実施していない人もいます。そこで登場するのがリアルタイムテストです。

リアルタイムテストはバックテストをまったく行わずにリアルトレードだけでデータを集めてテストをする方法です。しかし、このテスト方法はデータを集める速度がリアルタイムの進む時間と等しいので膨大な時間がかかります。

よってこのテスト方法はあまり現実的ではありません。本物の最強のトレーダーのテスト方法なのです。

まとめ

今回はバックテストの種類についてお話ししました。

ここまで説明した通り、EAはバックテストだけではなく、その先のアウトオブサンプルテスト、ウォークフォワードテストを実施しないと本番でいい成績になるのは難しいのです。

ですが、世に出回っているEAでここまで考えて作成されているEAはごく少数だと思います。EAを選ぶ際、作る際はバックテストについてよく考えてから選びましょう。

ここまでのお話しは以下の書籍を参考にしております。