はじめに
MT4を最初にインストールした際、過去のチャートデータ(ヒストリカルデータ)が全然無いと困ったことは無いですか?
今回はヒストリカルデータを取り込み過去のチャートを見れるようにする方法について記載します。
※ドル/円で説明していますが、他通貨ペアの場合も手順は同じですので文言を置き換えてご確認ください
バックテストを行う場合は、このヒストリカルデータを取り込んでおくことは必須なので是非やっておきましょう。
ヒストリカルデータの取得
まずはヒストリカルデータ(過去の1分足データ)をダウンロードしてきます。
この、FXDDのページから取得できます。「USD/JPY」をクリックしてZipファイルをダウンロードします。

ダウンロード後、解凍し「USDJPY.hst」のファイルがあることを確認します。
注意点

既存ヒストリカルデータの削除
次に、現行のヒストリカルデータを一旦削除します。
MT4を起動し、画面でメニューバーの「ファイル」→「データフォルダを開く」をクリックします。

MT4のフォルダが開かれるので、「history」フォルダ→「(自分が利用しているサーバー名)」フォルダに移動します。

※MT4の上部に出ているここを見ればわかる(これはFXTF-Liveフォルダ)
ここで、MT4上に表示されているUSDJPYのチャートを全て(×ボタンで)終了した後、MT4のアプリも一旦終了しておきましょう。
※起動しっぱなしだとファイルが残ってしまうため

そして「USDJPY1.hst」「USDJPY5.hst」・・・といったUSDJPY●●.hst系のファイルを全て削除し、MT4を再起動します。
※backupフォルダを作ってそこに退避でもOKです
再起動後、「history」フォルダにUSDJPY系のファイルが作成されていなければ成功です。
MT4のバー表示可能数の変更
次に、MT4のバー表示可能数を変更します。
MT4の画面でメニューバーの「ツール」→「オプション」をクリックし、オプション画面の「チャート」タブを開き、ヒストリー内の最大バー数、チャートの最大バー数を共に「2147483647」と入力し「OK」をクリックします。

ヒストリカルデータの取り込み
次に、先ほどダウンロードしてきたヒストリカルデータを取り込みます。
MT4の画面でメニューバーの「ツール」→「ヒストリーセンター」をクリックします。ヒストリーセンターの通貨ペアから「USDJPY」をクリックし、「1分足」をクリックして「インポート」をクリックします。

「参照」ボタンをクリックします。

先程ダウンロードした「USDJPY.hst」ファイルを選択し、「開く」ボタンをクリックします。

インポート画面に戻ってくるので、一番下までスクロールし、2005.01.10 02:31のデータが表示されている事を確認し「OK」ボタンをクリックします。

反映されるまでに少し時間がかかる場合があるので、いちど「OK」ボタンをクリックしヒストリーセンター画面に戻ったあと、もう一度「インポート」ボタンをクリックして上記インポート画面を見ると反映されている事があるので、繰り返し2005.01.10 02:31のデータが表示されている事を確認してください。
インポート画面でデータが表示されている事を確認できた場合、次はヒストリーセンター画面でも一番下までスクロールし、2005.01.10 02:31のデータが表示されている事を確認します。
確認できたら「閉じる」ボタンをクリックします。

確認後MT4を再起動し、以下のように大量の1分足データが出来ている事が確認できればOKです。

これで1分足の2005年~の過去データの取り込みは完了です。
1分足以外のヒストリカルデータの作成
次に、1分足以外のヒストリカルデータの作成を行います。
※1分足のデータを使って作成するので先ほどと手順が異なります
period_converter_ALLの入手と展開
スクリプト(period_converter_ALL)の入手
まず、全ての時間足のデータを作成する用のスクリプト(period_converter_ALL)をMQL5のページからダウンロードします。

クリックすると、ユーザー登録画面がでてきますので登録しましょう。(最近出るようになったのかな?)

翻訳するとこんな感じ。

登録するのが嫌な場合は、以下の赤枠の場所をクリックするとperiod_converter_ALLのソースコードが出てくるので自分でコンパイルして使う方法を取ってもOKです。

period_converter_ALLの展開
period_converter_ALLが用意できたら、MT4の画面でメニューバーの「ファイル」→「データフォルダを開く」をクリックし、「MQL4」フォルダ→「Scripts」フォルダへ移動し、Scriptsフォルダ内に先ほどダウンロードした「 period_converter_ALL.mq4 」をコピーします。
コピーができたら、MT4画面のナビゲーターウィンドウ→「スクリプト」を右クリックし「更新」をクリックします。

スクリプト(period_converter_ALL)を使ってデータ作成
MT4の画面でメニューバーの「ファイル」→「オフラインチャート」をクリックし、「USDJPY,M1」を選択し「開く」をクリックします。

すると、MT4上にUSDJPYのM1(1分足)のチャートが表示されます。
続いて、 MT4画面のナビゲーターウィンドウ→「スクリプト」 の[+]をクリックし「period_converter_ALL」を 、表示されたM1チャート上にドラッグ&ドロップします。
※スクリプトの一番下に「periodconverter」という似たような名前のものがありますが、こちらは選ばないでください。

ドラッグ&ドロップするとチャートの左上に進行状況が表示されます。進行状況の表示が消えるまでしばらく待ちます。(2~3分かかります)
【補足情報】
「periodconverter」は元々MT4に常備されているスクリプトですが、1つの時間足のみデータ作成(1分足から5分足を作成)してくれるスクリプトです。各時間足分のデータ作成は非常に面倒、一括でデータ作成して欲しい!という事で「period_converter_ALL」が登場してきたわけですね。
データ作成確認
MT4の画面でメニューバーの「ファイル」→「オフラインチャート」をクリックします。すべての時間足のデータが作成されていれば成功です。

最初にデータを消した、「history」フォルダ→「(自分が利用しているデモサーバー)」フォルダの方も確認します。

しっかりとデータが出来ている事がわかります。
あとはMT4側で実際にチャートがうまく表示出来る事も確認し、バックテストを実施してください。
チャートがうまく表示できない場合は展開に失敗しているので再度取り込みなおしましょう。
さいごに
以上でMT4で過去チャートの取り込みは完了です。
FXDDの取り込みは少し面倒ですが慣れる(period_converter_ALLファイルがある)と簡単ですので、是非他通貨のヒストリカルデータも取り込んでみてください。
あとは、2005年1月10日からのバックテストが可能になっているので試してみて下さい。
※もし、過去チャートの取り込みがうまくいかなかった場合はこちらもお試し下さい
コメント