MT4 長期のヒストリーデータを取得・作成する方法

この記事では、MT4の長期間のヒストリーデータを取得して各時間足データを作成する方法を説明します。

ヒストリーデータの作成は少し面倒ですが、一度作ってしまえばその後はずっと使いまわしすることができます。

時間が空いた時に一気に作ってしまうのが良いと思います。

1. 事前準備

ヒストリーデータに複数のFX業者のデータが混在すると、相場検証時などで勝因・敗因の検証が難しくなります。したがって、ヒストリーデータはできるだけ単一のFX業者のデータに統一するのが良いです。

データの混在を防ぐため以下の事前準備を行います。

FX業者から回線を切り離す

MT4がFX業者とつながっていると、チャートを開いたときにFX業者から価格データを自動でダウロードするため、データが混在してしまうことがあります。これを防ぐためいったん口座からログオフして回線を切ります。

注意

この操作時にもともとのパスワードがわからなくなってしまわないように注意してください。

「ファイル」→「取引口座にログイン」

取引口座にログイン

パスワードをいったん削除して→「ログイン」

ログイン画面

「コモンエラー」または「回線不通」と表示されたら、FX業者との回線遮断が完了です。

回線不通

チャートを全て閉じる

チャートを開いていると、チャートを閉じたときやMT4を終了した時に、チャートの価格データが自動でヒストリーデータに保存されてしまいます。余計なデータの混在を防ぐためにチャートはあらかじめ閉じておきます。

チャートを全て閉じます。(MT4は終了しないでください)

チャートを全て閉じる

既存データを削除

既存のヒストリーデータを削除して空の状態にします。

MT4の「ファイル」→「データフォルダを開く」でデータフォルダを開く。

データフォルダを開く

「history」フォルダ→「FX業者名」フォルダへ進む。

ヒストリーフォルダー

フォルダの中にある拡張子.hstのファイルがヒストリーデータです。これらを削除します。

ヒストリーファイル

補足

既存データを残したい場合は、どこか別のフォルダにhstファイルをコピーします。

ヒストリーとチャートのバー数を最大にする

ヒストリーデータに保存できるデータ数とチャートに表示するデータ数を最大にするため、以下を行います。

MT4の「ツール」→「オプション」でオプションウィンドウを開く

ツール→オプションを選択

「チャート」タブを開き、「ヒストリー内の最大バー数」と「チャートの最大バー数」を最大値(2147483647)にして「OK」をクリック。

最大バー数を変更する

補足

以上で事前準備は完了です。MT4は起動したまま、次の手順へ進んでください。

2. ヒストリーデータの取得/MT4へインポート

