PRを含みます。

長期10年間以上のMT4 EAのバックテストを正確に行う方法

数あるシステムトレードの中でも、MT4の大きな利点の一つは長期間のバックテストが可能な点です。

MT4でEAを使うならまずバックテストをやり方をマスターする事が重要です。よってMT4初心者でもわかるよう細かく解説して見たいと思います。 

 MT4にて10年間以上のバックテストを行う方法

 

MT4バックテスト関してはじめに

バックテストで重要となってくるのが長期のヒストリカルデータですが、MT4提供元のMetaQuotes社の物は抜けが多いと評判が良くなく、EA開発元が一番良く利用しているFXDD社のデータを使用しています。

本来であればEAを稼動するMT4ブローカの長期ヒストリカルデータが有ればベストですが、長期データを提供しているブローカは殆どありません。(国内MT4ブローカFXTF MT4が2012年1月以降、AlpariUKが10年以上のデータ有り)

長期バックテストを行い、リアル口座にてテスト稼動を行い、その後にその期間のバックテストを行い、それらがほぼ同様の結果であれば、その長期のバックテストは信頼出来ると考えて良いでしょう。

しかしながらEAによってはバックテストと結果が大きく異なるEAや、バックテスト自体意味をなさないタイプのEAもある事を認識しておいて下さい。

例えば指標発表時の様に大きく値が動いた時にエントリーするEA等は、大きなスリッページが発生したり、スプレッドが大きく広がっていたりしてエントリーポイントがバックテストと大きく異なったり、エントリーできなかったりするは当然で、これは当然バックテストで測れるものではありません。

バックテストではスリッページは発生せず、一時的なスプレッドの広がりは考慮されず、約定拒否も発生しません。また高速でモディファイ(ストップ、リミットの変更)を繰り返すEAなんかも同様です。この様なEAはリアル口座でのフォワードテスト状況のみが信用出来るデータとなります。

しかしながら大半のEAは長期バックテストでパフォーマンスを検証する事が可能で、特にEA発売前のバックテスト結果と発売後のバックテスト結果が近い数値を出せていれば、より長期のバックテスト結果が有効な判断材料として使えるでしょう。

 

 

バックテスト準備編

まずはFXDDメタトレーダーをインストールしデモ口座を開設しましょう。

バックテストを行うに当たりFXDDデモ口座を開設します。当然デモ口座もリアル口座も無料で口座開設出来、口座維持管理料も無料です。

ここでバックテストだけで使うなら同じヒストリカルデータを使うのでどちらでも同じ結果となります。

FXDDデモ口座の有効期限は3ヶ月ですがFXDDに申請すれば無期限化が可能です。下記手順でメール1本で完了です。 

デモ口座の無期限化

MT4デモ口座でしたら無期限化が可能です。すべてのポジションがクローズしている事が確認出来ましたら下記のフォーマットにて jp@fxdd.comまでメールにてご申請下さい。

————————————————————————————-
デモ口座番号:
口座種類(ドル口座/円口座):
お名前(ローマ字):
メールアドレス:
お持ちのライブ口座:
————————————————————————————-

また無期限化しなくても何度でもデモ口座は開設が可能で、設定やヒストリカルデータもそのまま使用可能です。 

 

FXDDメタトレーダーインストール方法及びデモ口座開設手順はコチラの記事を参照して下さい。

 

 

ヒストリー内バー、チャートの最大バー数を最大にします。

1.MT4を起動し「メニューバー」の「ツール」の「オプション」を開きます。

下記画面の「チャート」のタブをクリックし「ヒストリー内最大バー数」と「チャートの最大バー数」に「99999999999999」と9を最後の桁まで入力し「OK」をクリックします。

ヒストリー内バー、チャートの最大バー数を最大にします

 

 

 

2.再度開いて下記の様になっていればOKです。

オプション画面 2 

 

 

 

MT4より半端なヒストリカルデータを削除します。

1.「メニューバー」の「ファイル」の「データフォルダを開く」を開き「history」を開きます。

MT4操作画面1

 
 history
 

 

 

