メインコンテンツにスキップ

EAのバックテスト:結果で分かること・分からないこと

EAのバックテストは過去のデータで戦略をシミュレーションするもので、予測や将来の収益保証ではありません。

EAのバックテストは過去のデータで戦略をシミュレーションするもので、予測や将来の収益保証ではありません。

テストを理解する

結果は銘柄、期間、価格データ、モデル、取引コスト、執行の前提、EA設定に左右されます。比較には同じ明文化された前提を使い、良い結果だけで設定が現実的だと判断しないでください。
​

バックテストは選んだ設定を評価し、最適化は複数の設定から良い過去の結果を探します。過去の最良の組み合わせを選ぶと、過去データに過剰適合することがあります。


MT4デスクトップ版でEAの単一バックテストを設定する

  1. 表示 → ストラテジーテスターを開くか、Ctrl+Rを押します。設定で、プラットフォームにあるコンパイル済みのエキスパートアドバイザー (EA)を選びます。

  2. 完全な通貨ペア名と期間(チャートの時間足)を選びます。期間を指定を有効にし、開始日と終了日を入力して過去データの範囲を限定します。

  3. モデルで全ティック、コントロールポイント、始値のみのいずれかを選びます。始値のみではローソク足内のすべての値動きを再現しません。結果とともに方法を記録してください。

  4. スプレッドを確認します。既定ではテスト開始時の銘柄のスプレッドを使い、買い気配値の履歴から売り気配値をモデル化します。独自の値も指定できます。過去の変動スプレッドの再現ではありません。

  5. EAのプロパティ → テスト設定で仮想の初期残高、通貨、許可する売買方向を設定します。パラメーターの入力の各値を指定します。開始値、ステップ、終了値の範囲は最適化用です。

  6. 固定パラメーターで一度テストする場合は最適化をオフにします。必要ならビジュアルモードを有効にし、スタートを押します。完了後、結果、グラフ、レポート、操作履歴でモデルの品質やエラーを確認します。


MT4:入力値を最適化し、選んだ試行を再テストする

最適化では、選択した入力項目の値を変えながら過去データのシミュレーションを繰り返します。

  1. テスター → 設定で、利用可能なEA、銘柄、時間足、モデル、日付範囲、スプレッドを選びます。最適化を有効にしてください。無効のままでは、固定した入力値による単独テストになります。

  2. エキスパートのプロパティ → テストを開きます。シミュレーション用の入金額、通貨、許可する売買方向、評価基準を設定します。遺伝的アルゴリズムによる探索は、使用する場合だけ選びます。

  3. 入力項目で、変化させるパラメータにチェックを入れ、初期値、増分、終了値を設定します。チェックしない項目は、値の欄の固定値を使います。

  4. エキスパートのプロパティ → 最適化で、意図した試行の制限だけを有効にして設定します。制限に達すると、その試行を中断して次の試行へ進みます。

  5. 開始を選びます。最適化結果と最適化グラフを確認してください。結果は各試行の集計であり、すべての取引を個別に示すものではありません。列で並べ替え、不要な結果を除外する設定で利益の出なかった試行が非表示になっていないか確認します。

  6. 試行をダブルクリックするか、入力パラメータを設定を選びます。MT4はその入力値を設定に戻し、最適化を無効にします。反映された値を確認し、開始を選ぶと単独テストを実行できます。

入力欄

意味

初期値

最初に使う値

増分

値を増やす幅

終了値

最後に使う値

値

パラメータにチェックを入れない場合の固定値

選んだ入力値と実際のテスト期間を記録してください。過去の最良結果を選ぶことは、将来のデータによる独立した検証ではなく、将来の収益性を証明するものでもありません。


MT5デスクトップ版でEAの単一バックテストを設定する

  1. ナビゲータでEAのコンテキストメニューを開き、テストを選びます。テスターの設定ではパラメーター最適化ではなく単一テストを選びます。

  2. 主な銘柄、時間足、日付範囲を指定します。終了日は含まれません。複数銘柄を使うEAは、気配値表示 → 銘柄で必要な銘柄を有効にします。

  3. ティックのモデル化方式と執行遅延を確認します。生成ティックと利用可能な実ティックは異なるデータです。遅延なしは理想的な執行条件であり、ライブ運用成績の証明ではありません。

  4. 仮想の初期残高、通貨、レバレッジを設定し、EAの入力パラメーターを指定します。シミュレーションの前提として結果とともに記録してください。

  5. チャートを再生する場合はローカルエージェントを使い、最適化をオフにしてビジュアルテストを有効にします。設定のスタートを押します。履歴のダウンロードには時間がかかる場合があります。

  6. 結果、グラフ、操作履歴を確認します。データのメッセージや開始日の変更を調べ、EAのバージョンと設定とともにレポートを保存してください。比較前に以下の解説をお読みください。


