ヒストリカルデータを利用したバックテスト

2013年08月04日

EURUSDのヒストリカルデータを利用したMT4EAのバックテスト方法について説明します。

まずはヒストリカルデータのダウンロードとインポートです。

1.ヒストリカルデータをダウンロードする。

ダウンロードページは以下より。EURUSDをクリックして適当なところ(デスクトップなど)にダウンロードします。

ヒストリカルデータのダウンロード

1min

ヒストリカルデータは圧縮されているので解凍しておきます。

2.MT4の最大バーの設定

MT4のメニューから「ツール」→「オプション」とクリックします。

「チャート」をクリックして「ヒストリー内の最大バー数」と「チャートの最大バー数」の数値を「999999999999…」のように大きな数値を入力し「OK」をクリックします。 自動的に最大バー数の限界値が設定されます。

再度、「ツール」→「オプション」→「チャート」で開いてみて、数値が下の画像のようになっていれば成功です。

3.チャートの表示

ツールバーの「New Chart」から「EURUSD」をクリックすることで、チャートが表示されます。 チャートはツールバーの「M1」をクリックし1分足を表示させて起きます。

4.データの削除

既存の1分足データが残っていると、新しいデータと一致しない部分が出てくるので、古いヒストリカルデータを削除してリセットします。

MT4のメニューから「ファイル」→「データフォルダを開く」を選択します。

データの削除1

※データフォルダが開いたら、ここでいったんMT4を閉じます。

MT4を閉じたら、「history」フォルダを開きます。

ヒストリカルデータが格納されいているフォルダがいくつかあるので、現在MT4でログインしているしているサーバーのフォルダを開きます。

該当する通貨ペア(今回はEUEUSD)の「.hst」ファイルを削除します。

MT4を起動させます。しばらくしたらEURUSDの1分足チャートが表示されますので、再度MT4を閉じて再起動させます。この作業で新しい1分足データがMT4に反映されます。

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

「ツール」→「ヒストリーセンター」をクリックします。

【通貨ペア】の「EURUSD」の「1Minute(M1)」をダブルクリックすると右側のウインドウに1分足のヒストリカルデータが表示されます。 表示されたデータの【時間】の一番上をダブルクリックします。(画像の矢印部分)

日足データウインドウが開くので【日付】の年の部分に「2000」と入力し「OK」をクリックします。

ここでいったんヒストリカルデータウインドウは閉じます。 チャート上で右クリックして「更新」をクリックします。

チャート右下の数値が上がるので止まるまで待つ。

※一部口座ではこの方法では更新できない場合があります。その場合は時間を変更したデータを削除して、キーボードの「← キー」をチャートの動きが止まるまで長押することで過去のデータにさかのぼれます。

数値の上昇が止まったのを確認したら、メニューの「ツール」→「ヒストリーセンター」でEURUSDの1分足を開き、ヒストリカルデータの一番下をクリックし、先ほど時間を変更したデータを削除します。

ヒストリーセンターのウインドウを閉じてMT4を再起動します。(MT4を再起動させることでヒストリカルデータが更新されます)

MT4を再起動したらメニューの「ツール」→「ヒストリーセンター」を開き、「インポート」をクリックします。

インポートウィンドウが開くので「参照」ボタンをクリックする。

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

①ファイルの種類を「MetaQuotes files」か「All Files」にする。

②「EURUSD.hst」をクリックする。

③ファイル名に「EURUSD.hst」が表示されたら右下の「開く」ボタンをクリックする。

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

ヒストリカルデータが反映されたら、「OK」をクリックする。

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

ヒストリカルデータの一番下が2005年のものになっていれば成功です。(一部の通貨ペアでは一番古いデータが2005年でない場合もあります)

ヒストリーセンターを閉じて、MT4を再起動させてください。(MT4を再起動させることでヒストリカルデータが更新されます)

6.時間足の生成

1分足のヒストリカルデータのインポートは終わりましたが、他の時間足はまだデータとして存在しませんので、MT4のスクリプトを利用して他の時間足を生成していきます。

MT4のメニューから「ファイル」→「オフラインチャート」をクリックしてください。

「ヒストリカルデータ」の「EURUSD,M1」の部分をクリックして、「開く」をクリックします。

【EURUSD,M1(offline)】のチャートが表示されます。

ナビゲーターの「スクリプト」→「PeriodConverter」をクリックします。

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

「PeriodConverter」ウインドウが表示されるので、まずは5分足を生成してみます。

「パラメーター」の入力の「バリュー」の値を「5」に変更し「OK」をクリックします。

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

「オフラインチャート」を確認してみると5分足が生成されているのが分かります。

同様にして、「PeriodConverter」のバリューの値を「15」「30」「60」「240」「1440」にそれぞれ変更して、15分足、30分足、1時間足、4時間足、日足を生成します。

その際に次のようなウインドウが表示されたら「はい」をクリックします。

生成が完了したら、「オフラインチャート」を確認してみます。

「バー」の数値を見てみると、5分足のバーの数(623047)は1分足のバーの数(3101418)のほぼ5分の1の数になっています。

同様に15分足のバーの数(207953)は1分足のバーの数の15分の1、30分足のバーの数(104140)は1分足のバーの数の30分の1というように、各時間足のバーの数がキチンと相関されているかを確認してください。

また各時間足の「開始」と「終了」の日にちが同じ日になっていることも確認してください。

以上でヒストリカルデータ編は終了です。MT4を再起動してください

EURUSDの1分足オフラインチャートは削除してけっこうです。

実際にバックテストを行う場合は、バックテスト ストラテジーテスター編をご覧下さい。

当サイトのEAにご興味のある方は以下のボタンよりMT4 EAを無料にて取得可能です。

MT4 EA

ブログランキングにも参加していますので、ページ訪問をきっかけに是非クリックをいただけると嬉しいです。

にほんブログ村 為替ブログ FX初心者向けアドバイスへ にほんブログ村