Dukascopyのヒストリカルデータは時間がズレている
EA
Dukascopyのヒストリカルデータ
いくつかのEAのバックテストをしていた時に、ヒストリカルデータでEAによる結果の違いが大きいということに気が付き、調べておこうと思ったのがきっかけです。
ヒストリカルデータを取得するには2種類の方法があります
-
- トレードツールのiForexから取得
- Webから取得
また、デモ口座を開設する必要があり
データの取得方法は公式のpdfに記載されています。
ヒストリカルデータの取得方法
尚、Dukascopyは比較的データの抜けがないのですが、時差の補正が必要です
UTC+0
デフォルトではUTC+0(≒ GMT+0)の時間になっています。
" class="blog-card-thumbnail-link">

MT4の時間がGMTそのものでなく+2時間や+3時間(夏時間)というのはどう言うことでしょうか?
NewYorkの17:00(クロ...
MT4はGMT+2/+3なので時間のずれが生じます。

このズレを回避するには、NweYorkが
- 標準(冬時間)ESTではGMTから2時間プラス
- 夏時間、EDTの期間ではGMTから3時間プラス
Dukascopy の無料データには夏時間の補正がありません
(有料のTDSは補正されていますが)
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 Co...
因みに、問題の箇所を見て見ると

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スクリプト
上記URLにあるテキストをコピペ

ファイル拡張子.vbsとしてHSTファイルにドロップする

EURJPY_1 Min_Bid_2003.08.03_2023.09.04.hst ファイルを
dukascopy-converter.vbs
にドロップすると
work ファルダが作成され
変換したファイルがworkフォルダに出力されます
「出力しました」のダイアログが出れば終了です

work フォルダには変換ファイルができています

うまく変換できない場合は
セキュリティソフトが邪魔をしている可能性が大です
一時的に停止するなりすれば数分から十数分で変換が終了します
3年前から使っていますが、確かにいくら待っても変換されないことがあります
タスクマネージャーでは、確かに作業をしているのがわかりますが
私の場合、トレンドマイクロを一時停止することですんなりできました
ただセキュリティの関連で、他のソフトを止めたり、ネットのやり取りはやらないように
無防備な状態を理解してやらないといけませんが
文字コードはあまり関係ありませんが
Shift-JIS
Unicode
UTF8
…
等で変換できています