GMOのヒストリカルデータをMT4用に変換するツール「GMOtoMT4」


GMOクリック証券のFXネオ口座を開設している人は、ホームページからFXネオおよび旧FXネオのヒストリカルデータをダウンロードできますが、そのままではMT4に取り込むことができません。

当ソフトはFXネオのヒストリカルデータを読み込んでMT4の1分足ヒストリカルデータに変換します。
しかも、ダウンロードした圧縮ファイルの展開(解凍)は不要で、旧FXネオのデータも通貨ペアの種類も自動的に判断してすべてのヒストリカルデータを一括変換します。

2019/03/22:追記
前バージョンでは差分追加の場合、データの日時を判断していませんでしたが、Ver2.0.0.0からは月途中のヒストリカルデータを何度でも取り込めるようになりました。詳細は「差分追記における注意点」を参照してください。

補足:Ver1.1.0.0からCFDのヒストリカルデータも変換できるようにしました。
詳細は使い方(オプション)を参照してください。

注意:変換されたヒストリカルデータは「オフライン状態にしたMT4上で、EAのバックテストを行う際に使用する」ことを想定して作成されています。「オンライン状態のMT4で使用する」など、それ以外での使用は想定していません。

注意:GMOクリック証券のご利用条件にて、「ダウンロードした為替データ」の再分布は禁止されています。加工した場合も同様ですので、変換されたヒストリカルデータやそれを元に作成されたデータ等の再分布は行わないでください。「変換後のデータがほしい」という人がいたら、「GMOの口座開設のススメ&当サイト(または当ソフト)の紹介」という方向でお願いします。


1分足以外のヒストリカルデータについて

1分足以外のヒストリカルデータはスクリプト「PeriodConverter.mq4」などを使って作成してください。
個人的には、nekonoteさんがブログで公開している「PeriodConverterAllEx」をダウンロード(というかコピペ)して使用することをおすすめします。これを使えば「PeriodConverter.mq4」の制約を回避できます。制約について知りたい人はネットで検索したり、nekonoteさんのブログを読んでみてください。


導入方法(インストール)

ダウンロードしたZIPファイルを適当なフォルダに展開(解凍)してください。

補足:ZIPファイルはMT4用のトップページからダウンロードできます。

注意:「C:\Program Files\」や「C:\Program Files (x86)\」フォルダ配下には展開しないでください。正しく動作しない可能性があります。


削除方法(アンインストール)

当ソフトを終了し、上記インストール時に作成したフォルダごと削除してください。
当ソフトはレジストリを使用していません。


使い方(事前の準備)

  1. MT4はオフライン状態にしてください。
    MT4のメニューから「ツール」→「オプション」→「サーバー」タブを表示し、「プロキシ」に不正な値を設定してから「プロキシサーバーを有効にする」にチェックを入れるとオフライン状態になります。
  2. 「ヒストリー内の最大バー数」と「チャートの最大バー数」を最大値に変更してください。
    MT4のメニューから「ツール」→「オプション」→「チャート」タブを表示し、「9999999999」などの大きな値を入れてオプション画面を「OK」で閉じれば自動的に最大値になります。

使い方(初回の場合)

  1. GMOクリック証券からMT4用に変換したいヒストリカルデータをダウンロードします。
    ダウンロードしたファイルは1つのフォルダにまとめておいてください。
    なお、そのフォルダ内に「HstFile」というフォルダがある場合はあらかじめ削除しておいてください。
  2. 当ソフト「GMOtoMT4.exe」を起動します。
  3. 上記「1.」のフォルダを当ソフトにドラッグ・アンド・ドロップします。
    ドラッグ・アンド・ドロップするとすぐに変換処理が開始されます。
  4. 処理中はプログレスバーが動きます。100%になるまで待ってください。
    ファイル数など、条件によっては結構な時間がかかります。
    途中でやめたい場合は「Esc」キーを押してください。
  5. すべての変換が終わると「処理が終了しました。」と表示されます。
    上記「1.」のフォルダ内に「HstFile」というフォルダが作成され、その中にMT4用のヒストリカルデータがあります。それをMT4の「history」フォルダにコピーしてください。

