MT4にGMOクリック証券のヒストリカルデータをインポートする方法

- バックテストをしたいけどヒストリカルデータって何?
- ヒストリカルデータはどこで入手できるの?
- ヒストリカルデータのインポートはどうすればいいの?
MT4でEAのバックテストをするためには、ヒストリカルデータ(過去チャートの4本値)が必要です。ヒストリカルデータはMT4に元から入っているのですが、データの信頼性が低いことや期間が短いため正確なバックテスト結果を得ることができません。
そこでこの記事では、MT4で正確なバックテストをするために必要なヒストリカルデータのインポートについて、データのダウンロードからMT4へのインストールまでを細かく解説します。
慣れるまでは少し面倒な作業かもしれませんが、正確なヒストリカルデータなしではEAのバックテストはできません。
この記事を見れば1時間もかからずに正確なヒストリカルデータのインポートができますので、ぜひ最後まで目を通してくださいね。
ヒストリカルデータとは
ヒストリカルデータとは過去チャートの4本値(始値、終値、高値、安値)のデータのことで、EAのバックテストを行う時には必ず必要となります。
MT4には元々ヒストリカルデータがインポートされているので、わざわざダウンロード等をしなくてもすぐにバックテストができる状態にはなっています。
しかし元々入っているヒストリカルデータは精度があまりよくないため、例えば始値や終値が本来のものと違っていたり、ある期間のデータが抜け落ちてしまっていたりするのです。
また、元々入っているデータは期間が短いということもあり、10年以上といったような長期のバックテストができないという問題もあります。
そこで少々面倒ではあるのですが、精度の高いヒストリカルデータを入手してMT4にインポートすることで、正確なバックテストができるようなるというわけです。
GMOクリック証券のヒストリカルデータがオススメの理由
ヒストリカルデータ自体はMT4を開発したMetaQuotes社が提供しているものであればMT4を操作するだけで簡単にインポートすることができます。
しかしMetaQuotes社のヒストリカルデータは精度が悪く抜けも多いため、大切なお金を運用するためのテストに使用するには耐えません。
そこで少し前まで主流だったのがFXDD社のヒストリカルデータを使用するという方法でした。
大手ブローカーであるFXDDのヒストリカルデータはMetaQuotes社に比べると精度が高かったため私を含め多くのトレーダーが使用していたのですが、2016年頃のデータが大きく欠損していたため現在ではおすすめできないものとなってしまいました。
そこで私が現在使用しているのが、国内最大手であるGMOクリック証券のヒストリカルデータです。
GMOクリック証券のヒストリカルデータは信頼性が高くデータの欠けもありません。
ですので、GMOクリック証券からダウンロードしたヒストリカルデータをインポートして使用すれば、高精度なバックテストが可能になるということなのです。
MT4にGMOクリック証券のヒストリカルデータをインポートする方法
さて前置きはこれくらいにして、早速MT4にGMOクリック証券のヒストリカルデータをインポートする方法を解説したいと思います。
まず最初に、GMOクリック証券が提供しているヒストリカルデータというのはMT4用のものではないのでそのままでは使用できません。
そのため下記のような手順を経て、MT4にインポートしていくことになります。
GMOクリック証券のヒストリカルデータをダウンロード
GMOクリック証券にログインしマイページに移動します。
マイページに移動したら、ページ上部にある「ツール」をクリックします。

画面左部分にある「ヒストリカルデータ」をクリックします。

このページでは各月毎にヒストリカルデータをダウンロードすることができるのですが、普通に1つずつダウンロードすると非常に時間がかかります。

今回はGMOクリック証券が提供している最も古いデータ(2007年以降)から最新のデータまでまるごと全部ダウンロードしたいので、ブラウザ(firefox)のアドオンにあるダウンロードツールを使用して一括ダウンロードしてしまいます。
【無料】DownThemAll!をインストールする
firefoxにはDownThemAll!というダウンロードのためのアドオンがありますのでこちらを利用していきます。
firefoxを起動し、右上の三本線をクリックしてアプリケーションメニューを開きます。
開いたら「アドオンとテーマ」をクリックします。
上部のアドオンを探すという検索窓に「DownThemAll!」と入力して右側の虫眼鏡マークをクリックします。

