作成日
:2025.06.17


2025.10.22 13:46
「EAのバックテストは難しい...」その悩み、この記事で終わらせます。
EAのパフォーマンスを事前に検証する上で欠かせない機能、それがMT5の「ストラテジーテスター」です。MT5版ストラテジーテスターは、MT4版よりも多機能・高性能に進化しました。
しかし実際に検証を始めるまでの準備がそもそも大変だったり、せっかく利用目前まで辿り着いても設定項目が複雑だったりと、初心者にとってなかなかハードルが高いのが現実です。
この記事では、単なるストラテジーテスターの操作手順だけでなく、各設定項目が持つ意味や結果の正しい見方まで、一度ストラテジーテスターを起動したものの諦めてしまった方でも実践的に使えるよう解説します。まずは、「習うより慣れよ」の精神で、実際に触って動かしてみることから始めてみましょう。
ストラテジーテスターとは、MT5に標準搭載されている「過去の価格データを使ってEA(エキスパートアドバイザ)のパフォーマンスを検証(バックテスト)できる機能」です。
ストラテジーテスターを使えば、「もしこのEAを過去1年間動かしていたら、どれくらいの利益または損失が出ていたのか」といった疑問を、実際の取引さながらにシミュレーションできます。
世の中には無数のEAが存在し、その性能はまさにピンからキリまでです。優れたEAがある一方で、残念ながら全く勝てないEAも数多く出回っています。そんな状況で、「人気だから」「儲かると噂だから」という理由だけで、最初から大切なお金を投じるのは危険です。
そこで、「このEAは本当に利益を出せるのか?」を、過去の価格データを使って事前に客観的に検証する作業がバックテストです。
バックテストを行わずにEAを運用することは、地図を見ずに知らない土地を歩くようなもの。EAの得意な相場や苦手な相場、最大どれくらい負ける可能性があるのかといった「実力」や「弱点」を事前に把握することで、リスクを最小限に抑えた運用が可能になります。
EAの販売サイトに掲載されている輝かしい実績の多くは、理想的な環境での結果であり、必ずしも現在の市場環境で再現できるとは限りません。
ストラテジーテスターは、理想的である・ないに限らずEAが過去の相場でどのようなパフォーマンスを発揮したかを、以下のようにチャートやグラフで詳細に可視化してくれます。それはまるで、EAの「通知表」を自分で作成するような感覚です。
バックテスト結果のチャート
バックテスト結果のグラフ
ストラテジーテスターで得られる情報には以下のようなものがあります。
など
ストラテジーテスターは、EAの潜在能力を最大限に引き出すための「最適化」機能も備えています。
EAには「パラメータ」と呼ばれるさまざまな設定値があり、数値の調整により、EAのパフォーマンスは大きく変わります。しかし、パラメータを一つひとつ手で変えながら実行するのは手間と時間がかかり、現実的ではありません。最適化機能を使えば、複数のパラメータ設定の組み合わせを自動で実行し、最も良い結果になる設定を見つけることが可能です。
例えば、以下の図はMT5に標準搭載されている「Moving Average(移動平均)」というEAを使った、最適化前後のグラフです。
最適化前
最適化後
右肩下がりで大きな損失を出していたEAが、右肩上がりで利益が出るようになりました。このように、同じEAでもパラメータの設定を変えることで、パフォーマンスは大きく変わります。つまり、最適化によってEAが持つ潜在能力を最大限に引き出せるわけです。
MT5のストラテジーテスターは、MT4から大幅に機能アップし、さらに使いやすくなっています。MT4からの主な改善点は以下のとおりです。
| 主な改善点 | MT4 | MT5 |
|---|---|---|
| テストのスピードが向上 | 単一スレッドで直列にテストを行う(*1) | マルチスレッドで並列にテストを行う(*1) |
| 実際の値動きでテスト可能に | 主に1分足のデータから値動きを擬似的に作ってテスト | 実際に取引で配信された値動き(ティック)を元にテスト |
| 複数の通貨ペアを同時にテスト | 一度に1つの通貨ペアのみテスト可能 | 複数の通貨ペアを同時にテスト可能 |
| 価格データを入手しやすく | 質の高いバックテストには外部データの取得が必須 | 一部FX業者の提供する価格データが標準搭載 |
テストのスピードが向上
| MT4 |
| 単一スレッドで直列にテストを行う(*1) |
| MT5 |
| マルチスレッドで並列にテストを行う(*1) |
実際の値動きでテスト可能に
| MT4 |
| 主に1分足のデータから値動きを擬似的に作ってテスト |
| MT5 |
| 実際に取引で配信された値動き(ティック)を元にテスト |
複数の通貨ペアを同時にテスト
| MT4 |
| 一度に1つの通貨ペアのみテスト可能 |
| MT5 |
| 複数の通貨ペアを同時にテスト可能 |
価格データを入手しやすく
| MT4 |
| 質の高いバックテストには外部データの取得が必須 |
| MT5 |
| 一部FX業者の提供する価格データが標準搭載 |
(*1)スレッドとはコンピュータが同時に処理できる作業の単位のことで、多いほど速く処理できます。
このように、MT5のストラテジーテスターは、MT4と比べて処理速度や検証の精度、そして同時に扱える通貨ペアの柔軟性まで大幅に進化したことで、より効率的にEAの性能を確認できるようになっています。
MT5のストラテジーテスターを使うためには、「テストしたいEA」と「テストに使う過去の価格データ(ヒストリカルデータ)」が必要です。
まずはバックテストを行うためのEAを準備しましょう。
EAはMT5に標準搭載されているものもありますが、種類はそれほど多くはありません。好みのEAを見つけるには、インターネット上で提供・販売されているものを探すと良いでしょう。
EAを提供・販売しているサイトには、以下のようなものがあります。
MQL5コミュニティとGogoJungleでは、アカウントを開設すれば無料のEAをダウンロードしたり、有料のEAを購入したりできます。EA-BANKは、同サイト経由でFX会社の口座を開設し10万円または1,000ドルを入金すると、すべてのEAを無料でダウンロードすることが可能です。
ここでは一例として、MQL5コミュニティから無料EAをダウンロードする方法を簡単に紹介します。まず事前準備として、MQL5コミュニティのアカウント作成が必要です。まだの方は、以下のリンクにアクセスしてアカウントを作成しましょう。
MT5を起動して「ナビゲータ」ウィンドウから、「マーケット」を開き「エキスパート」をクリックすると、MT5のメイン画面にMQL5コミュニティのサイトが表示されます。
無料のEAを探したいときは、虫眼鏡マークの隣にあるタブメニューから「無料」を選べば一覧で表示されます。
気に入ったEAをクリックすると詳細画面が表示されるので、「ダウンロード」ボタンをクリックしましょう。
MQL5コミュニティからダウンロードしたEAは、「ナビゲータ」ウィンドウの「エキスパートアドバイザ(EA)」→「Market」の下に格納されます。
その他の外部サイトから入手したEAの場合は、MT5にインストールする必要があります。インストールの方法は、以下のご利用ガイドをご覧ください。
続いては、バックテストで利用する過去の価格データ(ヒストリカルデータ)の入手方法です。
MT5では、バックテストを実行する際に利用しているFX業者が過去に提供していた価格データが自動的にダウンロードされます。そのため、基本的には手動でヒストリカルデータをダウンロードする必要はありません。
初めてMT5のストラテジーテスターを使う方や、まずは一通りの使い方をマスターしたいという方は、デフォルトのデータでも十分なので、このSTEP2は飛ばして【実行】編に進みましょう。
よりステップアップしたいという方は、以下を読み進めてください。
デフォルトのデータを使用した場合、FX業者がMT5の提供を開始する前の価格データには、精度が高くないといわれているメタクォーツ社のデータが利用されます。例えば、Titan FX(タイタンエフエックス)では、2019年11月以降分は同社のヒストリカルデータが提供されますが、それ以前はメタクォーツ社のデータになります。
長期間の検証を行う際により精度の高いデータが必要な場合には、外部業者からヒストリカルデータを入手することがおすすめです。
精度の高いヒストリカルデータを提供していることで有名な業者に、国内外資系FX業者のDukascopy(デューカスコピー)と、有料でティック単位のヒストリカルデータを提供するTick Data Suite(TDS)の2つがあります。入手方法は、以下の記事をご覧ください。
ヒストリカルデータの信頼性は、バックテスト実施後の「バックテスト」タブ内にある「ヒストリー品質」から確認ができます。
ヒストリー品質とは、バックテストの期間を1~199に分割して、それぞれの期間に含まれている1分足で正確性を確認するものです。データの欠けがなく、正確なデータが50%を超えている期間は緑色で表示されます。
チェックの結果、自動で入手できるヒストリカルデータの品質が悪い場合は、外部業者からヒストリカルデータを入手しましょう。
MT5では、既存の銘柄データを直接上書きしたり削除したりすることができません。したがって、外部のヒストリカルデータを取り込んでバックテストに利用する際は、カスタム銘柄を作成する必要があります。
カスタム銘柄では、スプレッドや手数料、スワップといった銘柄に関する様々な条件も自由に設定できることが特徴です。
Myforexでは各業者が提供するスプレッドやスワップポイントを一覧で確認できるツールが揃っています。そちらも確認しつつ、実際の運用環境に近づけられるような設定を行っていきましょう。
準備が整ったら、実際にストラテジーテスターを動かしてみましょう。
ここでは、基本的なバックテストの流れをマスターするために、MT5に標準搭載されているEAの「Moving Average(移動平均)」を例に5つのSTEPで解説します。
上部メニューの「表示」をクリックして「ストラテジーテスター」を選ぶと、ストラテジーテスターのウィンドウが表示されます。ショートカットキー「Ctrl + R」でも表示可能です。
ここから、ストラテジーテスターを使ってバックテストをはじめていきます。まずは、「概要」タブで検証方法を選択します。
MT5のストラテジーテスターでは、バックテストの目的や用途に応じて、基礎的なものから応用的なものまで複数の検証方法があらかじめ用意されています。
検証方法は全部で10種類あり、それぞれできることは以下のとおりです。
| 種類 | できること |
|---|---|
| 単一 | 1通りのパラメータ設定で1回だけバックテストする |
| インディケータ | カスタムインディケータの動作をバックテストする |
| 可視化 | バックテストの動きをチャート上で視覚的に再生する |
| ストレスと延滞 | スリッページや約定遅延などをシミュレートして検証する |
| 最適化を完了 | 指定したパラメータの全ての組み合わせを総当たりで試す |
| 遺伝的最適化 | アルゴリズム的にパラメータの組み合わせを効率的に絞り込む |
| フォワード最適化 | 一部の期間で最適化し、別の期間でその設定を検証する |
| 市場スキャン | 複数の通貨ペアや銘柄に対して一度にバックテストする |
| 数値計算 | データを使わずに計算のみでロジックの正確さを検証する |
| 前の最適化結果を確認 | 以前に実行した最適化の結果を呼び出して確認する |
| 単一 |
| 1通りのパラメータ設定で1回だけバックテストする |
| インディケータ |
| カスタムインディケータの動作をバックテストする |
| 可視化 |
| バックテストの動きをチャート上で視覚的に再生する |
| ストレスと延滞 |
| スリッページや約定遅延などをシミュレートして検証する |
| 最適化を完了 |
| 指定したパラメータの全ての組み合わせを総当たりで試す |
| 遺伝的最適化 |
| アルゴリズム的にパラメータの組み合わせを効率的に絞り込む |
| フォワード最適化 |
| 一部の期間で最適化し、別の期間でその設定を検証する |
| 市場スキャン |
| 複数の通貨ペアや銘柄に対して一度にバックテストする |
| 数値計算 |
| データを使わずに計算のみでロジックの正確さを検証する |
| 前の最適化結果を確認 |
| 以前に実行した最適化の結果を呼び出して確認する |
とりあえずバックテストを始めてみたいという場合は、もっともシンプルな検証方法である「単一」を選択するとよいでしょう。「単一」はエキスパートアドバイザ(EA)を基本的な設定でバックテストする方法で、初めてMT5で検証を行う際に適したモードです。
検証方法を決めたら、「設定」タブでテストの条件を設定していきましょう。ストラテジーテスターで設定できる項目は以下のとおりです。
| 項目 | 設定内容 |
|---|---|
| エキスパート | バックテストするEAやインディケータを選択する |
| 銘柄 | バックテストする通貨ペアや商品を選択する |
| 日付 | バックテストの対象とする過去データの期間を指定する |
| フォワードテスト | テスト期間のうちフォワードテストに充てる期間を指定する |
| 延滞 | 注文処理にかかる遅延時間をミリ秒単位で指定する |
| モデル | バックテストで使う過去データの種類や精度を選択する |
| 入金 | テスト開始時の証拠金額と通貨を指定する |
| レバレッジ | 口座のレバレッジ倍率を指定する |
| オプティマイズ | 最適なパラメータの組み合わせを探索するか否かを選択する |
| エキスパート |
| バックテストするEAやインディケータを選択する |
| 銘柄 |
| バックテストする通貨ペアや商品を選択する |
| 日付 |
| バックテストの対象とする過去データの期間を指定する |
| フォワードテスト |
| テスト期間のうちフォワードテストに充てる期間を指定する |
| 延滞 |
| 注文処理にかかる遅延時間をミリ秒単位で指定する |
| モデル |
| バックテストで使う過去データの種類や精度を選択する |
| 入金 |
| テスト開始時の証拠金額と通貨を指定する |
| レバレッジ |
| 口座のレバレッジ倍率を指定する |
| オプティマイズ |
| 最適なパラメータの組み合わせを探索するか否かを選択する |
まずは、プルダウンでバックテストしたいEAを選択します。
「Examples」(①)→「Moving Average」(②)とクリックして、サンプルとしてMT5に標準搭載されている「Moving Average.ex5」(③)を選びます。
プルダウンの中に検証したいEAが見つからない場合は、MT5内へEAをインストールできているか今一度確認しておきましょう。
次に、バックテストしたい銘柄と時間足を選択します。
今回はドル円の1時間足で検証を行うので、通貨ペアにドル円の「USDJPY, US Dollar vs Yen」(①)、時間足に1時間足の「H1」(②)を選びます。
プルダウンの中にバックテストしたい銘柄がない場合は、画面上部「表示」メニュー内にある「銘柄」から、気配値表示ウィンドウへ新たに銘柄を追加すると選択できるようになります。
市販されている多くのEAでは、マニュアルや説明書で推奨の銘柄や時間足が指定されています。まずは、推奨に倣って設定するのがおすすめです。推奨の銘柄や時間足がわからない場合は、開発者・提供者に問い合わせてみても良いでしょう。
続いて、バックテストに使う過去データの期間を設定します。
期間は、以下の4種類から選択可能です。
今回は2024年8月以降1年間の結果を確認したいので、「期間指定」(①)を選択し、開始日を2024年8月1日、終了日を2025年7月31日(②)と設定します。
テスト期間の一部をフォワードテスト(未知のデータでの検証)に使う場合に設定する項目です。フォワードテストは、バックテスト期間への過剰最適化(オーバーフィッティング)を避けるために使用します。
今回は過去データでの単一のバックテストのみを行うため、デフォルトの「キャンセル」のままにします。
実際の取引で発生する注文の執行遅延(スリッページ)や価格の再提示(リクオート)を擬似的に再現するための設定です。
「1ミリ秒」「10ミリ秒」などの特定の値や、ランダムな秒数で遅延が発生する「ランダム遅延」などを選べます。
実際の取引環境をリアルに再現するのであれば、取引で発生する遅延を再現しやすい「サーバーの最後のping」を設定値とするのが望ましいです。今回はEAの挙動をざっくり確認する程度のテストのため「10ミリ秒」を設定します。
バックテストに使うデータの精度を設定します。各設定項目について、データの精度と内容は以下のとおりです。
| 選択肢 | 内容 | 精度/速度 |
|---|---|---|
| 全ティック | 過去のティックをすべて使用して、最も詳細な価格変動を再現し高精度なシミュレーションを行う | 高/遅 |
|
リアルティックに基づいた すべてのティック
|
実際の市場から得られる本物のティックデータを使用することで、よりリアルに価格の動きを再現する | 高/遅 |
| 1分足OHLC | 各1分足の始値・高値・安値・終値のみを使ってテストを行うため、精度・速度とも中程度 | 中/中 |
| 始値のみ | 各足の始値のみを使ってテストする最も高速なモデルだが、精度は最も低い | 低/速 |
| 数値計算 | 価格データを使わずに、数学的計算のみでEAのロジックをテストするための特殊なモデル | - |
全ティック
| 内容 | 精度/速度 |
| 過去のティックをすべて使用して、最も詳細な価格変動を再現し高精度なシミュレーションを行う | 高/遅 |
リアルティックに基づいたすべてのティック
| 内容 | 精度/速度 |
| 実際の市場から得られる本物のティックデータを使用することで、よりリアルに価格の動きを再現する | 高/遅 |
1分足OHLC
| 内容 | 精度/速度 |
| 各1分足の始値・高値・安値・終値のみを使ってテストを行うため、精度・速度とも中程度 | 中/中 |
始値のみ
| 内容 | 精度/速度 |
| 各足の始値のみを使ってテストする最も高速なモデルだが、精度は最も低い | 低/速 |
数値計算
| 内容 | 精度/速度 |
| 価格データを使わずに、数学的計算のみでEAのロジックをテストするための特殊なモデル | - |
「全ティック」や「リアルティックに基づいたすべてのティック」は、詳細なデータを用いるため精度の高いバックテストが可能ですが、その分テストに時間がかかります。スキャルピングなど正確なデータが必要な場合に向いているでしょう。
一方「始値のみ」は、精度が低いかわりに高速にテストできます。長期戦略や大まかなパフォーマンスの確認に有効です。
今回は精度と速度のバランスがとれ、初期の検証にも向いているモデルである「1分足OHLC」を選びます。
テスト開始時の仮想の証拠金残高を設定します。
左のコンボボックスで金額、右のコンボボックスで通貨を選択または入力可能です。通貨は基本的に、FX業者で開設した口座通貨に合わせる必要があります。
入金額が少ないと強制ロスカットが発動しやすく、早期にテストが終了してしまい、正しく検証できない可能性があります。実際にトレードで投下しようとしている資金額を踏まえて、近い金額を設定するのがおすすめです。迷った場合は、ひとまず100万円程度を設定して試す形で問題ないでしょう。
バックテストで使用するレバレッジを設定します。実際に利用している、あるいは利用を検討しているFX業者の口座と同じ設定にすると良いでしょう。
今回はレバレッジ100倍で検証を行うため「1:100」を設定します。
最適化の手法を選択します。最適化とは、EAが最も良いパフォーマンスを出せる設定値(パラメータ)の組み合わせを、自動で探し出すための機能です。
オプティマイズには、以下の4つの選択肢があります。
今回は最適化は行わず、単一のバックテストを実施するため「無効化」を選択します。
基本設定が完了したら、次は隣の「パラメータ」タブ(①)で各EAに固有のパラメータを設定していきます。
EAによって、パラメータの種類や数はさまざまです。今回バックテストする「Moving Average」の場合は、以下のとおり4つのパラメータ(②)があります。
| 変数名 | 意味 |
|---|---|
| Maximum Risk in percentage | 最大リスク(%) |
| Descrease factor | 連続損失によるロット減少係数 |
| Moving Average period | 移動平均線の期間 |
| Moving Average shift | 移動平均線のシフト |
変数名と意味
| Maximum Risk in percentage |
| 最大リスク(%) |
| Descrease factor |
| 連続損失によるロット減少係数 |
| Moving Average period |
| 移動平均線の期間 |
| Moving Average shift |
| 移動平均線のシフト |
各変数の「値」列のセルをダブルクリックすると、バックテストに使用する値を変更できます。「スタート」「ステップ」「ストップ」列は、最適化の際に設定する項目のため、今回のような「単一」のバックテストでは設定できません。
今回は、デフォルト値のままテストします。
設定したパラメータは、保存しておいて後から再利用することも可能です。パラメータ画面内で右クリックして「保存」を選ぶと、任意のフォルダに設定ファイルを保存できます。保存した設定を使いたい場合には、同じく右クリックから「読み込み」を選ぶと、設定に反映されます。
基本設定とEAのパラメータ設定が完了したら、いよいよストラテジーテスターの実行です。
「ストラテジーテスター」ウィンドウの右下にある緑色の「スタート」ボタンをクリックすると、バックテストが開始されます。
効果音が鳴り、テスト結果を表示する「バックテスト」や「グラフ」タブが追加されたら、バックテスト完了です。
「バックテスト」タブや「グラフ」タブには、バックテストの成績がレポートや履歴、グラフなどでわかりやすくまとめられています。
「バックテスト」タブを開くと、テスト結果をサマリーしたレポートが表示されます。多くの項目が表示されていますが、最低限チェックすべき重要な項目は以下の5つです。
番号 |
項目 |
説明 |
|---|---|---|
1 |
総損益 |
すべてのトレードの利益合計から損失合計を引いた、バックテスト期間中の最終的な損益額 |
2 |
プロフィットファクター |
総利益を総損失で割った値で、1.0以上なら利益が出ていることを示す収益性を表す指標 |
3 |
残高最大ドローダウン |
テスト期間中に口座残高が最も大きく落ち込んだ際の金額または割合で、リスクの大きさを示す指標 |
4 |
取引数 |
テスト期間中にEAが実行した売買取引の回数 |
5 |
勝ちトレード(勝率%)/ |
利益が出た取引回数と損失になった取引回数、およびその全体に占める割合 |
5つの指標は単体で見るのではなく、バランスを意識して確認すると分析精度が高まります。例えば、短期的に大きな利益を狙うのであれば「総損益」や「プロフィットファクター」を重視、安定的に長く運用したい場合は「残高最大ドローダウン」にも注目するのが重要です。
下にスクロールすると、時間帯ごとや曜日ごと、月ごとの取引数、損益のグラフなどが表示され、取引タイミングを考える際などの分析に役立ちます。
「バックテスト」タブの画面上で右クリックして、「約定」「注文」「注文と約定」を選ぶと、バックテストで実行したトレード履歴を確認できます。
トレード履歴では、エントリー・クローズ時刻、取引タイプ(買い・売り)、ロット数(数量)、エントリーとクローズの価格、損益、残高などを確認でき、EAが意図したとおりに動作しているかを細かくチェックすることが可能です。
レポートとトレード履歴は、画面上を右クリックして「レポート」(①)→「Open XML(MS Office Excel)で表示」、または「HTML(Internet Explorer)で表示」(②)を選択して、結果を保存することもできます。Open XML形式はExcelで、HTML形式はブラウザでそれぞれ確認が可能です。
「グラフ」タブを開くと、テスト期間中の資産の推移がグラフで表示されます。グラフは、EAのパフォーマンスを視覚的に理解するのに効果的です。
グラフの青い線は口座残高、緑の線は有効証拠金を表しています。この2本の線をテスト期間全体で観察し、EAの「リスク」と「安定性」を判断しましょう。
グラフは、細かい上下動はありながらも、全体として滑らかな右肩上がりの曲線を描いているのが理想的です。大きな資産の急減や急坂がないのは、リスクが低く、精神的にも運用しやすいEAといえます。
一方、青い線(残高)や緑の線(有効証拠金)が「急にストン!」と大きく下がる箇所(ドローダウン)がある場合は要注意です。大きなレバレッジをかけていると、大きく資金を失うリスクが高まります。
このように、専門的な統計知識がなくても、「大きな谷がないか?」「右肩上がりかどうか?」を見るだけでも、EAのリスクや安定度を読み取れます。
ここまで、ストラテジーテスターの基本的な操作を解説しました。基本操作に慣れたら、さらにEAのポテンシャルを引き出すために応用テクニックに挑戦してみましょう。
応用編として以下3つのテクニックを紹介します。
先述の「【実行】実際にテストしてみよう」では、デフォルト設定で「Moving Average」の単一テストを実行しました。その結果、100万円の残高でマイナス13万円という損失に終わりました。残念ながら、デフォルトのパラメータ設定のままでは使えそうにありません。
そこで、EAのパラメータの値を少しずつ変えた組み合わせを総当たり的にバックテストし、最適なパラメータの組み合わせを見つけ出すのが「最適化」です。
引き続き「Moving Average」のEAを使って、最適化していきましょう。
最適化を行うには、「ストラテジーテスター」ウィンドウの「概要」タブで「最適化を完了」または「遺伝的最適化」を選びます。
また、「単一」を選んだあとに、「設定」タブの「オプティマイズ」で「完全アルゴリズム(遅い)」または「遺伝的アルゴリズム(速い)」を選ぶことで、最適化を行うことも可能です。
なお「最適化を完了」と「完全アルゴリズム(遅い)」、「遺伝的最適化」と「遺伝的アルゴリズム(速い)」が対応しています。
完全アルゴリズムは、パラメータの組み合わせの「全パターンを試す」のに対し、遺伝的アルゴリズムは「優秀な結果になりそうなパターンを賢く絞って試す」方法です。実行するパターンが多い場合、完全アルゴリズムでは多くの時間がかかります。目的や時間に合わせて選ぶと良いでしょう。
また、オプティマイズ選択欄の横には、どの指標を最大化(または最小化)するように最適化するかを選択する欄があり、「残高最大」や「最大利益率」(プロフィットファクター)などが選べます。
今回はなるべく口座残高が増えるようなパラメータの組み合わせを絞り込むため、全パターンを試す「完全アルゴリズム(遅い)」を「残高最大」となるように設定してみます。
次に、「パラメータ」タブでパラメータの値を変化させる組み合わせを設定します。
実行編の「STEP4:パラメータを設定する」で見たとおり、「Moving Average」のパラメータの設定項目は、以下の4つです。ただし、今回は単一ではなく最適化を選んでいるため、「変数名」のチェックボックスを選択できるようになっています。
| 変数名 | 意味 |
|---|---|
| Maximum Risk in percentage | 最大リスク(%) |
| Descrease factor | 連続損失によるロット減少係数 |
| Moving Average period | 移動平均線の期間 |
| Moving Average shift | 移動平均線のシフト |
変数名と意味
| Maximum Risk in percentage |
| 最大リスク(%) |
| Descrease factor |
| 連続損失によるロット減少係数 |
| Moving Average period |
| 移動平均線の期間 |
| Moving Average shift |
| 移動平均線のシフト |
数値を変化させたいパラメータのチェックボックスにチェックを入れて、「スタート」「ステップ」「ストップ」を設定しましょう。
「スタート」はどの値からテストを始めるか、「ステップ」はいくつずつ値を変えていくか、「ストップ」はどの値でテストを終了するかを表します。
例えば、4つのパラメータを10段階で変化させようとすると、10の4乗で1万通りのテストを実行することになります。仮に1回の実行に1分かかるとすると、完了まで1週間程度かかってしまう計算です。最適化にかかる時間を短縮したい場合には、変化させるパラメータを成績への影響が大きいものに絞ったり、変化の段階(ステップ)を少なくしたりする工夫をしましょう。
今回は、Moving Averageが「価格が移動平均線を上抜けた場合に買い、下抜けた場合に売る」というロジックであることを踏まえ、変化させるパラメータを成績に寄与しそうな「Moving Average period」と「Moving Average shift」の2つに絞ることにします。
「Moving Average period」は、何本分のローソク足を平均して移動平均線を算出するかを指します。トレーダーによっては細かい刻み幅で調整することもありますが、今回は例として6から始めて3刻みで24まで、合計7段階で検証します。
「Moving Average shift」は、計算した移動平均線そのものを前後にシフトさせ、チャート上の表示位置を調整するパラメータです。0がデフォルト値となるため、今回は0から9まで1ずつ変化させる10段階を試してみましょう。
これで全1万通りから、7×10=70通りまで絞り込みできました。
パラメータの設定が完了したら、右下の「スタート」ボタンをクリックします。
実行中は、テストの全通り中の何通りまで実行が完了しているかと、実行完了までの予想時間が表示され、完了すると効果音が鳴ります。パターンが多い場合には数時間から数日かかることもあるため、しばらく放置しましょう。
最適化の実行が完了すると、「オプティマイズ結果」タブ(①)が追加されます。「オプティマイズ結果」タブには、パラメータの組み合わせパターンごとの実行結果が表示されています。今回の場合、最も成績が良かったパラメータの組み合わせは、「Moving average period = 6」「Moving average shift = 3」(②)でした。
実行結果の詳細を確認したい場合は、対象の行をダブルクリックするか、右クリックして「この設定でバックテスト」を選びます。すると、選んだパターンで単一のバックテストが実行され、「バックテスト」タブや「グラフ」タブで結果が確認できます。
今回は、実行編でのデフォルト設定では右肩下がりで損失があったEAが、最適化によって一度も損失になることなく、期間の中盤以降は右肩上がりとなる良好なパフォーマンスになっていることがわかります。
ただし、バックテストはあくまでも過去の特定期間でのシミュレーション結果です。最適化の結果に基づいて、どの設定がパフォーマンスに影響を与えたのか、またその設定がどのような相場に強く、逆にどのような相場に弱いのかなどを冷静に分析する必要があります。
続いて、応用編の2つ目として、フォワードテストを紹介します。
MT5のストラテジーテスターには、最適化で見つけた優秀なパラメータが、未知の期間でも通用するかを試す「フォワードテスト」機能が搭載されています。バックテストの結果がどんなに素晴らしくても、過剰最適化(カーブフィッティング)している場合、実際の相場では通用しないかもしれません。これを検証するのがフォワードテストです。
過剰最適化とは、バックテストでパラメータを細かく調整しすぎて、過去の特定期間のデータにだけ過剰に適合した状態になることです。この場合、テスト期間内の成績は非常に良く見えますが、将来の未知データではほとんど機能せず、実運用で成績が急激に悪化するリスクがあります。
フォワードテストは、ストラテジーテスターで指定した期間のうち一部のデータを使って最適化を行い、残りの使っていない期間のデータを未知の期間として検証に使う仕組みです。
例えば、2024年8月1日から2025年7月31日までの1年間のデータを使って、最適化とフォワードテストに半分ずつ使用する場合、データの期間は以下のようになります。
これにより、2024年8月1日から2025年1月31日までのデータで最適化されたパラメータが、その後の半年間のデータでどのくらい通用するかを確認できます。
フォワードテストを行うには、「ストラテジーテスター」ウィンドウの「概要」タブで「フォワード最適化」を選びます。
また、「設定」タブの「フォワードテスト」で「キャンセル」以外の「1/2」や「1/3」を選ぶことで、フォワードテストを実行することも可能です。
今回は、指定した期間のうち前半の2分の1を最適化に、残りの半分の期間でフォワードテストを実行したいので「1/2」を選びました。設定が完了した後は、これまでと同じく「スタート」ボタンをクリックすると、まずバックテストが実行されてその後フォワードテストが実行されます。
フォワードテストの実行が完了すると、「オプティマイズ結果」「先行結果」タブが追加されます。「オプティマイズ結果」タブには、前半の期間での最適化結果が表示されます。
「先行結果」タブには、最適化した結果にフォワードテストの結果を合わせて表示されます。
「先行結果」タブで明細をクリックすると、「バックテスト」タブ、「フォワード」タブ、「グラフ」タブが追加され、詳細な結果を確認できます。
バックテストでどんなに良い結果が出ても、フォワードテストでパフォーマンスが著しく低下するようであれば、そのEAは過剰最適化されている可能性が高く、実際の運用には慎重になるべきでしょう。逆に、フォワードテストでも安定したパフォーマンスを示すEAは、より堅牢で、将来の市場でも通用する可能性が高いと評価できます。
どの通貨ペアでEAを使うかを検討するときにおすすめの応用テクニックが、複数通貨ペアの同時テスト(市場スキャン)です。
市場スキャンは、1つのEAが「どの通貨ペアで最も良いパフォーマンスを発揮するか」を、一度のテストで効率的に探し出せる機能です。気になるEAをとりあえず複数通貨ペアで試してみたいときや、どういう相場で利益が伸びるのかを考えたいときなどの参考として役立ちます。
市場スキャンは複数の通貨ペアを組み合わせて取引するタイプのEAをテストする機能ではありません。単一の通貨ペアで取引するEAを、複数の通貨ペアで一度にテストして比較するためのものです。
複数通貨ペアの同時テストでは、「気配値表示」ウィンドウに表示している通貨ペアが、テストの対象となります。そのため、テストを実行する前に「気配値表示」をテストしたい通貨ペアに絞っておく必要があります。
気配値表示の銘柄を変更する方法は、以下をご覧ください。
テストする通貨ペアを選んだら、必要な設定をし、テストを実行しましょう。
複数通貨ペアの同時テストを行うには、「ストラテジーテスター」ウィンドウの「概要」タブで「市場スキャン」を選びます。
また「設定」タブの「銘柄」で「すべての[気配値表示]銘柄」を選ぶことで、複数通貨ペアの同時テストを実行することも可能です。
このとき、設定画面の「オプティマイズ」欄には、自動的に「気配値表示で選択されたすべての銘柄」が選択されます。他の選択肢に変えると、複数通貨ペアの同時テストが解除されるため注意しましょう。
その他の設定項目や「パラメータ」タブの内容は、通常の単一のテストと同じように設定してください。なお、複数通貨ペアの同時テストと、複数のパラメータの組み合わせを試す「最適化」は同時に実行できません。複数通貨ペアでパラメータの組み合わせを変えたい場合には、都度設定して実行が必要です。
設定完了後に「スタート」ボタンをクリックすると、複数の通貨ペアのバックテストが実行されます。
複数通貨ペアの同時テストが完了すると、「オプティマイズ結果」タブが追加されます。「オプティマイズ結果」タブには、通貨ペアごとのバックテスト結果が表示されています。今回はこれまでと同じ「Moving Average」のEAを、11通貨ペアで実行した結果です。
テスト結果よりEURUSDとAUDUSDで結果を残せていることが分かりました。明細をクリックすれば、その通貨ペアの単一のバックテストが実行され、「バックテスト」タブ、「グラフ」タブが追加されて詳細な結果を確認できます。
これにより、通貨ペア間でのEAの成績が一度のテストで簡単に比較できるため、どの通貨でトレードしようか迷っている人には、とても便利な機能といえるでしょう。
ストラテジーテスターはEAを安心して利用できるかどうかを見極めるために役立つ心強い検証ツールですが、決して万能ではありません。バックテストの結果が良くても、リアルトレードで実践する際には、以下のポイントに注意して慎重に判断する必要があります。
詳しく見ていきましょう。
バックテストは、あくまで過去のデータに対するシミュレーションです。特にスプレッドの変動やスリッページ、サーバーの応答速度といった取引環境の要素は、バックテストでは完全に再現することは困難です。このような取引環境の微妙な差によってバックテスト通りの結果がでないということは十分あり得ます。
バックテストに慣れてきたら、次はリアルトレードとの環境差を把握し、その差を設定にチューニングするような形でリアルトレードとテスト環境を近づけていきましょう。
例えば、約定時間計測インディケータで測定した約定遅延の数値を元に、ストラテジーテスターの「延滞」項目を微調整して再度バックテストを行うなどの手も有効です。
EAの機能によっては、ストラテジーテスターを使った検証が難しいケースがあります。
例えば経済指標のニュースをもとにトレードするタイプのEAや、マーケットの板情報を参照して判断するEAなどは、過去データを使ったシミュレーションでは十分に検証できない恐れがあります。このように検証が難しいEAを活用したい場合は、効率は落ちるもののデモ口座での運用でまずは性能を確認してみるとよいでしょう。
バックテストで良い成績が出たからといって、すぐにリアルトレードへ移行するのは要注意です。
まず、そのEAが叩き出したリターンを、客観的なモノサシで評価しましょう。その際に役立つのが「CAGR(年平均複利成長率)」や「最大ドローダウン」です。
CAGRとは、年平均複利成長率のことです。CAGRは[(X年目の数値 ÷ 計測1年目の数値)^ { 1 ÷(X-1)}-1]×100で計算します。
例えば、バックテストの結果が「5年間で資産が1.5倍になった(利益率50%)」という素晴らしいものだったとします。しかし、これをCAGRに換算すると、年間のリターンは約8.5%です。
これは、より安定的な投資手法とされるS&P500や全世界株式などの株式インデックスの平均リターン5%〜10%とたいして変わらないともいえます。もしEAのリターンが同程度なのであれば、「常に相場を気にかけ、資金を高いリスクにさらすFXよりも、もっと安定的で手間のかからないインデックス投資の方が合っているかもしれない」という判断も十分に考えられるでしょう。
また最終的にプラスで終わっていたとしても、途中で大きな損失(最大ドローダウン)がある場合、損失に耐えて取引を続けられるかどうかは、心理面での大きなハードルです。バックテスト結果のグラフの一番深い谷が、「自分がリアルマネーで運用していたら本当に大丈夫か」を想像してみましょう。
このように、バックテストの結果は、投資判断におけるスタートラインです。本当にそのEAにリスクを取る価値があるのか、自分のリスク許容度と照らし合わせて慎重に検討しましょう。
バックテストを行った後は、実際の市場を使った最終的なフォワードテストとして、デモ口座や少額トレードで試してみましょう。
いきなり大きな金額でリアルトレードをはじめた場合、失敗したときに大きな損失を被るリスクがあります。デモ口座なら失敗しても損失を被ることはありません。また、少額トレードなら、損失を限定して、本番と同じ約定力やスプレッドで本当のEAの成績を確かめられます。
その上で、EAの成績に確信が持てたら、少しずつ投入資金を増やしていくと良いでしょう。
MT5のストラテジーテスターは、一見すると難しく感じるかもしれませんが、一つひとつの設定項目の意味を正しく理解すれば、決して難しいツールではありません。加えてMT4と比べて性能と機能がアップし、利便性も大きく向上しています。
この記事で解説した手順に沿って操作してみることで、これまで難しいと感じていたバックテストが、身近に感じられたのではないでしょうか。この一歩をきっかけに、EAという心強い相棒のパフォーマンスを最大限に引き出し、トレード戦略の新たなステージへ踏み出しましょう。
なお、ストラテジーテスターがうまく動かない場合には、以下のような原因が考えられます。
基本を押さえながら少しずつ確認すれば解決できることがほとんどですので、焦らず一つずつ見直してみましょう。
出典元:
![]()
作成日
:2025.06.17
![]()
最終更新
:2025.10.22
短期が中心のトレーダーや中長期が中心のトレーダー、元プロップトレーダー、インジケーターやEAの自作を行うエンジニアなどが在籍。資金を溶かした失敗や専業トレーダーに転身した経験など、実体験も踏まえてコンテンツを制作している。
ご覧いただきありがとうございます。Myforexでは、記事に関するご意見・ご感想をお待ちしています。
また、海外FX・仮想通貨の経験が豊富なライター様も随時募集しております。
お問い合わせ先 [email protected]

