MT4のEAをバックテストする手順|海外FX

MT4EAバックテスト解説アイキャッチ
  • URLをコピーしました!

MT4でEAをバックテストするには何が必要?

バックテストの手順を詳しく知りたい

バックテストのトラブルを解決したい

ここではMT4でのEAバックテスト手順をわかりやすく解説。

1億時間以上バックテストを実行した経験から、バックテストの本質について理解できる記事になっている。

バックテストで起きる不具合や、こまった時の対応も紹介。

最後まで読むことで環境の設定からトラブル対応まで、MT4のEAバックテストについてすべてご理解いただける内容となっている。

目次

EAをバックテストするメリットとデメリット

バックテストとは、過去のチャートからEAの性能を評価すること。MT4のツール「ストラテジーテスター」で条件を設定、擬似的な取引を実行し、EAの性能を評価できる。

バックテストはあくまでも擬似的な取引であり、リアル取引の状況を完全に再現することは不可能という前提がある。

相場の不確実な動きに対し、機械的なEAの取引で利益をいくら残せるのか?長期間で検証できる。リアル取引で何十年とかかる検証も、バックテストであれば短期間で性能を評価できるのでメリットは大きい。

デメリット

デメリットはバックテストでしか勝てないようなEAを追い求める危険性があること。過去のチャートは確定しているため、それに合わせて利益を出すのは難しくない。つまり、バックテストで良い成績をだしたとしても、リアル取引で同じようにいくとは限らないのだ。

バックテストでの成績を追い求めた結果、カーブフィッティングしたEAはざらにある。バックテストの結果に過度な期待は禁物だ。

バックテストではスプレッドの変動、スリッページ、約定速度が考慮されていない。
活用するにはリアル取引とは大きく違う環境だと理解が必要だ。

MT4でEAをバックテストする手順

STEP
MT4でバックテストする準備
  1. EAをMT4へセットする
  2. ヒストリー内の最大バー数を上限に設定
  3. ヒストリカルデータのダウンロード

MT4はバックテスト前の準備が必要。

STEP
ストラテジーテスターの設定

MT4のストラテジーテスターウインドウを開きバックテストの設定。

STEP
エキスパート設定

バックテストのEAに条件の設定が可能。

STEP
バックテスト開始

MT4バックテストする準備

まずはMT4でバックテストの準備から。このリンクからMT4をダウンロードできるので任意のブローカーから入手。

EAをMT4のデータフォルダへ移動する

MT4のメニューから「ファイル」>>「データフォルダを開く」と操作しMT4のデータフォルダを開く
データフォルダ内の「MQL4フォルダ」>>「expertsフォルダ」の順にアクセス、EAファイルを移動。

ヒストリー内の最大バー数を上限に設定

ヒストリカルデータをダウンロードしてバックテスト期間を長くするが、その前に最大バー数の設定を上限まで引き上げる。ヒストリー内の最大バー数を上限まで引き上げていないと、わざわざヒストリカルデータをダウンロードしても最大の期間を適用できない。

ヒストリカルデータをダウンロードする前には必ず、ヒストリー内の最大バー数を上限までに設定しよう。

Ctrl+O>>「チャート
または「ツール」>>「オプション」>>「チャート」の順でヒストリー内の最大バー数を設定

MT4_オプション_最大バー数
MT4のオプション、チャート設定画面

ヒストリー内の最大バー数は2147483647が最大となるが、最大を超える数値を入力すれば自動的に最大値が設定される。

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

MT4のヒストリーセンターからヒストリカルデータをダウンロードできる。ダウンロードできるデータはMetaQuotes社にデータのある銘柄のみとなる。
FX通貨ペアのほとんどはダウンロード可能だが、CFDはダウンロードできない銘柄もある。

ツール」>>「ヒストリーセンター」から、
またはショートカットのF2キーでヒストリーセンターを開く。

バックテストに使う通貨ペアを選びダウンロード。ヒストリカルデータの期間は選べず、すべてのデータがダウンロードされる。

ヒストリーセンターダウンロード
ヒストリーセンターからヒストリカルデータをダウンロード

どの時間足を選択してもすべての時間足でダウンロードされる仕様となっている。

FXブローカーからダウンロード

海外FXブローカーのAXIORYTradersTrustではヒストリカルデータを提供している。
MT4は外部ヒストリカルデータのインポートができるため海外FXブローカー提供のヒストリカルデータも利用できる。

