MT4 長期のヒストリーデータを取得・作成する方法
この記事では、MT4の長期間のヒストリーデータを取得して各時間足データを作成する方法を説明します。
ヒストリーデータの作成は少し面倒ですが、一度作ってしまえばその後はずっと使いまわしすることができます。
時間が空いた時に一気に作ってしまうのが良いと思います。
1. 事前準備
ヒストリーデータに複数のFX業者のデータが混在すると、相場検証時などで勝因・敗因の検証が難しくなります。したがって、ヒストリーデータはできるだけ単一のFX業者のデータに統一するのが良いです。
データの混在を防ぐため以下の事前準備を行います。
FX業者から回線を切り離す
MT4がFX業者とつながっていると、チャートを開いたときにFX業者から価格データを自動でダウロードするため、データが混在してしまうことがあります。これを防ぐためいったん口座からログオフして回線を切ります。
注意
この操作時にもともとのパスワードがわからなくなってしまわないように注意してください。
「ファイル」→「取引口座にログイン」
パスワードをいったん削除して→「ログイン」
「コモンエラー」または「回線不通」と表示されたら、FX業者との回線遮断が完了です。
チャートを全て閉じる
チャートを開いていると、チャートを閉じたときやMT4を終了した時に、チャートの価格データが自動でヒストリーデータに保存されてしまいます。余計なデータの混在を防ぐためにチャートはあらかじめ閉じておきます。
チャートを全て閉じます。(MT4は終了しないでください)
既存データを削除
既存のヒストリーデータを削除して空の状態にします。
MT4の「ファイル」→「データフォルダを開く」でデータフォルダを開く。
「history」フォルダ→「FX業者名」フォルダへ進む。
フォルダの中にある拡張子.hstのファイルがヒストリーデータです。これらを削除します。
補足
既存データを残したい場合は、どこか別のフォルダにhstファイルをコピーします。
ヒストリーとチャートのバー数を最大にする
ヒストリーデータに保存できるデータ数とチャートに表示するデータ数を最大にするため、以下を行います。
MT4の「ツール」→「オプション」でオプションウィンドウを開く
「チャート」タブを開き、「ヒストリー内の最大バー数」と「チャートの最大バー数」を最大値(2147483647)にして「OK」をクリック。
補足
- 値の入力欄に「9999・・・・・」などの大きな数字を入れれば自動で最大値になります。
- ヒストリー内の最大バー数とチャートの最大バー数については、こちらの記事に詳しく書いてあります。→「MT4 ヒストリー内の最大バー数とチャートの最大バー数とは?おすすめ値は?」
以上で事前準備は完了です。MT4は起動したまま、次の手順へ進んでください。
2. ヒストリーデータの取得/MT4へインポート
続いてヒストリーデータを取得してMT4にインポートしていきます。ここでは有名どころのFXDD社からデータを入手する場合で説明します。(2005年1月から現在までのデータをダウンロードできます。】
1分足データをダウンロード
FXDDのサイトからデータを入手します。
ヒストリーデータのダウンロードページで、希望の通貨ペアをクリックしてダウンロード。
ダウンロードできたら、ファイルを解凍します。解凍すると拡張子が.hstのファイルが現れます。(例:USDJPY.hst)
補足
- ダウンロードファイルのサイズはUSDJPYで50MB程度です。
- ダウンロードできる時間足は1分足のみです。他の時間足は1分足のデータを元にして別途生成します。(やり方は後述)
MT4へインポート
解凍したファイルを以下の手順でMT4にインポートします。
MT4の「ツール」→「ヒストリーセンター」でヒストリーセンターのウィンドウを開く
通貨ペア名をダブルクリック→「1分足(M1)」をダブルクリック→「インポート」をクリック
補足
この時点では、まだデータ数は0レコードのはずです。レコード数が0でない場合は、既存のヒストリーデータが残ってしまっています。ここまでの手順を再確認してください。
インポートのウィンドウが開くので、「参照」をクリック
先ほど解凍したファイルを選択→「開く」
インポートする価格データが表示されるのでざっと確認し「OK」をクリック
「ヒストリーセンター」のウィンドウに価格データが表示されます。ここでもざっと確認して問題なければインポート完了→「閉じる」をクリック
チャートで確認
念のためインポートした通貨ペアの1分足チャートを開き、インポートできているかを確認します。
1分足チャートがちゃんと表示されればOKです。
以上で1分足のヒストリーデータの取得/MT4へのインポートは終了です。
3. 他の時間足データを作成する
ここまでで、1分足のヒストリーデータができあがったので、次に1分足データを加工して他の時間足データを作成します。
データの加工には「period converter ALL」というスクリプトを使います。自動で他の時間足データを作成してくれるのでとても簡単です。
period converter ALLをダウンロード
period converter ALLはMQL5.communityからダウンロードできます。ソースコードも公開されています。
ダウンロードページ(https://www.mql5.com/ru/code/11201)で「period_converter_ALL.mq4」をクリックしてダウンロード
period converter ALLをインストール
以下の手順でperiod converter ALLをMT4にインストールして使える状態にします。
MT4の「ファイル」→「データフォルダを開く」
「MQL4」フォルダ→「scripts」フォルダへ進む
「scripts」フォルダの中へperiod_converter_ALL.mq4をコピーする
MT4の「ナビゲーター」の下の方にある「スクリプト」を右クリック→「更新」をクリック
ナビゲーター内のスクリプトの所にperiod_converter_ALLが表示されればインストール完了
他の時間足データを作成
period converter ALLを使って以下手順で他の時間足データを作成します。
作成する通貨ペアの1分足チャートを開き、ナビゲーター内のperiod_converter_ALLをチャートにドラッグ&ドロップ
すぐにデータの作成がはじまります。データ作成中は、チャートの左上に進行状況を示すコメントが表示されます。完了するまで何もせず数分待ちます。
データ作成が完了すると、チャート左上のコメントが消えます(完了のメッセージは特に表示されません)
補足:作成される時間足
上記の操作ですべての時間足(M5, M15, M30, H1, H4, D1, W1, MN)がまとめて作成されます。
チャートで確認
各時間足のチャートを開いて、データがちゃんと作成されたかを確認します。
全ての時間足チャートがちゃんと表示されればOK
以上で他の時間足データの作成は完了です。
4. 後処理
上記までの手順で、ヒストリーデータ作成は完了です。最後に、切断していたFX業者との回線を繋いで復旧します。
FX業者との回線を復旧する
回線の復旧は取引口座にログインするだけです。
MT4の「ファイル」→「取引口座にログイン」
ID、パスワード、サーバーを入力して→「ログイン」クリック
接続状況に数字が表示表示されれば回線の復旧完了です。
補足
- FX業者の回線を復旧すると、FXDDからダウンロードしたヒストリーデータのブランク部分(例:現在時刻の付近など)が回線復旧したFX業者の価格データが埋められます。そのため若干のデータ混在が生じます。
- データの混在を完全に防ぎたい場合には、MT4を複数インストールして、ヒストリーデータ用と普段のトレード用に使い分ける等の方法で対処します。
以上で作業は全て完了です。お疲れ様でした。
まとめ
MT4の長期のヒストリーデータを作る手順を説明しました。
ヒストリーデータ周りは操作がややこしいのではじめは頭がこんがらがってしまうかもしれませんね。そんな時は、やっていることの意味を理解しながら覚えると少しすっきりすると思います。
わかりやすいです。2年前、FXスクールでの説明ではチンプンカンプンでしたが、しっかり今回学べましたwありがとうございますw
nanaoさんへ
私もヒストリーデータ周りは最初ちんぷんかんぷんでした。一つ一つの動作をチェックしていってチェックしてようやく仕組みがわかったという感じです。結構つまづく人が多いところなのかもしれませんね。
大変わりやすくて助かりました!ありがとうございます!
おやまかめさんへ
コメントありがとうございます。
お役に立ったならなによりです。
先日ワンクリック取引き設定を教えて頂いたものです。今回はヒストリカルデータ取得についてお尋ねします。
既存の.hstを全て削除しましたがデータが0になりません。
対処方がありますか?
0にならないままインポートすると不具合が起きるのでしょうか?
教えて下さい。
クローバーさんへ
手順通りにやればデータはゼロになりますので、たぶん下記2点のあたりに漏れがあったか順序違いがあったのではないかと思います。
・口座にログインしているとデータをサーバーから読み込んでしまいます。FX会社の口座からログアウトします。
・チャートを開いていると、チャートに表示しているデータがhstに勝手に保存されます。チャートを全て閉じてください。
またデータが0にならないままインポートした場合は、動作上は特に不具合は起こりません。ただし複数のFX会社のデータが混在するため過去検証などがやりにくくなります。
早速お返事有難うございます。
口座からのログアウトとはコモンエラーの確認でよかったのですか?
それは確認しております。
チャートは全て閉じておりますが…
皆さんが出来ているのでどこか手順間違いがあるのかも知れません。
再度やり直してみます。
お忙しい中いつも教えて頂き有難うございます。
クローバーさんへ
は、ログアウトはコモンエラーの確認のことです。
あとは、口座番号を複数作っている場合は、③既存データの削除の箇所で、ヒストリーデータを格納するフォルダが複数存在することがありますので似たような名前のフォルダがいくつか存在する場合は取り違えないように気にしてみてください。
色々有難うございます。
一つの作業から色々調べたり違う方法を試してみたりの連続です。
作業が進まず焦るのですが、それも勉強と心得ます。失敗した事は忘れないので、全て勉強ですね。いつも遠慮なく質問させて頂き有難うございます。
クローバーさんへ
データ作成がうまくいくといいですね。
とても分かりやすいご説明をありがとうございます。
データ作成できました。
仕組みも学ばせていただき、初めて理解できました。
本当にありがとうございます。
Hanaさんんへ
コメントありがとうございます。お役に立ったなら何よりです。
こういう煩雑な操作は仕組みを理解すると作業のストレスが軽減されますね。
はじめまして。切断した回線を元に戻すとデータ数が減って(元に戻って)しまいます。2度やってみたのですが同じでした。原因として考えられることはありますでしょうか。
mokochaさんへ
念のためですが、手順の4番のヒストリー内の最大バー数の値は最大値になっているかご確認ください。
あとは、全くの想像ですが、もしかしたらですがお使いのFX会社が他社のヒストリーデータが入っていたらはじくような処理を入れているとかでしょうか(そんなことあるのかな?)。その場合は別の会社のMT4を使うとできるかもしれません。でもはっきりとした原因や対策はわかりません。ごめんなさい。とにかくうまくいくことをお祈りしております。
ご返信ありがとうございます。バーはいずれも最大値になっておりました。もう1点のご指摘は懸念があります。〇〇からこれまで3つのMT4をインストールし、デモ口座とリアルの口座(2つ)を使っていました。整理しようと思い一度すべてアンインストール(プログラムから削除)し改めてMT4をインストールしたのですが、historyの中にサーバー3つ(デモ・リアル2つ)のフォルダが生成されておりました。今回、ポンド円だけヒストリカルデータを入れる作業をしました。(リアルとデモ口座それぞれからポンド円のhstデータを削除しました。)他のヒストリカルデータはないように思うのですが、確認すべき箇所はありますでしょうか?
mokochaさんへ
MT4を一つに統合した後のフォルダ構成やヒストリカルデータの場所は問題ないと思います。hstデータも他の場所には無いと思います。
あとひとつだけ考えられるのは、ログインする口座が原因かもしれません。例えば本ページの手順でデモ口座のヒストリカルデータを蓄積したのに、最後にサーバーに繋ぐ際にリアル口座に繋いでいるような場合です。口座の入れ替えての試行錯誤は私もやったことがないので推測です。
あと別の角度からの調査としては、長期データを貯めた時などに、history内のどのフォルダの.hstに蓄えられているかなどをファイルサイズや更新日時などをチェックしながら状況を追っていくと原因などが分かるかもしれませんよ。
いろいろ勝手なことを書きましたが全て推測ですので、話半分で聞き流してください。うまくいくといいですね。
ご丁寧にありがとうございました。試行錯誤した結果、やはり原因がよくわからず、改めてアンインストールをしてから本プロセスを行ったところうまくいきました。どうもありがとうございました!
mokochaさんへ
コメントありがとうございます。最終的にうまくいったようで良かったですね!
手順通りにやってみましたが、1分足から上位足のデータを生成する際に、
値飛び(一定期間4本値データが生成されない)が発生してしまいます。
データは、axioryから取得していますが、1分足に値飛びは見られません。
対処法があれば、ぜひご教示いただきたいです。
よろしくお願いいたします。
よっちさんへ
コメントありがとうございます。
1分足データが正常であれば、上位足作成のプログラムの相性に問題があると思われます。具体的には、1分足データに含まれる細かなデータの不備・エラーや、それに対するプログラム側のエラー回避処理などが不十分などが原因として考えられます。元データに合ったプログラムを作り直せばよいのですが手間がかかるので、上位足生成の別のプログラムを探すのが一つの手です。
上位足生成プログラムは、本ページで紹介しているもの以外にも類似のものがMQL5.comにあるので、そこから探していくつか試してみると、相性の良いものがあるかもしれません。上位足データを作り直す際の注意点としては、値飛びした上位データが混在しないように、本ページの手順の前半にあるように、値飛びしたデータはあらかじめ削除しておく必要があります。