画面に従ってインストールした後、firefoxを再起動します。

これでDownThemAll!のインストールは完了です。
DownThemAll!でヒストリカルデータを一括ダウンロードする
ではもう一度GMOクリック証券のヒストリカルデータのページに戻ります。
とりあえず最新のページの適当な場所で右クリックします。
右クリックメニューの中に「DownThemAll!」がありますので、そちらをクリックします。

そうするとDownThemAll!が起動してメニューが立ち上がります。
ウィンドウの上半分にはダウンロードリストが表示されていると思いますが、これが現在のGMOクリック証券のヒストリカルデータのページあるすべてのリンクということになります。

あらかじめダウンロードフォルダ内にヒストリカルデータをダウンロードするための新規フォルダを作成しておきましょう。
フォルダ名は何でも構いませんが、今回は「hist」というフォルダ名にしておきました。
フィルタ項目の「全てのファイルにチェック」を入れ、サブフォルダに先ほど作成した「hist」フォルダを選択したら、「待機状態で追加」をクリックします。
現時点ではまだ今年分のヒストリカルデータしかリストに追加されていない状態なので、ここまでの作業を繰り返して2007年以降のすべてのヒストリカルデータをリストに追加してからダウンロードします。
ということで再度GMOクリック証券のヒストリカルデータのダウンロードページに戻ります。

上部にある「2022年」の部分をクリックして、前年(2021年)に変更します。
2021年のヒストリカルデータのダウンロードページに切り替わったことが確認出来たら、先ほどと同様にページ上で右クリックし、「DownThemAll!」を選択してリスト画面を出します。
すると待機リストの中に2021年分のヒストリカルデータが追加されていることがわかるかと思います。
ここではフィルタとサブフォルダの選択は引き継がれているので、「待機状態で追加」ボタンを押すだけでOKです。
これを一番古いデータである2007年分まで繰り返し行います。
すべてのヒストリカルデータの追加が完了したら、リストの上で右クリックし「すべて選択」を押します。

これができたら画面上部にある緑色の「再開」ボタンをクリックします。

これでダウンロードが開始されますので完了するまで少し待ちましょう。
新規フォルダを作ってヒストリカルデータを解凍する
ダウンロードしたヒストリカルデータはzipファイルで圧縮された状態になっています。
これを通貨ペア毎にフォルダを作って、そこに解凍していきましょう。
今回はドル円のヒストリカルデータを作りますので、「hist」フォルダの中に「USDJPY」というフォルダを作っておきます。
さらに「USDJPY」フォルダの中に、「history」というフォルダも作っておきましょう。
そして、「USDJPY_」からはじまるzipファイルを「USDJPY」フォルダの中にすべて移動します。
ここでは7-Zipを使ってドル円のヒストリカルデータを「hisotry」フォルダ内に一括解凍します。
このような感じで1日毎のヒストリカルデータがcsvファイルが解凍されていれば成功です。
AOK FIle ConnectorでヒストリカルデータをMT4用に変換
GMOクリック証券のヒストリカルデータはGMOのFXネオ用のデータなので、そのままではMT4にインポートして使うことができません。
そこでAOK FIle Connectorという無料ソフトを使用してMT4で使用できる形に変換します。
AOK FIle Connectorはインストールの必要はないので、解凍して中にある実行ファイルからすぐに起動できます。
が、まだ起動しなくて大丈夫です。
その前に、ヒストリカルデータを変換するための設定ファイルを作成します。
この設定ファイルはGMOクリック証券のヒストリカルデータを文字列を置換してひとつのcsvファイルに結合するために必要となるものです。
正規表現で記述する必要があるのですが、難しい話はナシにして下記のテキストをそのままコピーして適当なファイル名で保存しておいてください。
メモ
s/日時,始値\(BID\),高値\(BID\),安値\(BID\),終値\(BID\),始値\(ASK\),高値\(ASK\),安値\(ASK\),終値\(ASK\)\n//kg
s/日時,始値\(BID\),高値\(BID\),安値\(BID\),終値\(BID\),高値\(ASK\),安値\(ASK\)\n//kg
s/日時,始値,高値,安値,終値\n//kg
s/([0-9]+,[0-9]+.[0-9]+,[0-9]+.[0-9]+,[0-9]+.[0-9]+,[0-9]+.[0-9]+)(.*)/$1/kg
s/([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])([0-9][0-9])/$1\.$2\.$3,$4:$5/kg
今回は「Convert.txt」としました。
これができたら、先ほどダウンロードしておいたAOK FIle Connectorを起動します。
起動したら、「結合元ファイルリスト」という部分に、「history」フォルダをドラッグします。
するとcsvファイルがすべて結合元ファイルリストの中に読み込まれます。
下部のオプションは下記の通りに設定します。

