EAバックテスト入門ガイド【準備編】

pc-glasses

実際にリアル口座でEAを運用する前に、過去の実際のデータ(ヒストリカルデータ)でバックテストを行って、しっかりそのEAのスペックを確認することが重要です。今回は、まずバックテストを行うまでの準備作業を解説していきます。

ヒストリカルデータの入手

まずは、バックテストに用いるヒストリカルデータ(過去データ)を入手します。

一番手軽に利用できるヒストリカルデータは、Meta Traderの開発元であるMetaQuotes社の提供するデータで、MT4のメニュー「ツール」-「ヒストリーセンター」から利用できます。

しかし、上記「MetaQuotes社」が提供するヒストリカルデータは、精度があまり良くないと言われています。ヒストリカルデータを提供しているFX業者はたくさんありますが、より精度の高いバックテストおよび最適化を行うのであれば、実際に本番運用するFX業者のデータを使用するのがベストです。とはいうものの、実際のリアル口座でのEA稼働は複数のFX業者に分散することが一般的ですので、とりあえずは手軽にダウンロードしたいものです。そこで、ヒストリカルデータのダウンロード元として、一般的に広く知られているのがFXDDのデータです。

FXDD
23種類の通貨ペア、1999年頃からのデータです。
http://www.fxdd.com/mt/jp/forex-resources/forex-trading-tools/metatrader-1-minute-data/

各通貨ペアの現在までの1分足データは、Zip形式で約40MB程度です。なお、FXDD以外にもいろいろなサイトでヒストリカルデータを無料でダウンロードできます。

AXIORY
https://www.axiory.com/jp/platform/mt4/historical.html

HistData.com
http://www.histdata.com/download-free-forex-data/?/metatrader/1-minute-bar-quotes
66種類の通貨ペアのヒストリカルデータが無料でダウンロードできます。EUR/USDやUSD/JPYなど主要な通貨ペアは2000年~2002年頃からのデータが入手できます。66種類ということでかなりマイナーな通貨ペアまでそろっています。

Meta Traderの設定変更

既存のヒストリカルデータの削除

まずバックテスト用のMT4をインストールした後、そのMT4に最初から格納されているヒストリカルデータを削除します。 MT4のメニュー「ファイル」から「データフォルダを開く」をクリックして、さらにその中にある「history」フォルダの中のデータを削除します。なおhistoryの中のフォルダ構成は、各FX業者の提供するMT4ファイルによって異なります。

チャートのバーの数を増やす

バックテストでは扱うバーの数が大量なので、MT4のチャートのバーの数を最大値に変更する必要があります。メニュー「ツール」 から「オプション」 、「チャート」タブを開いて、最大バー数、チャートの最大バー数に「9999999999(10ケタ)」と入力して、OKをクリックします。再度「チャート」タブを開くと、最大バー数、チャートの最大バー数それぞれの値が最大値である「2147483647」になっていればOKです。

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

MT4メニュー「ツール」から「ヒストリーセンター」を開きます。

バックテストに利用する通貨ペアの「1 Minute(M1)」をクリックし、「インポート」ボタンをクリックします。ファイル名の横にある「ブラウズ」ボタンをクリック。先ほどダウンロードしたヒストリカルデータを選んで、「開く」ボタンをクリックします。(見つからない場合は、右下の赤枠で拡張子.hstを選択します)。データのレコードが表示されるので、「OK」ボタンをクリック。レコード数が膨大な数字になっていることを確認して、「閉じる」ボタンをクリックします。

なお、データをMT4に反映させるために、MT4の再起動を行う必要があります。

他の時間足データの作成

インポートした1分足のヒストリカルデータから他の時間足(5分足、15分足、30分足、1時間足、4時間足、日足)のデータを作成します。

MT4メニューの「ファイル」から「オフラインチャート」を選択、上記でインポートした1分足のチャートをダブルクリックで開きます。開いたチャートに対して、MT4のナビゲータ・ウインドウから、「スクリプト」の中の「PeriodConverter」をチャートにドラッグ&ドロップし、設定画面のパラメータ「Period multiplier factor」に「5」(5分足指定)を入力し、OKをクリックします。その後同様に「15」「30」「60」「240」「1440」を設定して、それぞれの時間足のデータを作成します。その際に、「PeriodConverterを止めますか?」というポップアップが出ますが、「はい」をクリックして進めます。

なお月足はずれますが、そもそも月足データはバックテストに不要でしょうね。
全ての時間足のデータが作成されていることを確認した後、データをMT4に反映させるために、MT4の再起動を行って、準備作業は終了です。