MT5デスクトップ版でパラメーターの最適化を設定する

  1. ナビゲータで対象EAの「テスト」を開きます。「設定」で銘柄、時間足、期間、シミュレーションの前提条件を確認します。

  2. 単一テストではなく、パラメーターの最適化を選択します。

  3. 「入力パラメーター」で変化させる項目にチェックを入れます。「スタート」「ステップ」「ストップ」を設定します。チェックのない項目は固定値のままです。表示される組み合わせ数を確認します。

  4. 探索方法を選び、遺伝的最適化の場合は順位付けの基準も選択します。

  5. 必要に応じて、開始前に以下の手順でフォワード期間を設定します。

  6. 「スタート」をクリックします。完了後、「最適化結果」の列見出しで並べ替えます。結果をダブルクリックすると、そのパラメーターで単一テストを実行できます。


最適化の方法を選ぶ

低速の完全アルゴリズムは、選択したすべての組み合わせを評価するため、長時間かかる場合があります。高速の遺伝的アルゴリズムは、より少ない組み合わせを探索します。すべての組み合わせを試したことにはなりません。選択した基準は結果の順位付けに使われるもので、戦略の収益性を保証するものではありません。方法と基準を記録してください。

利益をpipsで推定するモードでは、スワップ、手数料、証拠金チェックが省略されます。リスクを評価する前に、より詳細なモードを使用してください。この簡易計算では、すべての取引コストは再現されません。


フォワード期間を確保して結果を比較する

  1. 「設定」→「フォワード」で、1/2、1/3、1/4、または「カスタム」を選択します。

  2. 「日付」の後半がフォワード期間に確保され、前半が最適化に使われます。「カスタム」では、その開始日を設定します。

  3. 完了後、「最適化結果」と「フォワード結果」で選択された結果を比較します。すべての組み合わせがフォワードテストされるとは限りません。

  4. 両方の期間とパラメーターをレポートとともに保存します。フォワード期間の結果を使って再調整すると、その期間の独立性は失われます。


MT5のティック生成モードを目的に合わせて選ぶ

モード

選択による違い

全ティック

1分足から中間価格をシミュレーションします。記録された実際のティック履歴ではありません。

リアルティックに基づいた全ティック

利用可能なブローカーのティックを使用し、スプレッドは1分間の中でも変動する場合があります。ティックデータがない分は、1分足から生成される場合があります。

1分足OHLC

各分の始値、高値、安値、終値を使用します。EAのテスト時間足がM1に変更されるわけではありません。

始値のみ

足の開始時にEAを呼び出します。W1/MN1は日単位でシミュレーションされます。ストップ注文・指値等の待機注文の結果や時間足データへのアクセスには制約があり、ランダム遅延は使用できません。

各モードは異なる前提条件をテストします。粗いモードの結果は、リアルティックによる結果と同等ではありません。EAのロジックに適したモードを選び、レポートにその名称を残してください。


準備状況と実際のテスト期間を確認する

  1. 必要な銘柄の履歴が同期されるまで待ちます。複数銘柄を使う戦略では、別の履歴の読み込み中に一時停止することがあります。

  2. 「操作履歴」で指定した日付と実際の日付を比較します。開始日前のデータが不足すると、開始日が後ろにずれる場合があります。

  3. その変更をレポートに記録し、指定した期間全体をテスト済みとして扱わないでください。

  4. 準備を早めるために時間足を変更すると、検証の条件も変わります。異なる時間足の結果を比較する前に、EAの設計を確認してください。


MT5:テストに影響する技術条件

以下のMT5テスターの動作は、MT4の前提やリアル口座での動作と区別してください。

条件

テスト時の動作

スプレッド

MT5は履歴値を変動値として使用します。履歴値がゼロ以下なら、直近の既知の値を使います。

テスト前の履歴

最小の履歴要求量はD1以下で1年、W1で100本、MN1で8年(96か月)です。準備データ不足で実際の開始日が後ろへずれることがあります。

複数銘柄

ある銘柄の新しいバーが、別の銘柄の新しいバーを保証するわけではありません。始値のみのテストでは同期に特に注意が必要です。

シミュレーション時刻

テスター内ではGMT、ローカル時刻、サーバー時刻が等しくなります。リアルサーバーの時間帯を示すものではありません。

グラフィカルオブジェクト

非ビジュアルテストや最適化では描画せず、プロパティ照会はゼロを返します。この制限はビジュアルテストには適用されません。

DLL呼び出し

リモートエージェントはDLL呼び出しを禁止します。ローカルでは対応するインポート権限が必要ですが、権限はプログラムの信頼性を証明しません。

テストを動かすためだけにDLLインポートを有効にしないでください。具体的な必要性とプログラムの信頼性を先に確認し、無関係な権限は無効に保ってください。


MT5のビジュアルバックテストを確認する

  1. 上記の手順でビジュアルテストを開始したら、別ウィンドウのビジュアライザーを使用します。メインチャートにはテストの時間足が適用されます。このウィンドウ内では変更できないため、開始前に選択してください。

  2. チャートの取引マーカーとテスト価格を併せて確認します。これらはシミュレーションの動作であり、現在のライブ口座の取引や価格ではありません。

  3. 表示 → 気配値表示を開くか、Ctrl+Mを押して、シミュレーション内の価格と現在時刻を確認します。

  4. 表示 → データウィンドウを開くか、Ctrl+Dを押します。バーにポインターを合わせて、日付、四本値(OHLC)、スプレッド、出来高、指標値を確認します。

  5. 表示 → ツールボックスを開くか、Ctrl+Tを押します。取引では模擬ポジションと指値・逆指値注文、履歴では注文と約定、操作ではEAのリクエスト、操作ログではテストログを確認して比較します。

  6. 予期しない動作を調べる際は、関連するリクエスト、約定、ログのシミュレーション時刻を照合します。リクエストされた操作と実際に約定した取引は別の記録です。


