急にバックテストの結果が変わってしまう原因とは?

記事内に商品プロモーションを含む場合があります
スポンサーリンク

MT4でEAのバックテストをしていると、昨日と今日でプロフィットファクターが変わってしまったという事はありませんか?もちろんソースコードを修正したわけでもないのに勝手にバックテスト結果が変わってしまう事はよくあります。

でも、バックテストの結果は基本的に何度やっても同じ状態になるのがベストですよね。ソースコードもテスト内容も変えてないのに結果が変わるのはとても違和感があり不安にもなります。

今回はこの内容について少し触れていきたいと思います。

バックテストの結果が変わる原因は?

バックテストの結果が変わってしまう主な原因としては、3つあります。

  • スワップ情報の変化
  • テスト内容の変化
  • バックテストデータの破損

スワップ情報の変化

何も変えてないのにバックテストの結果が変わる大概の理由はこれです。

バックテストって実はスワップも計算されているんです。

以下の画像を見て頂くとスワップが反映されている事がわかります。

この画像は日付が変更される(スワップが適用される)直前にショートでエントリーして、日付が変更された30分後ぐらいに決済しています。ちゃんとプラス収益のところで決済しているはずですが損益の箇所はマイナスになっていますよね。これは、日付をまたいだことによりマイナススワップが適用されているからなんです。

このようにバックテスト中にもスワップが適用されるんですが、ヒストリカルデータは各々の日(2023年12月1日等)のスワップ情報を持っていません。ではどこからスワップ情報を持ってくるか?というと、バックテストした日のスワップ情報を使います。雑っ!!例えば今日はスワップ3倍デー!という時にバックテストを行うと何も変えてないのにバックテストの結果が大きく変わったりします。

バックテスト時のスワップを確認したい場合は、気配値表示を出して、バックテストする通貨の所を右クリック→『仕様』をクリックします。

すると、通貨の取引条件画面が表示されるのでスワップの箇所で確認する事ができます。

この値はブローカーによっても異なるので、同じヒストリカルデータでもブローカーが違うMT4を使うと異なったバックテスト結果になってきます。

スワップ3倍デー等はこの数値が-200ぐらい(全然3倍じゃない)になっている事もあるので、ここのスワップポイントを確認しバックテスト結果の乖離を防いでいきましょう。

もちろん日またぎしないEAであればスワップは考慮しなくていいですよ。

テスト内容の変化

テスト内容の変化についてはよくある原因ではないかと思います。

ここの内容が変わってしまった場合です。スプレッドが現在値になっている場合や、終了日を変更してしまった場合等によく起こります。スプレッドは基本的に自分で決めた数値(10等)を選択しておきましょう。

また、パラメータ設定の内容がリコンパイル時等に元に戻ってしまう事もあるのでパラメータ設定も確認しましょう。

バックテストデータの破損

稀にあるのがバックテストデータの破損です。どのタイミングでなるのかはわかりませんがバックテストデータが破損している(特定日のデータが抜け落ちている)事があります。原因を特定するのに時間がかかります。

この場合、前述した2つの『スワップ情報の変化』『テスト内容の変化』を確認してもバックテストデータの結果が変わってしまう場合は、MT4やPCの再起動したり、最終的にバックテストデータを再度取り直しましょう。

さいごに

急にバックテストの結果が変わってしまう原因は以上になります。

上記3項目を確認する事でバックテスト結果が変になる事はほぼなくなると思います。

スワップが厄介で中々同じバックテスト結果になりませんが、土日にバックテストするとスワップポイントが0になっているブローカー(アルパリ等)もあるのでスワップポイントも確認しながらバックテストを行ってみて下さい。

※ MT4・EAが使えるFX会社のおすすめ

※ EAのサンプルソースを一覧表にまとめました


コメント