バックテストとフォワードテストの違い
バックテストはMT4やMT5を利用して過去3年分や5年分をテストして損益を出すものです。期間が指定できたり、短時間で何年ものテストができるのがメリットです。
次にフォワードテストですが、こちらは実際に業者のデモトレードやリアルトレードで最低ロットなどに設定してEAなどを実際に稼働してみることです。
リアルタイムで稼働させますので長期間のテストはできませんが、損益などが正確にでます。
バックテストやフォワードテストができるMT4が使える国内業者一覧
価格の参照元が異なる
フォワードテストを行う場合、実際に口座を開設しているFX業者さんでEAなどを稼働します。使う価格データはもちろんリアルタイムで配信されているものを利用します。
しかしバックテストの場合はMT4にダウンロードした過去の価格データを使います。これはFXTFやデューカスコピー・ジャパン、MetaQuotesなどお好みのFX業者からダウンロードするのですが、価格データは業者によって微妙に異なりますので、実際に口座を開設しているFX業者とぴったり価格データが一致することはありません。
ですので、バックテストとフォワードテストの結果は同じ期間を行っても異なってしまいます。
特に1pipsの影響が大きい1分足や5分足での取引ほど大きな差が出てきます。(詳しくはボラティリティの記事を御覧ください)
バックテストはスリッページや約定拒否が考慮されない
バックテストですが、MT4上で完結するテストですので、実際に稼働させるフォワードテストと違い、価格が滑るスリッページや約定拒否がありません。
設定にもよりますがだいたい始値でエントリーできたという前提でテストされます。しかし実際に自動売買を稼働させてみると分かるのですが、きっちり始値でエントリー毎回できるわけではありませんし、10秒くらい遅れて約定することもよくあります。
また、バイナリーオプションの場合ですと多くの自動売買システムが実際の取引ではポジションを1つしか持てないのに対し、バックテストではすべて持ったこととして計算されます。
これもバックテストとフォワードテストの結果が異なる理由です。
スプレッドも考慮されない
これは設定にもよるのですが、バックテストではスプレッドも考慮されていない場合があります。
スプレッドというのは売りと買いの価格差で、例えばドル円が売りは105.00円に対し、買いは105.05円などとなっていた場合はこの差の「0.05円」がスプレッドで、業者はこの部分を手数料として徴収しています。
しかしバックテストの場合は、ドル円が売り105.00円、買いも同じく105.00円でエントリーされたということにしてテストされる場合が多いので、実際に稼働するフォワードテストよりも勝率が良くなる要因の一つになっています。
バックテストとフォワードテストの使い分け
このように両者には明確な違いが有るのですが、バックテストが必ずしも悪いわけではありません。
フォワードテストはリアルタイムで稼働させますので、たしかに実際の運用とのズレは少ないです。しかし大きな弱点として長期のテストや期間を指定してのテストができません。
ですので、テストするEAやインジケーターの得意な相場と不得意な相場を割り出すのには向いていません。
その点、バックテストは多少精度は落ちますが、アベノミクスで上昇トレンド中はどうだったのか、コロナ暴落時はどうだったのかなど期間を狙ってのテストや、長期間のテストで勝てるかどうかなどインジケーターの実力をある程度見極めることができます。