2.「history」の中の例えばデモ口座であれば「FXDD-MT4 Demo Server」を開きます。リアル口座であれば口座に該当する番号の「Live Server」を開きます。

Demo Server
 
 
 
 
3.名前順に並び替え、該当する通貨ペア、ここでは赤枠のEURUSDから始まる「hst」ファイルを削除します。 (以降EURUSDのヒストリカルデータを取込む場合の手順で説明します) 
EURUSDヒストリカルデータ
  

ここでMT4を一度再起動して下さい。

(全てファイルの説明は拡張子を表示させた状態で説明しますので、ウィンドウズ側で拡張子を表示する設定にして下さい。)

 

 

FXDDよりヒストリカルデータをダウンロードします。

1.下記FXDDホームページよりヒストリカルデータをダウンロードします。

FXDDメタトレーダー1分足ダウンロードページ

FXDDヒストリカルデータダウンロードページ

 

上記ページで必要な通貨ペアをクリックするとダウンロードが始まります。

 

 

2.ダウンロードした圧縮ファイル「EURUSD.zip」をダブルクリックし解凍されたファイル「EURUSD.hst」を任意の場所にコピーします。(ダウンロードフォルダのままでもOKです)

 EURUSD.zip

 

 

 MT4に「EURUSD.hst」ヒストリカルデータをインポートします。

 1.「ツール」の「ヒストリーセンター」をクリックし、下記「ヒストリーセンター」を開きます。

 ヒストリーセンター

 

 ヒストリーセンターの通貨ペアより該当する通貨ペア「EURUSD」をクリックし「1分足」をクリックし「インポート」をクリックします。

 

 

2.次に「インポート」画面の「参照」を開き、任意の場所に保存した「EURUSD.hst」をダブルクリックします。 

インポート画面

 

 

 

3. スクロールバーを一番下まで下げ2005年1月からのデータが入っていればOKです。「OK」をクリックして下さい。

インポート画面2

 

 

 

 4. 「ヒストリーセンター」画面に戻りスクロールバーを下げ、こちらも2005年1月のデータになっていれば「閉じる」をクリックして下さい。

ヒストリーセンター画面2

 

これで2005年1月10日以降のEURUSD1分足の取込みが出来ました。

ここで再度MT4を再起動して下さい。

 

 

 5分足~日足までのデータを作成します。

 1.次に「メニューバー」の「ファイル」の「オフラインチャート」を開きます。

オフラインチャートリスト

 

 「オフライン・チャートリストの画面より「EURUSD,M1」を選択し、「開く」をクリックして下さい。

 

 

2.赤枠の様にEURUSD,M1(offline)と表記されたチャートが開きます。

ナビゲーターのスクリプトより「PeriodConverter」をチャートにドラッグして下さい。

オフラインチャート

 

 

 

 3. 次に開く「Script-PeriodConverter」画面の「全般」タブの設定を下記と同様にチェックを入れて下さい。

Script-PeriodConverter

 

 

 

 4.次に5分足のデータを作成します。「Script-PeriodConverter」画面の「パラメーター入力」タブの「値」に「5」と入力し「OK」をクリックします。

Script-PeriodConverterパラメータ入力

 

 

 

5.次に15分足を作成します。

 15分足以降も同様の作業を行います、再度ナビゲーターのスクリプトより「PeriodConverter」をチャート(offline)にドラッグします。 

PeriodConverter

 

次からは「PeriodConverter」をチャート(offline)にドラッグすると上記画面が出ますが「OK」をクリックします。 

同様に「Script-PeriodConverter」画面の「パラメーター入力」タブの「値」に「15」と入力し「OK」をクリックします。

 

6.これを繰り返します。

30分足はパラメーターの値は「30」

60分足はパラメーターの値は「60」

4時間足はパラメーターの値は「240」

日足はパラメーターの値は「1440」を入力します。

 

 

7.確認の為、「メニューバー」の「ファイル」の「オフラインチャート」を開き、EURUSDの全ての時間足で2005年1月10日から直近1~3日前までのデータになっていればOKです。 

 オフラインチャートリスト 2

 