FXブローカーが提供するヒストリカルデータは正確でバックテストの質を高める効果が期待できる。
しかし期間が数年と短いためMetaQuotesのヒストリカルデータとの併用がおすすめだ。
インポートするヒストリカルデータは上書きされるためMetaQuotesのデータと併用が可能。

ストラテジーテスターの設定

MT4のバックテストには「ストラテジーテスター」を使用する。

Ctrl+Rまたは「表示」>>「ストラテジーテスター」で開く。

EAに条件を設定し、スタートでバックテストが開始。バックテストにかかる時間はEAの仕様やテスト期間で変動する。

無駄なテストで時間を浪費しないよう、ストラテジーテスターでのテスト条件は慎重に設定したい。

MT4_ストラテジーテスター
MT4ストラテジーテスターのウインドウ
項目内容
①EA選択バックテストするEAを選択する。
②通貨ペア選択バックテストする通貨ペアを選択する。事前にヒストリカルデータをダウンロードしておく。
③モデルヒストリカルデータの使用範囲を選択できる。全ティック推奨。
期間バックテストする時間足を設定する。EAの仕様に合わせる。
⑤スプレッドバックテストの売買にかかるスプレッドを設定する。
⑥期間を指定バックテストする期間を指定する。
⑦ビジュアルモードバックテストの取引がチャートに出力される。
⑧エキスパート設定バックテストするEAの設定。
⑨最適化複数のエキスパート設定をテストして最適な条件を抽出する。
ストラテジーテスターで設定できる項目

狭すぎるスプレッドはバックテスト結果を狂わせる

ストラテジーテスターのスプレッド設定がリアル取引よりも狭いスプレッドに設定すると、勝てなかったEAが勝ってしまうEAになるロジックもある。
EAのロジックによるが、狭すぎるスプレッド設定はEAの性能を見誤る可能性が高い。

ストラテジーテスターのスプレッドはEAの性能に直結する設定であり、リアルと同等、またはリアルよりも少し大きめの値がおすすめだ。
ストラテジーテスターで設定できるスプレッドの単位はポイントで、主なFX通貨ペアでの1ポイントは0.1pipsとなるので覚えておこう。

MT4_ストラテジーテスター_スプレッド
ストラテジーテスターではスプレッドを自由に設定できる

モデル

MT4_ストラテジーテスター_モデル
ストラテジーテスターのモデル設定

モデルでヒストリカルデータを使用する範囲の選択が可能。
全ティック、コントールポイント、始値のみ、の3種から選択できる。
全ティックはすべてのデータを使用するため信頼度が高い。
続いてコントロールポイント、始値のみ、の順。始値のみではEAのロジックで始値以外のデータを利用しているとテストとして機能しないので注意。
全ティック以外でのバックテストは時間短縮のメリットがあるが、信頼性は大幅に減少すると理解しておこう。

期間

MT4_ストラテジーテスター_期間
ストラテジーテスターの期間設定

EAが取引する時間足を設定する。
EAによってはセットする時間足が仕様で決められている。
決められた時間足以外ではバックテストできないEAもあるので注意。

期間を指定

MT4_ストラテジーテスター_期間を指定
ストラテジーテスター期間を指定

バックテストする期間を指定する。
どんなに軽い処理のEAでも10年以上のバックテストとなると数時間かかる。
一度に長い期間とせず1~2年単位で区切ると時間効率が上がる傾向にある。
長期間のバックテストであれば試す価値はある。

ビジュアルモード

MT4_ストラテジーテスター_ビジュアルモード画像
ストラテジーテスタービジュアルモード設定

ストラテジーテスターの設定でビジュアルモードにチェックを入れるとバックテストがチャートに描画される。
EAの取引を可視化できるメリットはあるが、バックテスト完了に時間がかかる。

ビジュアルモードでチェックしたい期間を事前に絞れば効率のよいバックテストになる。
ビジュアルモードはスライダーで再生速度を変更できるが、微調整はできない仕様なので諦めよう。

MT4_ストラテジーテスター_ビジュアルモード_チャート
ストラテジーテスターのビジュアルモードでEAの動作を可視化できる