以上の通り設定ができたら「結合」ボタンをクリックし、変換されるのを少し待ちましょう。
変換されたらヒストリカールデータの完成です。
ヒストリカルデータをMT4にインポートする
できあがったヒストリカルデータをMT4にインポートします。
MT4を起動し、上部メニューの「ツール」から「ヒストリーセンター」を選択。

左側に通貨ペアがずらっと並んでいるので、下にスクロールしてUSDJPYを探します。

USDJPYが見つかったらダブルクリックします。
すると各時間足が表示されるので、「1分足(M1)」をもう一度ダブルクリックします。
この時に、右側に1分足のデータが出てきた場合はすべて選択してから削除してください。
つまりデータを空っぽにしておくということです。
右側のデータが空になったことを確認したら「インポート」をクリックします。

インポートの画面が開きますので、「ファイル名」の右側にある「参照」ボタンをクリックします。

ここで先ほど変換したGMOクリック証券のヒストリカルデータを選択して「開く」をクリックします。
次に「表示移動」の部分を設定します。
今回利用するGMOクリック証券のヒストリカルデータはGMT+9です。
これをFXDDのGMT+2に変更する必要がありますので、「表示移動」の部分を「-7」に変更します。
ここは使用するブローカーによって違うので適宜調整してください。
ここまで設定できたら「OK」ボタンをクリックしましょう。
画面の右側にデータが出てきたらインポートは完了です。
「閉じる」をクリックして作業を完了しましょう。
他の時間足のヒストリカルデータを生成する
さていよいよ最後の工程です。
ここまでの作業でMT4にGMOクリック証券のヒストリカルデータをインポートすることができました。
しかしまだ1分足のデータしかインポートされていない状態です。
そこでインポートした1分足のデータから、5分足や15分足といった他の時間足のデータを作成します。
そのために必要になるのがperiod converter ALLというMT4のスクリプトです。
リンク先の赤で囲った部分をクリックするとダウンロードできます。

ダウンロードできたらMT4を起動しましょう。
上部メニューの「ファイル」から「データフォルダを開く」をクリックします。
データフォルダが開くので、「MQL4」=>「Scripts」の順にフォルダを開きます。
この「Scripts」フォルダの中に、先ほどダウンロードしておいた「period converter ALL.mq4」を移動させます。
それができたらMT4に戻ります。
ナビゲーターを開いて下の方までスクロールし、「スクリプト」を探します。
見つけたら「スクリプト」の文字の上にマウスのポインタを当て、右クリックで「更新」を押します。

するとスクリプトの下に「Period_Converter_ALL」が表示されます。
これを確認したら、上部メニューバーの中から「ファイル」=>「オフラインチャート」をクリックします。
今回はUSDJPYのヒストリカルデータを作成するので、「USDJPY,M1」を探して選択し、右上の「開く」をクリックします。
ドル円の1分足オフラインチャートが表示されるので、次に「Period_Converter_ALL」にマウスポインタを当てて右クリックし、「チャートで実行」をクリックします。

するとヒストリカルデータの作成が開始されます。
これですべての作業が完了です。
まとめ
今回はGMOクリック証券のヒストリカルデータを、FXDDのMT4にインポートする方法を解説いたしました。
EAの開発や購入したEAのバックテストをするためには、高精度なヒストリカルデータが必須となります。
この記事に沿って進めて頂くと初心者でも問題なくヒストリカルデータのインポートができるはずなので、ぜひこの機会に挑戦してみてください。