MT4 EAを検証するバックテストとパラメータ最適化の手順

ここでは、過去データを使ってMT4 EA(Expert Adviser)のパフォーマンスを検証する、「バックテスト」と「パラメータ最適化」の手順を紹介します。

MT4 EAのバックテスト前準備

まずは、バックテスト/パラメータ最適化を行うための前準備です。

EAの設定

検証したいEAは、MT4に正しく設定しておきます。

ヒストリカルデータの設定

バックテストの精度を上げるために、利用するヒストリカルデータ(過去データ)を正しくインポートしておきます。

高精度なヒストリカルデータの入手

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

ヒストリカルデータの入手先には、主に次の3つがあります。

MetaQuotes社のデータは精度が悪い

手っ取り早くデータを準備するのであれば、MT4のヒストリーセンターからデータをダウンロードすることができます。

メニュー「ツール」-「ヒストリーセンター」を開く。

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

バックテストに利用する通貨ペアの「1 Minute(M1)」をクリックし、「ダウンロード」ボタンを押下。

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

これでMT4の開発会社「MetaQuotes社」が提供するヒストリカルデータをインポートすることができるのですが、データの精度があまり良くないため、バックテストの精度も悪くなってしまいます。

のため、他のFX業者が提供しているデータをインポートするのが一般的で、海外FX業者の「FXDD」、また最近では国内FX業者の「FXTF」のデータがよく利用されています。

海外FX業者「FXDD」のヒストリカルデータ

FXDDのサイトから、必要な通貨ペアのヒストリカルデータをダウンロードします。

メタトレーダーのヒストリカルデータ – FXDD

例えば、USD/JPYのデータを準備したいのであれば、USD/JPYをクリックします。

FXDD提供のヒストリカルデータ

すると、「USDJPY.hst」というファイルがダウンロードされます。

国内FX業者「FXTF」のヒストリカルデータ

投資家向けツール・マーケット情報が充実の「FXTF」。

FXTFのマイページから、「FXTF MT4」-「チャートデータ」を開き、必要な通貨ペアのヒストリカルデータをダウンロードします。

FXTF提供のMT4ヒストリカルデータ

FXTFでは、csv形式のファイルがダウンロードされます。

尚、FXTFのヒストリカルデータは、口座開設した会員ユーザーのみ利用することができます。(私もこのために口座開設しました)

インポートの前準備

ヒストリカルデータをインポートする前に、次の準備を行います。

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

MT4に既に格納されているヒストリカルデータを削除します。

MT4が起動している場合は、MT4を停止。

MT4がインストールされているフォルダの下にある「history」から、該当通貨ペアの「HSTファイル」を削除。

 MEMOMT4 build 600番台になり、historyフォルダの場所が次のようになりました。 ⇛ MT4のメニュー「ファイル」から「データフォルダを開く」をクリック。その中にある「history」フォルダ。

既存の.hstファイルを削除

注意 history配下のフォルダ構成はFX業者によって異なります。

バーの数を増やす

次に、MT4で扱うバーの数を増やします。

MT4を起動して、メニュー「ツール」 – 「オプション」 – 「チャート」タブを開く。

ヒストリー内の最大バー数、チャートの最大バー数に「9999999999」と入力して、OKをクリック。

最大バー数に「9999999999」と入力

再度「チャート」タブを開いて、それぞれの値が最大値である「2147483647」になっていることを確認。

最大値「2147483647」を確認

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

いよいよ、ヒストリカルデータをMT4にインポートします。

インポート

MT4の画面から、メニュー「ツール」-「ヒストリーセンター」を開く。

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

バックテストに利用する通貨ペアの「1分足(M1)」をクリックし、「インポート」ボタンを押下。(グレーアウトしている場合は、ダブルクリックすると表示されます)

インポートボタン押下

ファイル名の横にある「参照」ボタンをクリックし、先ほどダウンロードしたヒストリカルデータを選んで「OK」ボタンを押下。(ファイルが見つからない場合は、表示する拡張子を「全て」にして下さい)

インポートデータの選択

インポート前と比べて、データベースのレコード数が増えていることを確認して、「閉じる」ボタン押下。

インポート完了確認

最後に、データを反映させるために、MT4の再起動を行います。

他の時間足データの作成

インポートした1分足のデータをもとに、5分足から日足までのデータを作成します。

MT4のメニュー「ファイル」-「オフラインチャート」を開く。

MT4オフラインチャートを開く

インポートした通貨ペアの1分足(ここだとUSDJPY,M1)を選択し、「開く」ボタン押下。

インポートしたデータを開く

すると、(offline)となっているチャートが開きます。

MT4オフラインチャート

ナビゲーターから「スクリプト」-「PeriodConverter」をチャートにドラッグ&ドロップします。

PeriodConverterを実行

MT4の「自動売買」がON、また、「全般」タグが同じ設定になっていることを確認。

自動売買設定がONを確認

「パラメータの入力」タブを開き、「Period multiplier factor」に「5」を設定して、OKボタンを押下。(5分足のデータを作成します)

PeriodConverterで作成する時間足を設定

MT4の「エキスパート」ログを開き、PeriodConverterが◯◯件のレコードを書き込んだ旨のメッセージを確認。

PeriodConverterの正常終了ログ

上記同様(PeriodConverterをチャートにドラッグ&ドロップするところから)に、パラメータ「Period multiplier factor」に「15」「30」「60」「240」「1440」を設定して、それぞれの時間足のデータも作成。

その際に、次のようなポップアップが出ますが、「はい」を押下して進めます。

PeriodConverterポップアップメッセージ

再度、MT4のメニュー「ファイル」-「オフラインチャート」を開き、1分足から日足までのデータが作成されていればOKです。

全ての時間足のデータが作成されていることを確認

最後に、MT4を再起動させてデータを反映させれば、ヒストリカルデータのインポート作業は完了です。

より精度の高いバックテストを実施するなら

MT4の自動売買では、EAのパフォーマンスを事前に検証することは非常に重要です。

また、より精度の高いバックテスト/最適化を行うのであれば、実際に本番運用するFX業者のデータを使用するのがベストです。

その中で、最近MT4に力を入れている国内業者の「FXTF」は、業界最高水準のスプレッドなどスペックも高く、各通貨ペアのヒストリカルデータが利用可能なので、バックテスト/最適化の精度を求める方に最適です。

タイトルとURLをコピーしました