ヒストリカルデータのインポート

MT4のヒストリカルデータのインポートについて

バックテストを行ってトレードルールを作成するために、MT4で過去のローソク足データ(4本値)をインポートする際の手順をお伝えします。

MT4付属のスクリプト「PeriodConverter」を使って1分足のデータから5分足や15分足を生成するとテストデータとしての「モデリング品質」が90%になるとされていますが、ここではスクリプトを使わずベタで簡単な方法をご紹介いたします。

始値のみのテストで大まかな概要を知りたい場合は、下記の方法で十分だと思います。
※テストデータの「モデリング品質」を高めたい場合は、「※PeriodConverterを使う場合」の注釈を参考にして1分足データから5分足以上の各上位足データを生成してください。
尚、1分足のデータから1度に複数の上位足データを生成するスクリプトもあるので、こちらは「period_converter_All」で検索してみてください。

先ずは注意点として、大量データのインポート後に負荷の増大やMT4が起動しないなどのトラブル対策について始めに説明いたします。

特に1分足で5年~10年といった大量データをインポートするとMT4の負荷が増大し、MT4自体が起動しないなどのトラブルにつながります。

万が一、大量データのインポートでMT4が起動しなくなった場合は、
(CドライブのUsersフォルダ直下, OSにより若干の違いはあります)user名→AppData→Roaming→MetaQuotes→Terminal→FX会社独自フォルダ名→history→Server名フォルダの「*.hst」ファイルを全て削除してください。

こうすることで、大量データの読み込みをしなくなるのでMT4は起動するはずです。

1.MT4の全てのチャートを閉じる

複数のチャートを開いている状態で大量のデータをインポートすると負荷が高くなり、MT4が起動しなくなる可能性もあります。

チャートデータをインポートする前に、全てのチャートを閉じておきましょう!

chartBatsu
上図のように全ての個別チャート右上の×をクリックしてチャートを空にします。

chartKara
上図のようにチャートが表示されない状態にします。

2.インポートするデータ量を最大化する

ツール→オプションからチャートタブを開きます。

tool_option
上図のように、「ヒストリー内の最大バー数」と「チャート内の最大バー数」に「999999999999999」のように「9」を入力できる桁数限界まで入れて「OK」をクリックします。

3.既存ヒストリカルデータを削除してMT4を閉じる

インポートする通貨の既存ヒストリカルデータを削除します。

hist_data_folder

上図のようにMT4の「ファイル→データフォルダを開く」の「history→サーバー名」フォルダから、インポートする通貨のヒストリーデータ「*.hst」ファイルを全て選択して右クリックメニューから削除してMT4を閉じてください。

4.MT4を起動してヒストリカルデータをインポートする

MT4を起動します。

historyUSDJPYM1
上図のように「ツール→ヒストリーセンター」からインポートする通貨ペアの1分足を選択して「ダウンロード」をクリックしてください。

historyUSDJPYM1Message

「ダウンロードの警告」や「~再計算しますか?」というメッセージが表示されたら、「OK」や「はい」をクリックして進めるとデータのインポートが始まりますので、数分~10分以上お待ちください。

5.不要な期間のデータを削除する

データを大量インポートするとMT4が重くなり、最悪の場合起動しないこともあります。
1分足なら1年から2年、5分足でも1年~3年もあれば十分ではないでしょうか。
1時間足なら5年でも良いかもしれません。
何れにしても、不要な期間のデータを足毎に削除してMT4を再起動しましょう!

※PeriodConverterを使う場合
1分足のデータのみ不要な期間を削除してください。
他の上位足の削除は、MT4を閉じた状態で1分足以外のヒストリカルファイルの削除を行えばOKです。
user名→AppData→Roaming→MetaQuotes→Terminal→FX会社独自フォルダ名→history→Server名フォルダの5分足以上の「*.hst」ファイルを削除してMT4を起動してください。

historyUSDJPYM1from
上図のように、削除するデータの一番上の行をクリックします。

historyUSDJPYM1to

上図のようにスクロールして一番古いデータの行を「シフトキー」を押しながらクリックすると削除する期間のデータが全選択されますので、選択した状態で「削除」をクリックします。

historyUSDJPYM1tonew

上図のように不要な期間のデータが削除されていることを確認します。

一番古いデータを見れば不要な期間のデータが削除されていることが分かります。

他の時間足も同様に不要な期間のデータを削除してから「閉じる」をクリックしてMT4を再起動します。

MT4再起動後は、各時間足のチャートを開いてチャート上で右クリックメニューから「更新」してください。

※PeriodConverterを使う場合(USDJPYの例)
MT4のファイル⇒オフラインチャートから「オフラインチャート・一覧」を開き、USDJPY,M1⇒開くでUSDJPY1分足のオフラインチャートを開きます。
「ナビゲーター」の「スクリプト」から「PeriodConverter」をオフラインチャート上にドラッグすると「PeriodConverter」の設定画面が表示されます。

「パラメーターの入力」タブの「Priod multiplier factor」の「バリュー」に「5」を入力して「OK」をクリックすると、1分足データから5分足が生成されます。
「ターミナル⇒エキスパート⇒メッセージ」に「record(s) written」を表示されれば完了です。

period_converter2

以下、15分足、30分足、1時間足(60)、4時間足(240)~と必要な足のデータを生成してください。

以上で、トレードルール作成のためのテストデータインポート方法の解説が終了しました。