注意:上記「1.」のフォルダがあるドライブですが、十分な空き容量を確保しておいてください。
処理中の一時ファイル作成(ZIPファイル展開など)にも使用していますので結構使います。
また、大量のファイルアクセスが発生しますのでアクセスが速いドライブの使用をおすすめします。


使い方(2回目以降の場合)

2回目以降は「差分追記」になります。(詳細は「差分追記について」を参照)
そのため、2回目以降は追加したいヒストリカルデータのみを使用して変換処理を行います。

  1. 「使い方(初回の場合)」の「1.」で使用したフォルダにGMOヒストリカルデータが残っている場合はあらかじめ削除してください。
    「HstFile」フォルダとその中のファイルは削除しないでください。
    2019/03/22:追記
    Ver2.0.0.0からはGMOヒストリカルデータをあらかじめ削除しなくても良くなりましたが、ZIPファイルを展開(解凍)する分だけ時間がかかりますので、削除(または別フォルダに移動)したほうが良いと思います。
  2. GMOクリック証券から追加したいヒストリカルデータだけをダウンロードします。
    ダウンロードしたファイルは上記「1.」のフォルダにまとめておいてください。
  3. あとは「初回の場合」と同様で、当ソフト「GMOtoMT4.exe」を起動して上記「1.」のフォルダを当ソフトにドラッグ・アンド・ドロップします。
    変換処理が終了して「処理が終了しました。」が表示されたら「HstFile」フォルダ内のMT4用のヒストリカルデータをMT4の「history」フォルダにコピーするなどしてください。

補足:「2回目以降の場合」とは、「すでに存在するMT4用のヒストリカルデータに対して差分(例えば、先月と先々月の2ヶ月分だけ等)のGMOヒストリカルデータを追加する」場合のことです。
なので、「もう一度最初から作り直したい」場合は「初回の場合」の手順に従ってください。

注意:「Esc」キーを押して途中でやめた場合、「HstFile」フォルダにあるMT4用のヒストリカルデータは中途半端な状態になっているかもしれません。ファイルの更新日時などで判断できるかもしれませんが、よくわからないようなら「HstFile」フォルダごと削除して作り直すことをおすすめします。


使い方(バックテスト終了後の戻し作業)

バックテストが終わってテスト実施前のMT4に戻す場合は以下の操作を行ってください。

  1. MT4の「history」フォルダにコピーの手順「1.」から「7.」までを行ってヒストリカルデータを削除してください。
  2. 「プロキシサーバーを有効にする」のチェックを外してMT4をオンライン状態に戻してください。
  3. チャートを表示すると使用しているMT4のFX業者のヒストリカルデータが自動的にダウンロードされますので必要に応じてダウンロードしてください。。

使い方(オプション)

出来高の倍率

ヒストリーセンターの画面を表示したときに画面右側に表示されている「出来高」の値を増やしたい場合に指定します。

GMOのヒストリカルデータには出来高が無いので以下の計算式で算出しています。
出来高=((((高値と安値の差額)×2)-(始値と終値の差額))×1000(または100000)+0.1)+1
この算出値を2倍から9倍まで増やすことができます。

MT4でバックテストを行う場合、Tickを自動的に作成しているようですが、その際、出来高の値によって作成されるTickの数が異なるようです。EAの種類によってはTick数が影響するかもしれないのでとりあえず倍率を指定できるようにしました。

補足:計算式は実際にMT4に出来高が無いデータをインポートしたときの値を参考に導き出した(推測した)ものです。なのでこの計算式が正しいかは不明です。

注意:倍率を増やすと「tester」フォルダ内にある「history」フォルダに作成されるファイルのサイズが増え、テスト時間も倍率に比例して増えました。そこまでしてどんなメリットがあるのか不明です(笑)。倍率変更のメリットは利用者側で判断してください。

ファイルチェックの無効化

GMOのFXヒストリカルデータに含まれるExモードのヒストリカルデータは変換しないようにファイル名のチェックを行っていますが、それを行わないようにします。
チェックを行わないようにするとExモードのヒストリカルデータやCFDヒストリカルデータも変換できるようになります。

補足:このオプション追加のキッカケになった記事は掲示板(MT4専用)GMOtoMT4_CFDでの運用を参照してください。

ファイル名(通貨ペア名)指定

作成するMT4用ヒストリカルデータのファイル名(*.hst)を指定したい場合はファイル名を記述してください。