エキスパート設定

  • テスト設定
    • 初期証拠金
    • ポジション
    • 最適化パラメータ
  • パラメーターの入力
    • 使用するEAごとのパラメーターを設定
  • 最適化
    • 最小口座残高
    • 最大利益
    • 最小証拠金レベル
    • 最大ドローダウン
    • 連敗
    • 連敗トレード
    • 連勝
    • 連勝トレード
MT4_ストラテジーテスター_エキスパート設定_テスト設定
ストラテジーテスターエキスパート設定|テスト設定
MT4_ストラテジーテスター_エキスパート設定_最適化
ストラテジーテスターエキスパート設定| 最適化

エキスパート設定ではEAの条件を設定。

テスト設定で初期証拠金を設定。
パラメーターの入力で設定できる項目はEAによって違う。
最適化では選択した項目についてパラメーターを変化させ、それぞれの結果を比較できる。

最適化の詳細は後述している。

バックテスト開始と終了

ストラテジーテスターのスタートをクリックでバックテスト開始。
みどり色ゲージの右端移動でバックテスト完了。

バックテストの最適化について

エキスパート設定のパラメーターから値の組み合わせを探れるのが最適化だ。
インジケーターの値、ロットサイズなどからパラメーターの組み合わせを比較できる。
組み合わせが多いと試行回数も増えるためバックテストに時間がかかる。

また、バックテスト試行期間が短い場合にはカーブフィッティングの可能性が高くなる。
最適化でパラメーターを探るのであれば、長期間での試行を推奨する。

取引内容がチャートの特定部分に対してのみ通用している状態

STEP
パラメーターの入力
MT4_ストラテジーテスター_エキスパート設定_最適化パラメーター入力
バックテストするEAのパラメーター

パラメーターの入力では各項目に対してスタート、ステップ、ストップ、を設定できる。
最適化したい項目を選択し、値の幅をスタートとストップで設定できる。
スタートの値からステップの値ごとに増加してストップの値までを検証する、といった流れになる。
画像にある例の場合、複利リスク値(%)にチェックがあり最適化の対象となる。

最適化ステップ説明イラスト
最適化のイメージ

最適化:スタート4.0、ステップ2.0、ストップ12.0のイメージ

スタートが4.0%でストップが12.0%のため4.0~12.0%までの複利リスク値(%)で最適な数値を検証できる。
4.0~12.0%までをステップで指定した2.0刻みで検証し、4.0、6.0、8.0、10.0、12.0、でそれぞれの結果が出ることとなる。

STEP
最適化の項目を選択
MT4_ストラテジーテスター_エキスパート設定_最適化入力

最適化の結果、変化について結果を知りたいかを指定できる。

  • 最小口座残高
  • 最大利益
  • 最小証拠金レベル%
  • 最大ドローダウン
  • 連敗
  • 連敗トレード
  • 連勝
  • 連勝トレード

最大利益と最大ドローダウンについて最適化した結果を知るには、最大利益と最大ドローダウンにチェックを入れる。

STEP
バックテスト実行
MT4_ストラテジーテスター_最適化バックテスト実行中
最適化のバックテスト

最適化のバックテストは通常よりも試行回数が増えるため時間がかかる。
試行回数、期間はバックテスト時間が増える要因になる。
最適化では終了予定の時間が表示される。

STEP
最適化の結果
MT4_ストラテジーテスター_エキスパート設定_最適化結果
バックテスト終了後の最適化結果

バックテスト後に最適化結果タブから最適化の結果を表示できる。
項目を選んでソート可能。

画像の場合、複利リスク値12.0%を始めとし、10.0、8.0、6.0、4.0の順で獲得利益が多い結果に。
ドローダウンは逆順に多い結果とわかる。

時間がかかるバックテスト

処理の重いインジケーターを使っているEAのバックテスト

ビジュアルモードのバックテスト

期間の長いバックテスト

最適化バックテスト

処理の重いインジケーターを使っているEAのバックテストは時間がかかる

複数のインジケーターを使用、処理の重いインジケーターを使用しているなど、EAの仕様によってバックテスト時間は変化する。

ビジュアルモードのバックテストは時間がかかる

ビジュアルモードはチャート描画の処理がありバックテストに時間がかかる。
チャートを見る必要のないバックテストではビジュアルモードオフが良い。

期間の長いバックテストは時間がかかる

設定期間が一定を超えるとバックテストは処理が遅くなる。
たとえば10年間のバックテスト1回と、10年間を2年ごとに分けた5回のバックテストとでは同じ時間にならない。
MT4では長い期間を一度にバックテストすれば処理に時間がかかる。