Bybitが日本ユーザーの新規登録を停止!日本撤退で海外FXユーザーにも影響大か?
2025.11.06 19:00

FXGT破綻の噂がSNSで再浮上、CEOは「完全なデマ」と否定
2025.11.04 19:30

香港エキスポでAxiブースが襲撃される、規約違反のトレーダーによる抗議と判明
2025.11.04 19:00

Exnessで10月に2度もサーバーダウン!?SL設定のユーザーは損失補填
2025.10.30 19:30

メタマスク等の利用が規制対象に?金融庁がDEXの規制を議論
2025.10.28 19:00

Vantage Tradingで出金遅延、担当者が語る原因と対応
2025.10.24 19:00
免責事項:Disclaimer
当サイトの、各コンテンツに掲載の内容は、情報の提供のみを目的としており、投資に関する何らかの勧誘を意図するものではありません。
これらの情報は、当社が独自に収集し、可能な限り正確な情報を元に配信しておりますが、その内容および情報の正確性、完全性または適時性について、当社は保証を行うものでも責任を持つものでもありません。投資にあたっての最終判断は、お客様ご自身でなさるようお願いいたします。
本コンテンツは、当社が独自に制作し当サイトに掲載しているものであり、掲載内容の一部または、全部の無断転用は禁止しております。掲載記事を二次利用する場合は、必ず当社までご連絡ください。
Myforexでは、このウェブサイトの機能向上とお客様の利便性を高めるためにクッキー使用しています。本ウェブサイトでは、当社だけではなく、お客様のご利用状況を追跡する事を目的とした第三者(広告主・ログ解析業者等)によるクッキーも含まれる可能性があります。 クッキーポリシー