Dukascopyのヒストリカルデータは時間がズレている
EA
Dukascopyのヒストリカルデータ
いくつかのEAのバックテストをしていた時に、ヒストリカルデータでEAによる結果の違いが大きいということに気が付き、調べておこうと思ったのがきっかけです。
Dukascopyは比較的データの抜けがないのですがそのままでは使いづらいようです。
尚、ヒストリカルデータを取得するためにはデモ口座を開設する必要があり
データの取得方法は公式のpdfに記載されています。
ヒストリカルデータの取得方法
UTC+0
デフォルトではUTC+0(≒ GMT+0)の時間になっています。
MT4はGMT+2/+3なので時間のずれが生じます。
MT4の時間がGMTそのものでなく+2時間や+3時間(夏時間)というのはどう言うことでしょうか?
NewYorkの17:00(クローズ)...
">MT4 が GMT+2/+3 のタイムゾーンの理由

このズレを回避するには、NweYorkが
- 標準(冬時間)ESTではGMTから2時間プラス
- 夏時間、EDTの期間ではGMTから3時間プラス
Dukascopy の無料データには夏時間の補正がありません
EET(UTC+2)は比較的近いデータにはなりますが多少問題点があります
EAがスキャルピングなどの短期トレードであればあまり問題はないかもしれません
完全に整合性をとるのであれば時差と夏時間を補正する必要があります
EET(UTC+2)による調整
2時間のズレは JForex Platform の設定で、
「プラットフォームの時間」を EET(UTC+2時間) にすることで多少調整できます。(EETは東ヨーロッパ時間)

それとダウンロード形式はCSVでないとHSTでは反映されません。また、CSVデータの取り込みはそこそこ時間がかかります。

このCSVに余計なヘッダーがあるので取り込めない場合があるので
xxx.csv ファイルのヘッダー部分の「Time…」の1行を削除します。

また、csvファイルは大きすぎてExcelでは開けないことがあります。そんな時はVS Codeであればパワフルなので大丈夫です
MQL4のコーディングでMetaEditorの代わりに使えるものがないかと探していましたら、VSCode(Visual Studio Cod...
因みに、問題の箇所を見て見ると

2020/1/24 23:59:00 まで伸びて土日が無くなり 1/27 00:00:00 から始まっています。
チャートでみても調整されています。

EETの問題点
実はこれですべて解決ではありません
EETを使ったのもありますが夏時間調整が多少おかしなことになっています。
結論から言うと
- 3月 最終日曜日の前の週の金曜日が1時間足りない
3/29(金曜日)が22:59で終わっている
- 10月 最終日曜日に2時間分データが余計にある
10/27(日曜日)に22:00から23:00のデータが入っている

これは夏時間調整からきていると思われます。
あくまでMT4はNewYorkのPM5時がその日の終わりという設定なので
NewYorkの夏時間はヨーロッパの夏時間とは1~2週間ずれます。
https://fx-ai-trading.com/fx/mt4/time-difference.html
実は私のEAの幾つかは金曜の夜には手仕舞うので、それほどこれが問題ではありません。
ただどうなっているというのを理解しておくのは必要なのと、当然スウィング系のEAの場合は問題になります。
補正スクリプト
ずれを補正するために、UTC+0のCSVをエクセルで日付けを探して修正していくことも可能ですが
CSVファイルは重いので長期間の1分足では開けないため分割することになります
なんやかやで、このUTCの時間のずれを補正してくれるスクリプトがあります
UTC+0のヒストリカルデータを、UTC+2/+3や日本時間(UTC+9)にするVBスクリプト
テキストをコピペし、ファイル拡張子.vbsとしてHSTファイルにドロップするとworkフォルダに変換ファイルを出力してくれます。
2022年1月11日現在、これは使えていますので
適当なエディタでは文字コードで失敗する場合があります
TeraPadは大丈夫です
また、VBなので当然ながらWindows上で作業が必要です。