最適化バックテストは時間がかかる

最適化は設定項目が多く、期間と合わせて掛け算でバックテスト時間が増える。

MT4でバックテストしたEAのレポートを検証する

バックテスト完了でストラテジーテスターレポートを保存できる。
やり方はストラテジーテスターのレポートタブでレポート画面を開き右クリック「レポートの保存」でOK。

BBFバックテストストラテジーテスターレポート2014~2016
BBFのストラテジーテスターレポート

ストラテジーテスターで設定した項目=みどり枠
バックテストの品質に関わる情報=オレンジ枠

項目説明
純益総利益から総損失を引いた利益
総利益利益トレードの合計
総損失損失トレードの合計
プロフィットファクタ総利益÷総損失で求められる値
期待利得純益÷総取引数で求められる値
絶対ドローダウン初期資金からもっとも減少した金額
最大ドローダウン総資金が最大の時の最大減少金額
相対ドローダウン総資金が最大の時の最大減少比率
総取引数すべての取引
売りポジション売りポジションの勝率
買いポジション買いポジションの勝率
勝率全体の勝率
負率全体の負率
最大勝ちトレード1トレードで最大の利益
最大敗けトレード1トレードで最大の損失
平均勝ちトレード勝トレード平均の金額
平均敗けトレード敗けトレード平均の金額
最大連勝(金額)最大連勝での金額
最大連敗(金額)最大連敗での金額
最大連勝(トレード数)最大連勝数
最大連敗(トレード数)最大連敗数
平均連勝連勝数の平均
平均連敗連敗数の平均
ストラテジーテスターレポートの項目

バックテストの品質|不適合チャートエラーとモデリング品質

ストラテジーテスターレポートに表示される「不適合チャートエラー」「モデリング品質」はバックテストの品質を計る。

不適合チャートエラー:ヒストリカルデータが正しく参照されなかったバー数

ヒストリカルデータが正しくダウンロード、またはインポートされていれば不適合チャートエラーは0になる。
エラーがカウントされるようなら対象の期間でヒストリカルデータのダウンロード、またはインポートで解決。

モデリング品質:ヒストリカルデータの動きを再現できた割合

モデリングとは、実物を再現すること。
リアルでの値動きを記したデータがヒストリカルデータであり、それを忠実な再現として動作させるのがストラテジーテスターのバックテストとなる。

モデリング品質のパーセンテージはMT4での基準であり、再現度の指標ではない。

モデリング品質は100%になりえない。
それはダウンロードできるヒストリカルデータに正確なティックデータが存在しないためだ。
ヒストリーセンターで表示される時間足のデータは1分足からとなるが、実際の値動きはティックデータが最小だ。
しかし、ダウンロードできるヒストリカルデータは1分足の四本値が最小になる。
つまり、忠実にモデリングするにはティックデータが不足している状態なのだとわかる。

モデリング品質が100%でも無意味な理由

モデリング品質にこだわったところで、リアル取引を完全に再現するバックテストは不可能である。
なぜなら、リアル取引ではスリッページ、スプレッドの増減などが頻繁に発生する。
これらの現象をバックテストでは再現できないのだ。

バックテストではヒストリカルデータに対して忠実にEAの処理を執行できるため、例えるなら止まっている的を狙っているのと同じである。
リアル取引での的は不規則に動くため、結果は別のものになって当然だ。

モデリング品質は高い方が良い。
しかし、いくら高くても所詮テストの域をでるものではない、との理解が大切である。

プロフィットファクタと勝率

プロフィットファクタと勝率
ストラテジーテスターレポート取引詳細

プロフィットファクター(以下PF)は利益÷損失で求められる指標だ。
PFの数値は一回の取引における利益の期待値になる。
例えば利益が300、損失が100の場合PFは3.0になり、利益が300、損失が600の場合PFは0.5、利益が300、損失が300の場合PFは1.0となる。

PFが高いEAは若干低い勝率でも利益は残るEAになる。
PFが低いEAは高勝率でも利益を残すことが難しい。
計算上ではPF1.0以上、勝率51%以上で、やればやるほど利益が残るEAということになる。

絶対ドローダウン、最大ドローダウン、相対ドローダウン

絶対ドローダウンは初期資金から最大に減少した時の金額をあらわしている。含み損も対象となる。

