みなさんはEAを評価するときにバックテストだけをすればOKだと思い込んでいませんか?実はこれはアウトです。
EAを正しく評価しないと本番口座でEAを稼働した時に思わぬ損失となってしまいます。EAがバックテスト通りの成績にならないという問題に悩まされることになります。
バックテストの種類を知る前にまずカーブフィッティング(過剰最適化)について知る必要があります。
カーブフィッティング(過剰最適化)とは
EAを作るときの過程として最適化という作業を行います。例えば、ボリンジャーバンドの2σで逆張りするEAがあったとします。するとボリンジャーバンドの期間には、どの値を使用するか迷うと思います。
そこで過去相場で最も利益が出るようなボリンジャーバンドの期間をコンピュータで計算して選び出します。これを最適化と言います。
この最適化の作業を何個ものインジケータで何回も行っていきます。そうするとEAは最適化されすぎた状態になり、過去の相場でしか利益を出すことのできないEAとなってしまいます。これをカーブフィッティングと呼んでいます。
例えば下のような線は綺麗すぎるのでカーブフィッティングの可能性がある線ですね。

次にバックテストの種類について本題のバックテストの種類について紹介していきます。
ヒストリカルバックテスト
これはみなさんが普段やっていると思いますが、ヒストリカルデータを元に最適化をかける一般的なバックテストです。
これは最もよく使われる検証法ですが、簡単なため最も誤解されやすい方法でもあります。いくつかインジケーターを組み合わせて最適化を行い最適なパラメータを導き出すという作業を実施すると思いますが、そのほとんどがカーブフィッティングになってしまうという問題があります。過剰ではなくてもある程度は最適化されています。
この問題があまり認知されていない気がします。今のEAの宣伝を見るとやたらとバックテストの結果がいいとか、悪いとかのお話しをしており、肝心なフォワードの話があまりないように思います。
ここではっきりと申しておきますがバックテストだけでシステムを評価するのは誤りです。次にバックテストよりも優れたアウトオブサンプルテストについて説明します。
アウトオブサンプルテスト
ほとんどの人はヒストリカルデータのすべての期間を使ってヒストリカルバックテストを行ってしまうと思いますが、実はこのやり方はいいやり方ではありません。
これとは別のテスト方法にアウトオブサンプルテストというテスト方法が存在します。このテストはヒストリカルデータを最適化の期間と最適化の後のテストの期間の2種類に分割する方法です。
イメージとしては下記の通りです。

上の例だとまず2003~2006年で最適化を行い、最適化した後のEAを2007~2010年の期間でバックテストを行いパフォーマンスを確認します。
もし、この方法でバックテストがいいパフォーマンスになれば、通常のバックテストで最適化を行った場合に比べてリアルトレードがうまくいく可能性が高まります。
アウトオブサンプルテストを採用しているオススメなEAとしては下記のEAが挙げられます。こういったEAは珍しいし、ちゃんとわかって作っているなと感心します。
RECOBA Triple Swing M5 INTER_EURJPY_M5 MILAN_EURJPY_M5ただ、アウトオブサンプルテストは最適化したパラメーターの値を永遠に変えられないことが問題になります。これを解決するためにあるテスト方法が次に紹介するウォークフォワードテストです。
ウォークフォワードテスト
ウォークフォワードテストとは簡単に言うとアウトオブサンプルテストをたくさん行って、そのテスト結果をつなぎ合わせたものです。
イメージとしては下記の通りです。

黒枠が最適化期間、赤枠がテスト期間です。最終的にこの赤枠のテスト結果をつなぎ合わせてひとつのバックテスト結果を作ります。
アウトオブサンプルテスト、ウォークフォワードテストを採用しているオススメな EAとしては下記のEAが挙げられます。アウトオブサンプルテスト非常に面倒なテストなのでここまで実施して作成しているEAはそれだけ真面目に作っているという証拠です。
CROCUS_EURJPY CROCUS_USDJPY Sentinelリアルタイムテスト
過去のチャートを使うとどうしてもデータの精度に問題があるとして、バックテストを実施していない人もいます。そこで登場するのがリアルタイムテストです。
リアルタイムテストはバックテストをまったく行わずにリアルトレードだけでデータを集めてテストをする方法です。しかし、このテスト方法はデータを集める速度がリアルタイムの進む時間と等しいので膨大な時間がかかります。
よってこのテスト方法はあまり現実的ではありません。本物の最強のトレーダーのテスト方法なのです。
まとめ
今回はバックテストの種類についてお話ししました。
ここまで説明した通り、EAはバックテストだけではなく、その先のアウトオブサンプルテスト、ウォークフォワードテストを実施しないと本番でいい成績になるのは難しいのです。
ですが、世に出回っているEAでここまで考えて作成されているEAはごく少数だと思います。EAを選ぶ際、作る際はバックテストについてよく考えてから選びましょう。
ここまでのお話しは以下の書籍を参考にしております。