はじめに
ヒストリカルデータと言えば、過去のチャートですがどこのヒストリカルデータを使えばいいのか迷ったりしませんか?
今回はこのFX業者でEAを運用するならこれ!というヒストリカルデータの入手・取り込み方法について記載します。
※ドル/円で説明していますが、他通貨ペアの場合も手順は同じですので文言を置き換えてご確認ください
今回はFXTFというFX業者を使ってヒストリカルデータを取得します。
FXTFとは
FXTFとは、日本国内の(EAが使える)FX業者です。EAが使えるFX業者の中でも、スプレッド・スワップ共にトップレベルのパフォーマンスのため、私もメイン口座として利用しています。
しかも、FXTF独自のヒストリカルデータがあるため、FXTFでEAを動かす際には持ってこいのバックテストデータをを入手する事ができます。
FXTFの情報はこちらの記事にも記載していますので、詳しく知りたい方は参考頂ければと思います。
ヒストリカルデータの取得
では早速、ヒストリカルデータの取得方法について記載します。FXTF MT4では、2012年1月3日以来の実際の価格データ(CSV形式)をダウンロードできます。
ただし、マイページにログインする必要があるためFXTFの口座を持ってない方は口座開設が必要となります。
口座をお持ちでない方は以下のバナーから口座開設してください!
マイページにログインしてファイルをダウンロード
口座を開設するとマイページにログインできるようになります。
まず、マイページにログインし①「チャートデータ」をクリックすると、通貨が表示されるので②「USDJPY」(取得したい通貨)をクリックします。
すると『USDJPY_M1.ZIP』ファイルがダウンロードできるので解凍しましょう。
解凍すると、『USDJPY_M1.CSV』ファイルが出来上がります。(240MBほどあるのでわりとでかい)
これがヒストリカルデータ(過去の1分足データ)です。
既存ヒストリカルデータの削除
次に、現行のチャートデータを一旦削除します。
まずMT4を起動し、MT4上に表示されているUSDJPYのチャートを全て(×ボタンで)終了しておきましょう。
そして、画面でメニューバーの「ファイル」→「データフォルダを開く」をクリックします。
MT4のフォルダが開かれるので、「history」フォルダ→「(自分が利用しているサーバー名)」フォルダに移動します。
※MT4の上部に出ているここを見ればわかる(これはFXTF-Liveフォルダ)
後、MT4のアプリも一旦終了しておきましょう。
※起動しっぱなしだとファイルが残ってしまうため
そして「USDJPY1.hst」「USDJPY5.hst」・・・といったUSDJPY●●.hst系のファイルを全て削除し、MT4を起動しなおします。
※backupフォルダを作ってそこに退避でもOKです
再起動後、「history」フォルダにUSDJPY系のファイルが作成されていなければ成功です。
MT4のバー表示可能数の変更
次に、MT4のバー表示可能数を変更します。
MT4の画面でメニューバーの「ツール」→「オプション」をクリックし、オプション画面の「チャート」タブを開き、ヒストリー内の最大バー数、チャートの最大バー数を共に「2147483647」と入力し「OK」をクリックします。
ヒストリカルデータの取り込み
次に、先ほどダウンロードしてきたヒストリカルデータを取り込みます。
MT4の画面でメニューバーの「ツール」→「ヒストリーセンター」をクリックします。「ヒストリー・センター」ウィンドウ左のツリーから「Forex(-cd)」をダブルクリックすると、通貨ペアの一覧が表示されます。
取り込む通貨の1分足をダブルクリックするとデータベース内にインポート前のデータ一覧が表示されます。「インポート」ボタンをクリックします。
「参照」ボタンをクリックします。
先程ダウンロードした「USDJPY_M1.CSV」ファイルを選択し、「開く」ボタンをクリックします。
インポート画面に戻ってくるので、一番下までスクロールし、2012.01.03 07:00のデータが表示されている事を確認し「OK」ボタンをクリックします。
反映されるまでに少し時間がかかる場合があるので、いちど「OK」ボタンをクリックしヒストリーセンター画面に戻ったあと、もう一度「インポート」ボタンをクリックして上記インポート画面を見ると反映されている事があるので、繰り返し2012.01.03 07:00のデータが表示されている事を確認してください。
インポート画面でデータが表示されている事を確認できた場合、次はヒストリーセンター画面でも一番下までスクロールし、2012.01.03 07:00のデータが表示されている事を確認します。
確認できたら「閉じる」ボタンをクリックします。
確認後MT4を再起動し、以下のように大量の1分足データが出来ている事が確認できればOKです。
これで1分足の2012年~の過去データの取り込みは完了です。
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側で実際にチャートがうまく表示出来る事も確認し、バックテストを実施してください。
チャートがうまく表示できない場合は展開に失敗しているので再度取り込みなおしましょう。
ですので時間系の制約が入ったEAをバックテストする場合は2015年6月29日から行うのが良いです。
さいごに
以上でFXTF版過去チャートの取り込みは完了です。
取り込みはFXDDと同様に少し面倒ですが、慣れてくる(period_converter_ALLファイルがある)と簡単ですので、是非他通貨のヒストリカルデータも取り込んでみてください。
どのヒストリカルデータでバックテストをしようか迷う場合もありますが、FXTFでEAを動かす場合はこのヒストリカルデータでバックテストをすると一番理にかなっているので是非活用してみてください。
コメント
ごめんなさい、教えてください。
自分の中では書かれている順番にやったのですが、
データを解凍すると240MBほどあるそうなのですが、
49.959KBしかなく、
2024.11.11.19:15までのデータしかなく
2012.01.03 07:00のデータが表示されないのですが
どうしたらよいでしょうか
教えてほしくてメールしました。
佐藤様
コメント有難うございます。
どの通貨ペアでされていますか?
私も先ほど再度試してみましたが、USDJPYはダウンロード時は47.8MX(解凍で238MB)で、
ファイルをメモ帳で開くと2012.01.03 07:00からデータがありました。
もし同じUSDJPYでしたら、解凍に失敗しているかもしれません。
返信ありがとうございます!
無事できました!
ありがとうございました。