最大ドローダウンは証拠金残高に対して最大に減少した時の金額をあらわしている。含み損も対象となる。

相対ドローダウンは証拠金残高に対して最大に減少した時の割合をあらわしている。含み損も対象となる。

一般的にEAのドローダウンといえば最大ドローダウン、または相対ドローダウンが使われている。
証拠金残高にかかるリスクとして許容できるか否かは最大ドローダウン、または相対ドローダウンで判断すると良い。

バックテストで勝ててリアルで勝てないEA

カーブフィッテイングしているEAはリアルで勝てない

過去チャートの特定部分で有利に取引できるよう作られたEAは、リアルで勝てる確率はかなり低い。
バックテストの期間が10年以内のEAはカーブフィットの可能性を残していると疑うことが賢明である。

取引コストを無視したバックテストはEAの性能が上がる

リアルの取引ではスプレッドのコストがかかり、マイナス方向へのスリップも起こる。
EAの取引ロジックによっては、この取引コストを無視することで大きな利益を生むことがある。
こういったEAはバックテストで輝かしい結果を残すが、リアルトレードではジリジリとコスト負けを起こす。
バックテストの設定ではスプレッドをリアル取引よりも大きめに設定することで現実的な評価を下せる。

取引条件に左右されやすいEAはリアルで勝ちづらい

リアル取引で起こるスリップ、スプレッド拡大による影響があるEAではバックテストとリアル取引とで結果が大きく異なる。
指値、逆指値を使ったEAのバックテストでは相場の急変動でも狙った値で約定するが、リアル取引ではそうもいかない。
スワップが利益に加味されているEAも、ブローカーのスワップポイントが変動してしまえば性能に影響がでる。

バックテストのトラブルQ&A

バックテストされない、取引の結果がない
  • EAの仕様で取引していない可能性を調べる(通貨ペア、時間足、スプレッド制限、証拠金など)
  • EAの使用条件に適していない可能性を調べる(専用口座、試用期間、デモ専用など)
  • テスト期間のヒストリカルデータがない
  • ビジュアルモードがオンの状態で一時停止されている
  • モードが全ティック以外に設定(EA未対応の場合)
不適合チャートエラーがでる

MT4が回線に繋がっている場合ティックデータが更新されるためエラーになる可能性がある。ヒストリカルデータのダウンロード、またはインポートで修復が可能。

モデリング品質が低い

1分足で取引するEAをバックテストするとモデリング品質は25%になるが不具合ではない。忠実にモデリングされたバックテストであってもリアル取引との乖離は埋められないため、モデリング品質を気にしすぎないようにしたい。

バックテストが長い、終わらない

期間の長いバックテストは時間がかかる。年数を分けてテストするか、放置で終了を待つことで対応。

EAを運用する複利計算機

こちらはEAを福利運用した場合のシミュレーションができるFX計算機だ。
バックテストで得た結果をもとに、利回りと初期資金の入力で福利運用のシミュレーションが可能。
月々の積み立てシミュレーションにも対応している。
ご活用いただきたい。

  • URLをコピーしました!
  • URLをコピーしました!

このEAを使って、将来の見通しが立ちました

収入を増やしたい、将来のための資産が欲しい、支払いに縛られない自由な生活がしたい

このEAを使うと将来が見通せます。

22年以上で無敗の安定取引。リスク0%運用も可能なロジック。年利100%越えの上級者向け取引も可能。

マネーマシンとして育て上げることで大きな不労所得を得られます。

BBF image_window
ドリームEA_BBF 無料ダウンロード
BBF_MQL5-20240401
リアルトレード公開|EA BBF

ポジション監視の時間

集中力は続いてますか?


オートクローズツールを使ってポジション管理を自動化


自動ポジション管理だから万が一でも大丈夫

あなたは空いた時間を自由に、効率的に使えます

自動決済ルールは独自にカスタム可能

ストップ、リミット変更にも対応。

エントリー後のポジション管理をすべて自動化できるトレーディングサポートツール。

トレード中のちょっとした離席など、念のためセットといった使い方も可能。

MT4用自動決済ツール【AutoCloseTool】は無料で入手できます。

オートクローズツール

取引ごとにキャッシュバックが発生します

もらわないだけ損している
取引ごとに毎回発生する現金のキャッシュバック
海外FXのキャッシュバックはメリットしかないサービスです

取引ごとにキャッシュバック
目次