ここでは、過去データを使ってMT4 EA(Expert Adviser)のパフォーマンスを検証する、「バックテスト」と「パラメータ最適化」の手順を紹介します。
MT4 EAのバックテスト前準備
まずは、バックテスト/パラメータ最適化を行うための前準備です。
EAの設定
検証したいEAは、MT4に正しく設定しておきます。
ヒストリカルデータの設定
バックテストの精度を上げるために、利用するヒストリカルデータ(過去データ)を正しくインポートしておきます。
高精度なヒストリカルデータの入手
まずは、バックテストに用いるヒストリカルデータ(過去チャート)を入手します。
ヒストリカルデータの入手先には、主に次の3つがあります。
MetaQuotes社のデータは精度が悪い
手っ取り早くデータを準備するのであれば、MT4のヒストリーセンターからデータをダウンロードすることができます。
メニュー「ツール」-「ヒストリーセンター」を開く。
バックテストに利用する通貨ペアの「1 Minute(M1)」をクリックし、「ダウンロード」ボタンを押下。
これでMT4の開発会社「MetaQuotes社」が提供するヒストリカルデータをインポートすることができるのですが、データの精度があまり良くないため、バックテストの精度も悪くなってしまいます。
のため、他のFX業者が提供しているデータをインポートするのが一般的で、海外FX業者の「FXDD」、また最近では国内FX業者の「FXTF」のデータがよく利用されています。
海外FX業者「FXDD」のヒストリカルデータ
FXDDのサイトから、必要な通貨ペアのヒストリカルデータをダウンロードします。
例えば、USD/JPYのデータを準備したいのであれば、USD/JPYをクリックします。
すると、「USDJPY.hst」というファイルがダウンロードされます。
国内FX業者「FXTF」のヒストリカルデータ
投資家向けツール・マーケット情報が充実の「FXTF」。
FXTFのマイページから、「FXTF MT4」-「チャートデータ」を開き、必要な通貨ペアのヒストリカルデータをダウンロードします。
FXTFでは、csv形式のファイルがダウンロードされます。
尚、FXTFのヒストリカルデータは、口座開設した会員ユーザーのみ利用することができます。(私もこのために口座開設しました)
インポートの前準備
ヒストリカルデータをインポートする前に、次の準備を行います。
既存のヒストリカルデータを削除
MT4に既に格納されているヒストリカルデータを削除します。
MT4が起動している場合は、MT4を停止。
MT4がインストールされているフォルダの下にある「history」から、該当通貨ペアの「HSTファイル」を削除。
MEMOMT4 build 600番台になり、historyフォルダの場所が次のようになりました。 ⇛ MT4のメニュー「ファイル」から「データフォルダを開く」をクリック。その中にある「history」フォルダ。
注意 history配下のフォルダ構成はFX業者によって異なります。
バーの数を増やす
次に、MT4で扱うバーの数を増やします。
MT4を起動して、メニュー「ツール」 – 「オプション」 – 「チャート」タブを開く。
ヒストリー内の最大バー数、チャートの最大バー数に「9999999999」と入力して、OKをクリック。
再度「チャート」タブを開いて、それぞれの値が最大値である「2147483647」になっていることを確認。
ヒストリカルデータのインポート手順
いよいよ、ヒストリカルデータをMT4にインポートします。
インポート
MT4の画面から、メニュー「ツール」-「ヒストリーセンター」を開く。
バックテストに利用する通貨ペアの「1分足(M1)」をクリックし、「インポート」ボタンを押下。(グレーアウトしている場合は、ダブルクリックすると表示されます)
ファイル名の横にある「参照」ボタンをクリックし、先ほどダウンロードしたヒストリカルデータを選んで「OK」ボタンを押下。(ファイルが見つからない場合は、表示する拡張子を「全て」にして下さい)
インポート前と比べて、データベースのレコード数が増えていることを確認して、「閉じる」ボタン押下。
最後に、データを反映させるために、MT4の再起動を行います。
他の時間足データの作成
インポートした1分足のデータをもとに、5分足から日足までのデータを作成します。
MT4のメニュー「ファイル」-「オフラインチャート」を開く。
インポートした通貨ペアの1分足(ここだとUSDJPY,M1)を選択し、「開く」ボタン押下。
すると、(offline)となっているチャートが開きます。
ナビゲーターから「スクリプト」-「PeriodConverter」をチャートにドラッグ&ドロップします。
MT4の「自動売買」がON、また、「全般」タグが同じ設定になっていることを確認。
「パラメータの入力」タブを開き、「Period multiplier factor」に「5」を設定して、OKボタンを押下。(5分足のデータを作成します)
MT4の「エキスパート」ログを開き、PeriodConverterが◯◯件のレコードを書き込んだ旨のメッセージを確認。
上記同様(PeriodConverterをチャートにドラッグ&ドロップするところから)に、パラメータ「Period multiplier factor」に「15」「30」「60」「240」「1440」を設定して、それぞれの時間足のデータも作成。
その際に、次のようなポップアップが出ますが、「はい」を押下して進めます。
再度、MT4のメニュー「ファイル」-「オフラインチャート」を開き、1分足から日足までのデータが作成されていればOKです。
最後に、MT4を再起動させてデータを反映させれば、ヒストリカルデータのインポート作業は完了です。
より精度の高いバックテストを実施するなら
MT4の自動売買では、EAのパフォーマンスを事前に検証することは非常に重要です。
また、より精度の高いバックテスト/最適化を行うのであれば、実際に本番運用するFX業者のデータを使用するのがベストです。
その中で、最近MT4に力を入れている国内業者の「FXTF」は、業界最高水準のスプレッドなどスペックも高く、各通貨ペアのヒストリカルデータが利用可能なので、バックテスト/最適化の精度を求める方に最適です。