ここで再度MT4を再起動して下さい。

これでEURUSDのヒストリカルデータの取得は完了です。 

 

 

バックテスト用MT4と取引用MT4は別けましょう。 

長期のヒストリカルデータを取込んだMT4は動作が重くなり、メモリも大量に消費します。よって取引用MT4とバックテスト用MT4は別けて下さい。

同一ブローカのMT4を複数インストールする方法はコチラの記事を参照して下さい。 

また取引用MT4はVPSで稼動する事をお勧めします。

参考記事 ⇒ MT4が使えるVPS、Windowsデスクトップクラウド比較表

尚ヒストリカルデータを取込んだ後、期間が経ってバックテストを行う場合、1ヶ月ぐらいであれば、各時間足のチャートを開きスクロールすれば不足分のデータが取込まれますが、2ヶ月を超えて来ると歯抜けの状態になる事がある為、再度一から取り込みする事をお勧めします。

 

 

 

 バックテストのやり方 

ストラテジーテスター及びEAパラメータの設定

1.「メニューバー」の「表示」より「ストラテジーテスター」を起動します。下記アイコンからも起動出来ます。

ストラテジーテスター

 

 

 

2.ストラテジーテスターの設定を行います。 

ストラテジーテスター画面

 

①EAをプルダウンより選択します。

②EAに対応する通貨ペアをプルダウンより選択します。

③バックテストの精度を選択します。基本的には「全ティック」を選択します。

④EAの対応時間足をプルダウンより選択します。

⑤バックテスト時スプレッドを入力します。2.0Pipsであれば「20」と入力します。

⑥「期間を指定」にチェックを入れバックテスト期間を入力します。

⑦「エキスパート設定」でEAの設定を行います(後で説明)

 

ここでの注意点は⑤スプレッドですが、スリッページやスプレッドの一時的広がりも考慮して、稼動するMT4ブローカのスプレッドより広めに設定する方が実際の取引に近い結果が出ます。

またスプレッドを変えてテストするとEAによっては大きく成績が異なる結果となり、いかにスプレッドが重要かがわかります。

 

 

3.「テスト設定」画面の設定

テスト設定画面

 

先程の⑦番のエキスパート設定を行います。テスト設定タブは上記のようにデフォルトでOKです。

 

 

4.「パラメータの入力」画面の設定 

 パラメータ入力画面

 

上記はWhite Bear Z USDJPYのパラメータですが、EAによりかなり異なる為、EAのマニュアルを参考にして下さい。エキスパート設定マニュアルにはEAパラメータと記載されてる事が殆どです。

EAのデフォルト設定値でテストする場合でも最低限の設定は必要です。

バックテストを行う場合、複利機能「mm」は「false」(OFF)にして固定ロットでバックテストを行う事をお勧めします。複利機能を使うと稼動ロット当たりの最大ドローダウンがわかり難い為、複数のEAでポートフォリオを組むの場合、リスク管理が極めて困難です。基本的にポートフォリオを組む場合、最大ドローダウンより取引数量を決めるのが基本となります。よってどのEAも取引数量「lots」は0.1(1万通貨)にすると最大ドローダウンの把握がしやすくなります。

次にGMTの設定です。最近はこの手のタイプが多くなってきました。バックテストを行う場合は「AutoGMT」は基本的に無効なので「false」にします。GMTはバックテストを行うMT4ブローカのサーバー時間を入力します。FXDDは冬時間GMT+2、夏時間GMT+3の為、「WinterGMTshift」に「2」、「SummerGMTshift」に「3」を入力します。「NY_SummerTime」FXDDは「True」にして下さい。

 

 

バックテストを行います。

1.設定が完了しましたら、ストラテジーテスターの「スタート」をクリックします。 

 バックテストを行います。

 

下記のメータが最後まで行けば終了です。 時間はEAによって様々です。当然PC性能も影響します。10年分だと15分~4時間、EAによっては数日かかるものもあります。

下記のメータが最後まで行けば終了です。

 

 

 

Strategy Tester Report(バックテスト結果)の見方 

1.ストラテジーテスターの「レポート」をクリックします。