完了しないMT5テストを調べる

  1. 操作ログを時系列で確認します。履歴の準備では主なテスト銘柄に加えて通貨換算用の銘柄データもダウンロードする場合があります。データの準備とEAの実行は別の段階です。

  2. OnInitの失敗はEAを初期化できなかったことを示します。入力値と付随するメッセージを確認してください。これは実口座の注文拒否を示すものではありません。

  3. メモリエラー、配列の範囲外のインデックス、ゼロによる除算はテストを終了させる場合があります。正確なエラーを記録して開発者に相談し、部分的なレポートを完了したテストと見なさないでください。

  4. 指定した期間と実際の終了地点を比較します。シミュレーション内の強制決済やEAの自己終了で、テストが早期に終わることがあります。EAのバージョン、設定、関連ログをレポートとともに保管してください。早く終了したという事実だけでは原因を特定できません。


MT5:テストレポートの項目を読む

履歴シミュレーションの指標を組み合わせて比較してください。一つの比率が高くても、将来の収益性の証明にはなりません。

項目

解釈

履歴品質

欠損を含む1分足価格データの品質です。勝ちトレードの割合ではありません。

プロフィットファクター

総利益を総損失で割った値です。一なら両者が等しいことを示します。

リカバリーファクター

得られた利益を最大ドローダウンで割った値です。

シャープレシオ

リターンから無リスク金利を引き、リターンの標準偏差で割ります。テスターは無リスク金利をゼロと仮定します。

残高/有効証拠金のドローダウン

絶対は初期資金とそれを下回る最小値を比較します。最大は局所的な高値から次の安値への最大低下を通貨額で、相対は割合で表します。残高と有効証拠金を別々に確認してください。

ポジション保有時間

開始から完全決済までです。この指標では部分決済や反転を完全決済に含めません。

エントリー図は新規、追加、反転を集計し、損益図は部分決済や反転を含む退出を集計します。時間帯、曜日、月別の分布はテストを示すもので、利益が保証される取引時間を示すものではありません。


結果を全体の推移と合わせて読む

例えば、10,000 で開始して 12,000 で終了したテストは、そのシミュレーションでの純利益を示します。しかし、途中の下落幅、リスクにさらされた資金、少数の取引への依存までは分かりません。有効証拠金の推移、ドローダウン、取引回数、損益の分布を併せて確認してください。数値は説明用であり、収益目標や戦略の推奨ではありません。
​

残高曲線は主に完了した取引を反映し、有効証拠金の曲線は含み損益も反映します。滑らかな残高曲線の裏に大きな含み損がある場合もあります。報告を比較する前に、曲線とドローダウン指標の種類を確認してください。


比較前にデータと費用を確認する

正確な銘柄、期間、データの範囲、モデル化方法、費用の前提を確認します。スプレッド、手数料、スワップ、約定遅延は結果を変え得ます。すべての費用や現在の実際の約定条件が再現されるとは限りません。欠損データや価格の提供元の違いも取引順序に影響します。
​

MT4 と MT5 のテストを区別してください。MT4 用 EA と MT5 用 EA は自動的に同一プログラムにはなりません。プラットフォーム、EA のバージョン、設定は報告と一致する必要があります。取引がなければ、故障や戦略の性質と判断する前に、ログ、利用可能なデータ、入力設定を確認してください。


パラメータ選択と独立した検証を分ける

特定期間の結果が良くなるまで設定を繰り返し調整すると、その期間は独立した検証ではなくなります。設定を選ぶ前に別の期間を確保し、その期間に合わせて再調整せずに評価します。最良の結果を繰り返し選ぶことで、他の期間には通用しない見栄えの良い報告ができる場合があります。
​

再現に必要な情報を保存します。プラットフォームと EA のバージョン、銘柄、期間、初期残高、設定、モデル化方法、費用、報告が対象です。変更は一つずつ比較します。バックテスト、最適化、デモ運用は異なる問題を検証しており、どれか一つだけで適合性や利益を証明することはできません。


結果の適切な使い方

利益だけでなくドローダウンや取引回数も確認します。設定選択に使わなかった別の期間を残し、その期間の成績も比較してください。デモテストは運用経験に役立ちますが、リアル取引の結果を保証しません。

EAのバージョン、設定、テスト期間、前提をレポートと一緒に保管すると差異を調べやすくなります。MT4・MT5で動くことだけでFXTRADING.comがEAの収益性を認定するわけではありません。EAはFXTRADING.com Appにインストール・実行できません。

こちらの回答で解決しましたか?