続いてヒストリーデータを取得してMT4にインポートしていきます。ここでは有名どころのFXDD社からデータを入手する場合で説明します。(2005年1月から現在までのデータをダウンロードできます。】

1分足データをダウンロード

FXDDのサイトからデータを入手します。

ヒストリーデータのダウンロードページで、希望の通貨ペアをクリックしてダウンロード。

FXDDダウンロードページ

ダウンロードできたら、ファイルを解凍します。解凍すると拡張子が.hstのファイルが現れます。(例:USDJPY.hst)

zipファイルを解凍する

補足

  • ダウンロードファイルのサイズはUSDJPYで50MB程度です。
  • ダウンロードできる時間足は1分足のみです。他の時間足は1分足のデータを元にして別途生成します。(やり方は後述)

MT4へインポート

解凍したファイルを以下の手順でMT4にインポートします。

MT4の「ツール」→「ヒストリーセンター」でヒストリーセンターのウィンドウを開く

ヒストリーセンターを開く

通貨ペア名をダブルクリック→「1分足(M1)」をダブルクリック→「インポート」をクリック

ヒストリーセンター

補足

この時点では、まだデータ数は0レコードのはずです。レコード数が0でない場合は、既存のヒストリーデータが残ってしまっています。ここまでの手順を再確認してください。

インポートのウィンドウが開くので、「参照」をクリック

参照をクリック

先ほど解凍したファイルを選択→「開く」

解凍したファイルを開く

インポートする価格データが表示されるのでざっと確認し「OK」をクリック

インポートするデータを確認

「ヒストリーセンター」のウィンドウに価格データが表示されます。ここでもざっと確認して問題なければインポート完了→「閉じる」をクリック

ヒストリーデータインポート完了

チャートで確認

念のためインポートした通貨ペアの1分足チャートを開き、インポートできているかを確認します。

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」フォルダへ進む

MQL4フォルダ

「scripts」フォルダの中へperiod_converter_ALL.mq4をコピーする

scriptsフォルダにコピー

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の長期のヒストリーデータを作る手順を説明しました。

ヒストリーデータ周りは操作がややこしいのではじめは頭がこんがらがってしまうかもしれませんね。そんな時は、やっていることの意味を理解しながら覚えると少しすっきりすると思います。

コメント

この記事へのコメント(18 件)

  • nanaoさんより

    わかりやすいです。2年前、FXスクールでの説明ではチンプンカンプンでしたが、しっかり今回学べましたwありがとうございますw

  • 管理人ですさんより

    nanaoさんへ
    私もヒストリーデータ周りは最初ちんぷんかんぷんでした。一つ一つの動作をチェックしていってチェックしてようやく仕組みがわかったという感じです。結構つまづく人が多いところなのかもしれませんね。

  • おやまかめさんより

    大変わりやすくて助かりました!ありがとうございます!

  • 管理人ですさんより

    おやまかめさんへ
    コメントありがとうございます。
    お役に立ったならなによりです。

  • クローバーさんより

    先日ワンクリック取引き設定を教えて頂いたものです。今回はヒストリカルデータ取得についてお尋ねします。
    既存の.hstを全て削除しましたがデータが0になりません。
    対処方がありますか?
    0にならないままインポートすると不具合が起きるのでしょうか?
    教えて下さい。

  • 管理人ですさんより

    クローバーさんへ
    手順通りにやればデータはゼロになりますので、たぶん下記2点のあたりに漏れがあったか順序違いがあったのではないかと思います。
    ・口座にログインしているとデータをサーバーから読み込んでしまいます。FX会社の口座からログアウトします。
    ・チャートを開いていると、チャートに表示しているデータがhstに勝手に保存されます。チャートを全て閉じてください。
    またデータが0にならないままインポートした場合は、動作上は特に不具合は起こりません。ただし複数のFX会社のデータが混在するため過去検証などがやりにくくなります。

  • クローバーさんより

    早速お返事有難うございます。
    口座からのログアウトとはコモンエラーの確認でよかったのですか?
    それは確認しております。
    チャートは全て閉じておりますが…
    皆さんが出来ているのでどこか手順間違いがあるのかも知れません。
    再度やり直してみます。
    お忙しい中いつも教えて頂き有難うございます。

  • 管理人ですさんより

    クローバーさんへ
    は、ログアウトはコモンエラーの確認のことです。
    あとは、口座番号を複数作っている場合は、③既存データの削除の箇所で、ヒストリーデータを格納するフォルダが複数存在することがありますので似たような名前のフォルダがいくつか存在する場合は取り違えないように気にしてみてください。

  • クローバーさんより

    色々有難うございます。
    一つの作業から色々調べたり違う方法を試してみたりの連続です。
    作業が進まず焦るのですが、それも勉強と心得ます。失敗した事は忘れないので、全て勉強ですね。いつも遠慮なく質問させて頂き有難うございます。

  • 管理人ですさんより

    クローバーさんへ
    データ作成がうまくいくといいですね。

  • Hanaさんより

    とても分かりやすいご説明をありがとうございます。
    データ作成できました。
    仕組みも学ばせていただき、初めて理解できました。
    本当にありがとうございます。

  • 管理人ですさんより

    Hanaさんんへ
    コメントありがとうございます。お役に立ったなら何よりです。
    こういう煩雑な操作は仕組みを理解すると作業のストレスが軽減されますね。

  • mokochaさんより

    はじめまして。切断した回線を元に戻すとデータ数が減って(元に戻って)しまいます。2度やってみたのですが同じでした。原因として考えられることはありますでしょうか。

  • 管理人ですさんより

    mokochaさんへ
    念のためですが、手順の4番のヒストリー内の最大バー数の値は最大値になっているかご確認ください。
    あとは、全くの想像ですが、もしかしたらですがお使いのFX会社が他社のヒストリーデータが入っていたらはじくような処理を入れているとかでしょうか(そんなことあるのかな?)。その場合は別の会社のMT4を使うとできるかもしれません。でもはっきりとした原因や対策はわかりません。ごめんなさい。とにかくうまくいくことをお祈りしております。

  • mokochaさんより

    ご返信ありがとうございます。バーはいずれも最大値になっておりました。もう1点のご指摘は懸念があります。〇〇からこれまで3つのMT4をインストールし、デモ口座とリアルの口座(2つ)を使っていました。整理しようと思い一度すべてアンインストール(プログラムから削除)し改めてMT4をインストールしたのですが、historyの中にサーバー3つ(デモ・リアル2つ)のフォルダが生成されておりました。今回、ポンド円だけヒストリカルデータを入れる作業をしました。(リアルとデモ口座それぞれからポンド円のhstデータを削除しました。)他のヒストリカルデータはないように思うのですが、確認すべき箇所はありますでしょうか?

  • 管理人ですさんより

    mokochaさんへ
    MT4を一つに統合した後のフォルダ構成やヒストリカルデータの場所は問題ないと思います。hstデータも他の場所には無いと思います。
    あとひとつだけ考えられるのは、ログインする口座が原因かもしれません。例えば本ページの手順でデモ口座のヒストリカルデータを蓄積したのに、最後にサーバーに繋ぐ際にリアル口座に繋いでいるような場合です。口座の入れ替えての試行錯誤は私もやったことがないので推測です。
    あと別の角度からの調査としては、長期データを貯めた時などに、history内のどのフォルダの.hstに蓄えられているかなどをファイルサイズや更新日時などをチェックしながら状況を追っていくと原因などが分かるかもしれませんよ。
    いろいろ勝手なことを書きましたが全て推測ですので、話半分で聞き流してください。うまくいくといいですね。

  • mokochaさんより

    ご丁寧にありがとうございました。試行錯誤した結果、やはり原因がよくわからず、改めてアンインストールをしてから本プロセスを行ったところうまくいきました。どうもありがとうございました!

  • 管理人ですさんより

    mokochaさんへ
    コメントありがとうございます。最終的にうまくいったようで良かったですね!