Strategy Tester Report(バックテスト結果)の見方

 

 

特に重要な項目は「プロフィットファクター」、「純益」とそれに対する「最大ドローダウン」です。

プロフィットファクター1.5以上であれば十分使えるEAと言えます。しかし2.0以上は、かなりのカーブフィッティングの可能性があり、発売後の期間のバックテストを別途行い、未来の相場にも順応出来るか判断する必要があります。

最大ドローダウンは純益見合いで、上記の場合1万通貨稼動で11年間で5934ドルの純益で1年間平均約540ドルの純益となります。一見354ドルと最大ドローダウンは低く見えますが、最大ドローダウン期からの回復に半年以上かかる事が想定され、これを受け入れる事が出来るかの判断となります。しかしこれくらいは普通で問題無しです。

EA同士のロジックが重ならず、最大ドローダウンが同じになるようにポートフォリオの他のEAと稼動ロットに差をつけると安定した運用が可能となります。

次に重要なのが「取引回数」、平均「勝トレード」「敗トレード」、最大「敗トレード」でしょうか、めたろうはこの部分を重視しますが人によって変わるかもしれません。

あとモデリング品質は90%にしたいところですが89.99%となってます。これ以上下がるとバックテストの信頼性が低い為、ヒストリカルデータを取込み直してやり直しです。

 

 

2.損益曲線は「グラフ」をクリックすると確認出来ます。

Strategy Tester Report損益曲線

 

White Bear Z USDJPYの損益曲線ですが、見事な右肩上がりで大きな谷はありません。特に発売後のカーブフィッティング出来ない期間を良く見る様にして下さい。 

 

 

3.ポジション取りの確認は「セッティング」の「チャートを開く」をクリックします。

 チャートを開く

 

 チャート上に全てのポジション取りが表示されます。

ポジション取り

 

あまりに自身の感性と合わないポジション取りのEAは見ていて疲れます。

なんで~って

使わないか、取引を見ないで使うか、新たな発見の為に取引の様子を観察するか!

 

 

Strategy Tester Report(バックテスト結果)の保存方法

1.レポートの空いてるスペースで右クリックのサブメニューより「レポートの保存」が出来ます。

Strategy Tester Report(バックテスト結果)の見方

 

ファイル名は何でも良いのですが、めたろうはEA毎にフォルダを作成し、ファイル名は「2005-2015-2.68-5934-354-1.5-2036」 の様に「テスト期間-プロフィットファクター-純益-最大ドローダウン-バックテスト時スプレッド-取引回数」+「設定を変えた場合その数値」のファイル名で、後からファイルを開かなくても簡単に比較出来る様にしてます。

 

2.バックテスト結果は下記の様に保存、表示されます。 

バックテスト結果

 

以上でバックテストは終了です。 

最適化(オプティマイズ)の説明も入れようと考えてましたが記事が長くなりすぎたので、別記事にしたいと思います。

 

MT4 EAパラメータの最適化を行う方法 カーブフィッティングに気をつけろ!

 

 

最後に

とにかくFX自動売買での運用は最大ドローダウンが重ならないようにロジックの異なるEAでリスク分散する事につきます。上記バックテストで使用したWhite Bear Z USDJPYは凄く優秀ではありますが、これとて最大ドローダウンにハマれば回復に半年を要します。

どれかがドローダウン期に入っても他のEAがカバー出来るようポートフォリオを構築出来れば勝ちです。

いくつかのEAの調子が崩れても気にならない様にしてしまうのです。

対照的に悪いパターンは調子が崩れると止める、調子が良くなったら動かす、調子の良い所は少ししか稼動出来てなく、ドローダウンだけしっかり食らうパターンです。

そんなに都合よく良い時期だけを摘まんで稼動なんか出来ません。

ドローダウンもしっかり受け止めて、バタバタせずじっくり取り組むのがベストです。

 

 

 

MT4を最高の環境で使おう!

MT4口座比較記事はこちら

メタトレーダースプレッド比較 MT4最強口座はコレ!

国内MT4と海外MT4のスプレッド比較をしました!