前回MT4へ移行するにあたり、テストプログラムを作成し色々と検証していたところ、EAの結果が合わないケースが確認できました。
同じEAを以下の条件で実行した場合に微妙に結果が異なります。
- チャートは1分足、iMaのtimeframeは15分足
- チャートは15分足、iMaのtimeframeは15分足
この2パターンで結果が一致しません。
調べてみると、例えばiMaが5本平均だと、最初の5本分だけiMaの値が合わないのです。
6本目からは完全に一致します。
さらに調べた結果、MT4ではなくTickstoryが出力する週末データが悪いのでは?との結論に至りました。
1.Tickstopyからのエクスポート時に、時間帯調整=しない(UTC) の場合
2018/9/28(金)15分足fxtデータ(最後の3本のみ)
2018.09.28 20:45:00,113.682,113.706,113.656,113.697,492,2018.09.28 20:59:52
2018.09.28 20:45:00,113.682,113.706,113.656,113.697,493,2018.09.28 20:59:56
2018.09.28 20:45:00,113.682,113.706,113.656,113.697,494,2018.09.28 20:59:56
2018/9/28(金)15分足hstデータ(最後の3本のみ)
2018.09.28 20:15:00,113.64,113.639,113.678,113.674,201
2018.09.28 20:30:00,113.671,113.671,113.692,113.682,300
2018.09.28 20:45:00,113.682,113.656,113.706,113.697,494
2.時間帯調整=ヨーロッパ/ロンドン夏時間のUTC+2(夏時間なので実際はUTC+3)
2018/9/28(金)15分足fxtデータ(最後の3本のみ)
2018.09.28 23:45:00,113.682,113.706,113.656,113.697,492,2018.09.28 23:59:52
2018.09.28 23:45:00,113.682,113.706,113.656,113.697,493,2018.09.28 23:59:56
2018.09.28 23:45:00,113.682,113.706,113.656,113.697,494,2018.09.28 23:59:56
2018/9/28(金)15分足hstデータ(最後の3本のみ)
2018.09.28 21:15:00,113.604,113.568,113.619,113.606,506
2018.09.28 21:30:00,113.606,113.576,113.608,113.59,390
2018.09.28 21:45:00,113.59,113.573,113.592,113.577,555
3.時間帯調整=ハラーレ/プレトリア(UTC+2、夏時間無し)
2018/9/28(金)15分足fxtデータ(最後の3本のみ)
2018.09.28 22:45:00,113.682,113.706,113.656,113.697,492,2018.09.28 22:59:52
2018.09.28 22:45:00,113.682,113.706,113.656,113.697,493,2018.09.28 22:59:56
2018.09.28 22:45:00,113.682,113.706,113.656,113.697,494,2018.09.28 22:59:56
2018/9/28(金)15分足hstデータ(最後の3本のみ)
2018.09.28 21:15:00,113.569,113.557,113.592,113.558,576
2018.09.28 21:30:00,113.558,113.552,113.588,113.583,418
2018.09.28 21:45:00,113.584,113.576,113.621,113.619,423
以上、よく見てみるとfxtデータ(バックテストで使用するtickファイル)は、時間帯調整を正しく受けているものの、hstデータ(チャート表示に使用されるデータ)は+1時間分しか出力されていません(足が消えている)
Tickstoryが出力したhstファイルとfxtファイルの終了時間が異なるのは、いくらMT4に詳しくなくてもさすがにバグではないかと考えます。
チャートと異なる時間足を参照した場合、fxtファイルは生成されていないのでhstファイルを参照して計算しているのだと思われます。
その時に週末のhstファイルが欠損していたために、週初の結果が異なっていたと結論付けました。
これでTickstoryを使わない理由が増えましたねw
PS
昔からのMT4使いの間では「Tickstoryの時間帯調整は使用してはならない」暗黙の了解があるのでしょうか?ぐぐっても見つかりませんでしたが・・・
エクスポートする際に「HSTファイルを生成する」をオフにする手もありますが、その場合はそもそもfxtとhstで違うデータになってしまうわけで・・・、週末バグがあるよりマシかもしれませんが、悩ましいですねw