MT4でEAのバックテストを行う方法
バックテストは、EA開発者なら当然のこと、使用するトレーダーにとっても大切なテストです。
初心者の方だからと言って、やらなくていいというものではありません。使用するEAがどんなパフォーマンスなのかを知る良いチャンスですので、是非試してみてください。
上の2人の会話のように、購入したEAのスプレッド許容量が狭いと、実際にテストを走らせても、真っ白な結果しか出ません。(私もかつてこれで半日費やしたことがあり。)
以下の手順を参考に、是非バックテストを行ってみてくださいね。ご自身の環境と思いもよらない違いが結果に出てくるかもしれませんよ。
MT4 EAバックテストの初期設定
MT4でバックテストの設定をしていきましょう。バックテストはEAだけでなく、インジケーターの確認をすることもできます。
ヒストリー内の最大バー数とチャートの最大バー数の設定
「ツール」>「オプション」へと進み、チャートタブを開きます。
ヒストリー内の最大バー数と、チャートの最大バー数を最大に設定するために、 99999999999999と入力して保存します。
OKボタンで保存をした後、再度、オプション画面を開くと、MT4の方で自動で、最大数をセットしてくれます。
[補足 1本のバーは何を意味している?]
このヒストリーバーはデフォルトでは、512000と表示されています。1本は1分足のチャートに該当するので、512000 ÷ (24時間×60分)=355日。FX市場の年間取引可能な日数は約245日ほどとなるため、1.45年で大体1年5か月分となります。 FX取引可能カレンダーはコチラ
エキスパートアドバイザで自動売買を許可
同じく、「ツール」>「オプション」へと進み、「エキスパートアドバイザ」タブを開きます。
これは、EAによっては、DLLやWebRecquest必要な場合があるので、チェックをしておきましょう。
ヒストリカルデータを入手する
ヒストリカルデータ議論は尽きない。
ここがみなさんの頭を悩ませるところですので、一度整理をしましょう。
業者別ヒストリカルデータの比較
Alpari | DUkascopy | tickstory | FXCM | GMO | FXDD | MetaQuotes | HistData | |
信頼性 | 高い | 高い | Dukascopyから取得 | 高い | 高い | やや低い | 低い | 不明 |
簡単 | 普通 | 普通 | 普通 | 面倒 | 時間がかかる | 簡単 | 超簡単 | 簡単 |
期間 | 1999- | 2003- | 2001- | 2007- | 2005- | 1971- | 2000- | |
有料・無料 | 無料 | 無料 | 有料 | 有料 | 無料 | 無料 | 無料 | 無料 |
口座開設 | デモ必要 | デモ必要 | 不要 | 不要 | 必要 | 不要 | 不要 | 不要 |
特徴 | FXCM同様人気 | スイス銀行グループの会社。NDDデータ。 | Dukascopyから取得できるが面倒な方はこちら。 | 精度が一番高いといわれている。 | GMT+9(日本時間)
口座登録して取得。 |
期間と無料が魅力MetaQuotesのデータを一部流用のためやや信頼度が低い。 | MT4から直接ダウンロードが可能。データの信頼性が低い。 | 海外の有志メンバーで作成。精度は不明。海外サイトだと人気 |
なぜ、ヒストリカルデータに多くの開発者が頭を悩ませるかというと、その精度が100点のデータがないということです。
MetaQuotesのデータがきれいだったら、誰しもがこの議論をせずに使用しているでしょうが、残念ながらMetaQuotes社のヒストリかるデータは不足が多いといわれています。
続いてFXDD。こちらは過去のデータでMetaQuotesのデータを流用していることもあり、精度が高いかというと、EA開発者は使用しないケースが多いです。
EAの開発者に人気なのは、FXCM、Alpari、Dukascopyです。国内証券をターゲットにしたEAはGMOも人気です。
この辺りは、口座解説か有料等の違いがありますので、気に入ったものを使用するのがよいでしょう。会社名ごとに比較検索すると、考察記事が無限に出てきます。
結論 EAトレーダーのバックテストを行うなら
いったん出し切りましたので、結論です。
最初は使用するならFXDDがよいかと思います。精度にやや不安が残るものの、完全におかしいというわけではありませんから。
また、導入コストという観点でも、無料で使いやすいことからこちらをお勧めします。
ほんと一長一短ですね。しかも、この議論下に一番大事な、運用する口座のヒストリカルデータで検証というのがないですから。EA提供者も、結局いずれかのヒストリカルデータを使って検証して、トレーダーはその口座含む複数の口座の中から選ぶわけですからね。
バックテストの結果はやはりどこまでいっても、100%保障とはなりません。
FXDDのヒストリカルデータをダウンロード
FXDDのヒストリーデータのダウンロードサイトに行きます。
今回はUSDJPYを使ってみましょう。USD/JPYのリンクをクリックするとダウンロードします。
データフォルダに入った過去チャートデータを削除
続いて、「ファイル」>「データフォルダ」をクリックします。
「history」>「Server名」フォルダへ移動します。
※ Server名としては、各FX会社事に異なります。「FX-MT4 Live Server 3」、「FX-MT4 Demo Server」などのフォルダ名が付けられています。
ここにある、USDJPYデータを削除します。
ヒストリカルデータをMT4にインポート
「ツール」>「ヒストリーセンター」へ行きます。
ヒストリーセンターからUSDJPYを探し、1分足をクリックします。
この時、もしデーベースにレコードがある場合は、レコードを選択して削除をしておいてください。
下のように何もなければ大丈夫です。
インポートボタンをクリックし、USDJPY.hstデータをインポートします。
以下のように取り込みができたらOKを押します。
インポートの際に、All Filesを選んでください。デフォルトだと、ファイルが表示されません。
以下がデータが全て入った状態です。2005年からデータが全部入っていますね。
ここまでできたら、一度MT4を閉じます。
他の時間足のヒストリーデータをMT4で作成する
前回までは、1分足だけを取り込んだ状態になるので、5分足、15分足、30分足、1時間足、4時間足、日足までのデータがありません。
ここでは、取り込んだ1分足を各時間足に成形する作業を行います。
Period Converter ALLをダウンロードしてインストール
今から5分足他、各時間足を作成するのですが、MT4でデフォルトで使用できるツールは、5分足、15分足・・と合計7回も作業を行う必要があります。
1通貨ペアならいいのですが、複数あると面倒くさいので、ここは一括でやってくれるツールを導入しましょう!
Period Converter ALLのダウンロードサイトへ行きダウンロードします。
ダウンとロードしたら、「ファイル」>「データフォルダ」>「MQL4」>「Scripts」へ行きます。
ダウンロードしたperiod_converter_ALL.mq4を、このフォルダへドラッグアンドドロップします。
MT4を再起動しましょう。(または、ナビゲーター>スクリプト> period_converter_ALL を更新)
オフラインチャートを開いて各時間足を作成
「ファイル」>「オフライン・チャート」から、オフラインチャートを開きます。
USDJPY,M1のデータを選択して、開くをクリックします。
USDJPY,M1(Offline)というオフラインチャートが開きます。
次に、ナビゲーター>スクリプトから、 PeriodConverterAllTimeframesを選択してUSDJPY,M1(Offline)チャートにドラッグアンドドロップします。
日足も欲しい場合は、ConverterD1をTrueにします。
完了したら、「ファイル」>「オフラインチャート」を開いてみましょう。
赤枠のように、各時間足のデータができていたらMT4を再起動させて完成です!
MT4でEAをバックテストしてみる
MT4のストラテジーテスターでEAのバックテストを実行
さて、いよいよバックテストです。
バックテストは、ストラテジーテスターを表示して実行します。
まずは、簡単に動かしてみましょう。
- 使用したいEAを選択
- EAで使用する通貨を選ぶ
- EAで使用する時間足を選ぶ
以上が、セットできたらスタートを押してみます!!
数分すると「ピプーッ!!」という音とともに完了します。
完了後、タブを見てみると、結果、グラフ、レポートが表示されます。
レポートタブで右クリック、「レポートの保存」をすると・・・
テストを行っても結果が白紙の場合
利用している口座のスプレッドが、EAの許容スプレッドを超えている可能性があります。
スプレッドを現在値から低くするか、EA側の許容スプレッドを上げてください。
Flashes usdjpyのEAの初期許容スプレッドは1.5となります。
こちらを1.6以上に変更してテストしてみてください。
ストラテジーテスターの各種パラメータ
各項目は以下の通りとなります。
項目 | 説明 |
---|---|
EA(エキスパートアドバイザー) | 使用するEAを選択します |
通貨ペア | 通貨ペアを選択します |
モデル | 使用する価格の種類を選択します。始値のみが早いですが、より正確を求める場合、全ティックを選択します。 |
期間を指定 | 期間を設定します |
ビジュアルモード | バックテスト状況がチャート上に表示されます |
エキスパート設定 | バックテストの詳細やパラメーターを設定します |
通貨ペアのプロパティー | 通貨ペア情報を表示します |
チャートを開く | 選択した通貨ペアのチャートを表示します |
エキスパート編集 | Meta Editorを起動し、選択したEAを編集します |
最適化 | 一つのパラメータだけでなく、複数のパラメータを検証します。 |