バックテストとフォワードテスト
こちらはハイローオートに装備されているバックテストツール
当サイトではバイナリーオプションの自動売買システム「AutoMultiTrader」を紹介していますので、バイナリーオプション自動売買のテストについてお話をさせていただきますが、今回の内容はFXでも考え方は共通していますので、FXメインの方もぜひ御覧ください。
基本的にバイナリーオプションサインツールのテストをする場合は、勝った回数(勝率)を重視します。これはバックテスト、フォワードテストともに変わりません。
しかし両者の決定的に違う部分として、バックテストはPC内にダウンロードした過去データを元に計算します。
このことからバックテストでわかる内容は、「どういった相場が得意か」、「ロジックにムラがないか」、「順張りが得意なのか逆張りが得意なのか」などのサインツールの特性をあぶり出すものです。
そしてフォワードテストは、PC内の過去データではなくリアルタイムで流れてくるデータを使って計算するものです。
これは、サインツールのロジックが現在の相場できちんと機能するかを検証するものです。
バックテストの役割
バックテストの特徴として、MT4などのチャートツールにはいっている過去のデータで現在お使いのサインツールを稼働させてみて、連敗率や勝てる時間帯の傾向などを視覚化します。
フォワードテストに比べて長期間のテストを短時間で行うことができますので、「過去10年分」や「10万本分のローソク足データでのバックテスト」など色々な相場にロジックをかけることができるので傾向があぶり出しやすいです。
しかしバックテスト結果が良いからといって、リアルで動かした場合に勝てるというものではなく、あくまでサインツールの傾向を掴む役割がメインということです。
また、過去のデータは使っているFX業者によって価格差がありますので、どうしても正確性にかけます。
さらに問題としてバックテストでは、「全てのエントリーはスリッページも約定拒否も無しにできた」として計算しますので、実際にエントリーを弾かれた場合は考慮されておらず、実際の運用よりも勝率が良くなる傾向があります。
そのため、世で販売されている殆どのサインツールやEAでは、基本的にフォワードテストではなくバックテストを公表して勝率を良く見せる傾向があります。
短い時間のトレードは正確な価格データのバックテストが必要です
フォワードテストの役割
続いてフォワードテストの役割ですが、これは「テスト」とは書きましたが、やっている内容としてはロットを小さく掛けてリアル口座で取引してデータを取ることです。
つまりリスクを低くした状態で、自動売買を稼働させてみるってことですね。
もちろんデモトレードで実際に運用を行ったりすることもフォワードテストと言えます。
バックテストと違って、過去のデータを使わず実際に運用するので長い期間をテストすることは難しいですが、リアル口座を使ったフォワードテストならば本番通りのデータがとれます。
もちろんデモ口座のフォワードテストでも、かなり本番に違いデータを取ることが可能です。
そのため、サインツールが現在の相場に通用するかどうかの見極めがフォワードテストで可能となります。
フォワードテストはFX業者の見極めに使える
これはEAで自動売買を運用する場合ですが、フォワードテストによってFX業者の本当のコストをあぶり出すことが出来ます。
裁量トレードで行いますとわかりにくいスプレッドやスリッページなどの見えにくい取引コストですが、自動売買のフォワードテストでFX業者を比較しますと、リアルに差が出てきます。
特に雇用統計などの指標発表時の滑り具合は、フォワードテストを行うと悪質な証券会社は一発であぶりだすことができますし、実際にTwitterなどでテスト結果をつぶやいてくれる方もいらっしゃいます。
ただし、デモトレードはリアルトレードよりも約定が滑るといったことが少ないので、比較する場合はリアルトレードの少額ロットがベストです。
バックテストが良くても本番では負けてしまう原因
おさらいですが、バックテストの長所としてロジックの得意&不得意相場あぶりだしや、時間別の苦手な場所が把握できたりと、サインツールの傾向が短時間で把握できます。
しかし、例えばバイナリーオプションのバックテストで勝率が60%を超えたからさっそく実践で使ってみよう!と自動売買を動かした時は、ほぼ100%の確率で勝率は下がってしまいます。
そこでここからは、本番でのトレードがバックテスト結果と一致しない原因を解説していきます。
バックテストはスプレッドが考慮されていない
スプレッドとは売りと買いの価格差で、もちろんスプレッドは無いほうが成績は良くなります。
バイナリーオプションにはスプレッドがないと思われている方も多いと思いますが、実は見えにくいだけできっちりと存在しています。
同じ通貨で複数の時間を表示しますと、急な変動の時に少しスプレッドが開いたりするのを見ることができます。
そしてこのスプレッドなんですが、バックテストの場合はスプレッドは考慮にはいっていません。
ですので、実際にリアル口座でサインツールやEAを稼働させると、どうしてもバックテストよりも成績は悪くなってしまいます。
バックテスト | フォワードテスト(デモ) | フォワードテスト(リアル) |
固定 | 広がる | 広がる |
バックテストは約定力とスリッページも考慮されない
バックテストのエントリーは、全てきちんと約定したこととして勝率を計算します。
しかしリアルトレードで実際に自動売買を稼働させてみると、約定が弾かれてエントリーができなかったり、レートが少し悪い部分でエントリーしてしまったりすることがありますよね?
これは業者の約定力に関する部分ですが、デモ口座のフォワードテストやバックテストでは一切考慮されません。(デモ口座のフォワードエントリーは必ず約定しますが、リアル口座のフォワードエントリーははじかれることがあります)
実際のリアルトレードではありえないのに、すべての注文がきっちり約定されたものとしてテスト結果がだされます。
また、価格が狙ったところで約定しないスリッページに関しては大抵悪い方へ滑りますので、当然実際のトレードでの勝率は下がることになります。
バックテスト | フォワードテスト(デモ) | フォワードテスト(リアル) |
なし | なし | あり |
バックテストに使うヒストリカルデータの違い
バックテストでは皆さんが選んだFX業者のヒストリカルデータを使用して行いますが、たとえばMT4に最初から入っているMetaQuotes社の価格データと、ハイローオーストラリアの価格データは同じ価格にはなりません。
ハイローオーストラリアはFXCM社とLMAX社の価格データを利用しています。
そのため、バックテストの結果はMT4にはいっているヒストリカルデータによって差が出ます。(結果が良くなるか悪くなるかはヒストリカルデータしだい)
また、短い足でのテストほどヒストリカルデータの精度が求められますので、1分足以下のバックテストでは有料のTick Data Suiteと呼ばれる精度の高いティックデーター(為替データが更新されるたびに秒単位で刻まれるデータ)を使わないと、実際の成績とは大きくかけ離れてしまいます。
ヒストリカルデータに関しては下記の記事を参考にしてくださいね。
即エントリーでのバックテストは精度が悪い
バイナリーオプション自動売買では、チャートにサインがでてすぐにエントリーする「即エントリー」、矢印が確定した次の足でエントリーする「次足エントリー」の2種類を選択することができます。
多くの自動売買システムではこの両方のエントリーを選ぶことができますが、実は「即エントリー」に関しては注意が必要です。
即エントリーは矢印がでたらすぐにエントリーですので、実質ティック(1分足以下の値動きの最小単位)を使ったエントリーとなりますが、MT4は秒単位のティックデータは疑似ティックといって、真の価格データを使っていません。
疑似ティックを使う理由としては、秒単位で値を持ってきて処理するのはデータのやり取りの負担が大きいため、MT4の開発元も苦渋の決断で採用した仕様かと思います。
また、ハイローオーストラリアはエントリー時に、サーバーの負荷を和らげるために数秒程度エントリーをずらすことをします。
ですので、多くのサインツール開発者さん達は「即エントリー」前提のサインツールを作っても実際にテスト通りの結果にならないことを知っていますので、基本的には「次足エントリー」にてバックテストを行ってロジックを組み上げていきます。
それなのに利用者側で即エントリーでバックテストを行っても、実は開発者の意図とは違うことをしていることになりますのであまり意味がないんですね。
自動売買は運用もバックテストも、基本は「次足エントリー」です。
リペイントしているツールは本番で負けます
リペイントインジケーターとは、チャート上で一度確定した矢印をあとから変えてしまう悪質なもので、MT4のチャートだけを見ると勝っている雰囲気を出すのですが、実際に自動売買で動かすと悲惨な成績になってしまうインジケーターです。
リペイントするツールの造りによっては、リペイントした後の盛られたバックテスト結果を出力します。
このリペイントされたバックテスト結果を鵜呑みにして実際に動かすともちろん散々な結果になりますが、フォワードテストの場合はリペイント前の正しい勝率をあぶり出せます。
まあそれ以前に、リペイントしないツールを使うことが一番大切なので、稼働する前にはきちんとリペイントチェックをすることをオススメします。
ならばバックテストはやらなくても良い?
バックテストとフォワードテストの違いはやんわりと理解していただけたかと思います。
1番正確なのはリアル口座でのフォワードテスト
2番目に正確なのがデモ口座のフォワードテスト
3番目に正確なのがバックテスト
という順番ですね。
それではバックテストは精度が低いのでやらなくてもよいのでは?という話になりますが、決してそんなことはなく、サインツールの特徴を掴むという役割はフォワードテストでは得られない情報です。
しかもバックテストは短時間で長期の検証ができますからね。フォワードテストで同じことをやろうとしても時間が掛かります。
ですので、サインツールの特徴を掴むのがバックテスト、実際に稼働させて大きなトレンド転換が起こるまでの間は利益が見込めるかどうかを探るのがフォワードテスト。このように使い分けることが大切なんです。
FX-EAラボとしては新しいサインツールを手に入れたらいきなり大金を突っ込むのではなく、まずAutoMultiTraderのデモかリアルトレードで最低金額をかけてフォワードテストを行い、ある程度勝てる見込みができてから掛け金や稼働通貨数を増やしていく方法が良いかと思います。
AutoMultiTraderは無料でフォワードテストが可能
通常、リアル口座でのフォワードテストはハイローオーストラリア側に取引履歴が記録されますので、それを利用すればフォワードテストはできますが、デモ口座では取引履歴が一定時間で削除されてしまうためにフォワードテストが行えません。
しかしAutoMultiTraderで自動売買を稼働させれば、リアル口座でもデモ口座でもすべての取引履歴がAutoMultiTrader内に保存され、勝率なども自動計算されていきますので、フォワードテストが簡単に行うことができます。
また、バックテスト対策がされているインジケーターや、サインツールにRSIやストキャスティクスなどの追加条件を載せて取引をするフィルター系ツールのテストは、この取引履歴を利用したフォワードテスト一択です。
それ以外に有効なテスト方法となると、ご自身でテスト用のプログラムを組む以外にはありません。
とても便利な機能ですのでぜひ活用してくださいませ。