通常はZIPファイルに含まれるCSVファイル名を元にMT4用ヒストリカルデータのファイル名が自動決定されます。
例えば「USDJPY_201810.zip」に含まれる「USDJPY_20181001.csv」からは「USDJPY1.hst」が作成されます。
この「USDJPY1.hst」を別のファイル名にすることができます。ただし、USDJPY1の「1」は1分足という意味なので後ろの「1.hst」は変更できません。それより前の部分を変更します。
なので、「USDJPY_201810.zip」を使用してFXTFの1000通貨コース用の「USDJPY-cd1.hst」を作成したい場合は「USDJPY-cd」と記述します。

応用的な使い方として、CFDを扱えないMT4でCFDのチャートを表示させることも可能です。
例えば日本225の場合、以下の手順で表示させます。
・GMOから日本225のヒストリカルデータをダウンロードする
・GMOtoMT4を起動し、「ファイルチェックの無効化」にチェックを入れる
・「ファイル名(通貨ペア名)指定」に通貨ペア名(例:USDCHF)を記述する(*1)
・変換後、MT4用ヒストリカルデータ(例:USDCHF1.hst)をコピーする(必要ならPeriodConverterも行う)
・MT4を起動し、上記で指定した通貨ペアのチャートを表示する
(*1)使用しているMT4で使用できる通貨ペアの中から選択してください。普段使わない通貨ペアが良いでしょう。

補足:MT4用ヒストリカルデータのファイル内にはシンボル(USDJPY等)が記述されています。
このシンボルが使用しているMT4の通貨ペアと一致しないとヒストリカルデータは使えません。
例えばFXTFの場合、同じ米ドル/円でも1万通貨コースの場合は「USDJPY」、1000通貨コースの場合は「USDJPY-cd」というようにシンボルが異なります。よって、1万通貨コースのファイル名を変更しただけでは1000通貨コースでは使えません。
これがMT4の仕様みたいなので、このオプション機能ではファイル名に合わせてファイル内のシンボルも書き換えています。
なので『GMOは「JP225」だがMT4は「JPN225」になってる』といった場合はこのオプションを使用してください。

注意:このオプションを使用する場合は異なる通貨ペアを同時に変換(ドラッグアンドドロップ)しないでください。
CSVファイル名による自動決定が行われないので、異なる通貨ペアのデータが1つのMT4用ヒストリカルデータに含まれることになります。

2019/01/23:追記
MT4のsymbols.rawなどを参照、編集するツール「Symbols Viewer and Editer for MT4」を作成しました。
このツールを使用すると既存のヒストリカルデータ(*.hst)を元に別の通貨ペア名のヒストリカルデータを作成できます。

例えば、FXTF用に「USDJPY-cd」を作成したい場合、既存の「USDJPY」のヒストリカルデータを元に作成できます。
基本的にコピーしてから通貨ペア名を変更するだけなのでGMOのヒストリカルデータから作り直す必要はありません。
そのため作業時間が大幅に短縮できます。

このツールの「ヒストリカルデータの通貨ペア名変更」機能をぜひご検討ください。

ヘルプ表示

このドキュメントを表示します。


ヒストリカルデータのダウンロード方法について

GMOクリック証券からヒストリカルデータをダウンロードする手順は以下の通りです。
他の口座も開設している等、条件によっては異なるかもしれません。

  1. GMOクリック証券のトップページからログインする
  2. (ログイン後、マイページが表示されていないなら)マイページに移動する
  3. 画面上部にある「ツール」をクリックする
  4. 画面左側にある「ヒストリカルデータ」をクリックする
  5. 画面上部にある年(2017年など)を選択し、ダウンロードしたい通貨ペア、月の「DL」をクリックする

ヒストリカルデータのコピー先およびコピー方法について

MT4用のヒストリカルデータのコピー先フォルダはMT4を提供しているFX業者によって異なると思います。
とりあえず、以下の手順であれば、どのFX業者でも同様かと思われます。

  1. MT4を起動する
  2. メニューの「ファイル」をクリックし、「データフォルダを開く」をクリックする
  3. 表示されたエクスプローラーの「history」フォルダに移動する
  4. 「Ctrl」キーと「F」キーを同時に押してエクスプローラーの検索窓に「*.hst」と入力する
  5. 表示されたファイルのどれかを右クリックして「ファイルの場所を開く」をクリックする
  6. MT4を終了する(ヒストリカルデータにアクセスするため)
  7. 表示されたフォルダにあるヒストリカルデータを削除する(補足参照)
  8. 当ソフトを使用して変換されたMT4用のヒストリカルデータをコピーする
  9. MT4を起動してヒストリカルデータが反映されているか確認する

補足:「ファイル名の先頭6文字がコピーしたい通貨ペアと同じもの」を削除するだけで良いです。
1つの通貨ペアでも、時間足の種類に応じて複数ファイル存在するのですべて削除します。
それ以外(特にヒストリカルデータ以外)のファイルは削除しないよう注意してください。


差分追記について

GMOクリック証券からダウンロードできるヒストリカルデータは通貨ペアによっては大量(10年分以上)になります。その大量なデータを毎回すべて変換することは時間的に無駄です。
最初はすべてのデータを時間かけて変換する必要がありますが、2回目以降は前回からの差分だけを追加したほうが効率が良いと思い、当ソフトは「差分追記」を行っています。

「毎回作り直したい」という場合は、フォルダをドラッグ・アンド・ドロップする前に、そのフォルダ内の「HstFile」フォルダを削除しておいてください。


差分追記における注意点

2019/03/22:変更
変換処理を行う際、GMOヒストリカルデータの内容(日付など)は判断せず、単純に「読み込んだ値を変換してMT4用ヒストリカルデータの後ろに追記」しています。

よって、ドラッグ・アンド・ドロップするフォルダには今回追加するGMOヒストリカルデータ以外(前回追加したヒストリカルデータなど)は含めないでください。
他にも以下のような例では意図しないヒストリカルデータが作成されるのでご注意ください。

Ver2.0.0.0以降ではMT4用ヒストリカルデータ内に記録されている最終更新日時より新しいデータのみを追記します。
そのためドラッグ・アンド・ドロップするフォルダ内に古いGMOヒストリカルデータが存在する場合でも追記はしません。
これで例4のケースは問題なく追記できるようになりました。

例1:2017年3月から8月分のMT4用ヒストリカルデータに対して10月分だけを追加した。
→9月分が存在しない歯抜けデータになる。

例2:上記例1のMT4用ヒストリカルデータに対して9月分だけを追加した。
8月と10月の間ではなく、10月分の後ろに9月分が追加される。何も追加されない。

例3:2017年3月から8月分のMT4用ヒストリカルデータに対して2月分を追加した。
3月の前ではなく、8月分の後ろに2月分が追加される。何も追加されない。

例4:2017年3月から8月分と半端な9月分(1~15日分)までのMT4用ヒストリカルデータに対して完全な9月分(1~30日分)を追加した。
9月1日~15日分が重複する。9月16日~30日分が追加される。

特に例4は当月のGMOヒストリカルデータをダウンロードした場合(例えば、2017年9月16日と10月1日に2017年9月分をダウンロードした等)に起きそうなケースです。気を付けてください。

上記の例以外にもおかしくなるケースはあると思います。その場合は、対象のMT4用ヒストリカルデータを削除、または「HstFile」フォルダそのものを削除して作り直してください。(なので、作り直しに備えてダウンロードしたGMOヒストリカルデータは削除せずにバックアップしておくことをおすすめします)


ソースについて

最低限必要なソースのみ添付されています。リソースファイル(.res)などは添付されていません。


更新履歴

リリース日 バージョン 内容
2017/12/07 1.0.0.0 初リリース
2018/11/17 1.1.0.0 1.出来高の値を増やせるようにしました。
2.ExモードとCFDのヒストリカルデータも変換できるようにしました。
詳細は使い方(オプション)を参照してください。
2018/11/23 1.1.1.0 1.Escキーで中断できない不具合を修正しました。
2.ファイル名指定時の処理速度を改善しました。
2019/01/23 1.1.1.0 MT4のsymbols.rawなどを参照、編集するツール「Symbols Viewer and Editer for MT4」に関する記述を追加しました。
2019/03/22 2.0.0.0 1.ドル円とクロス円以外の出来高の計算方法を修正しました。
2.差分追記に関する処理を変更しました。