EAのバックテストと最適化

ホーム → その他のコンテンツ → EAのバックテストと最適化

はじめに・・・

EA(エキスパートアドバイザー)とセットファイルを手に入れただけでは、それが本当に機能するかどうかは分かりません。 だからこそ、過去の相場データを使った「バックテスト」で、EAの動作やパフォーマンスを事前に検証することが重要です。

さらに、EAの性能を最大限に引き出すには、パラメータを調整する「最適化」も欠かせません。 適切な設定を見つけることで、利益の最大化やリスクの最小化が可能になります。

このページでは、初心者の方にも分かりやすく、バックテストと最適化の目的や手順を画像付きで丁寧に解説しています。

バックテストとは?

バックテストとは、EAが過去の相場でどのように機能したかを検証するためのシミュレーションです。 リアルな取引環境を再現しながら、EAの戦略や挙動、リスク管理の妥当性を事前に確認することができます。

バックテストの目的

  • EAの収益性を過去のデータで検証
    • 過去の価格データをもとに、EAが利益を出せるかどうかを確認します。例えば、トレンドフォロー型のEAがレンジ相場で損失を出すなど、戦略の強み・弱みを把握することができます。
  • トレードの挙動を確認
    • どのタイミングでエントリー・決済するか、どんな相場状況で反応するかなど、EAの動作ロジックを視覚的に理解できます。
  • リスク管理の評価
    • 最大ドローダウン(資金の減少幅)や連敗数などを確認し、資金管理が適切かどうかを判断します。これにより、リアル運用時のリスクを事前に把握し、調整することが可能になります。

MT5を使ったバックテスト手順

1. 入手したEAをMT5で使用できるようセットアップする

EAのバックテストと最適化 EAのセットアップ
  1. EAファイル (.ex5) を、MQL5 → Experts フォルダに保存
  2. MT5を再起動するとEAを使用できるようになります

2. ストラテジーテスターを開く

  1. メニューから “表示” → “ストラテジーテスター” (またはショートカットキー Ctrl+R)
  2. テスター画面が下部に表示されます

3. テスト環境を設定する

EAのバックテストと最適化 の環境設定

  a. エキスパート 使用するEAを選択

  b. 銘柄 テストしたい通貨ペアを選択

  c. 時間足 使用する時間足を選択 (Mは分、Hは時間、Dは日)

  d. 日付 テストする開始日と終了日を指定

  e. 延滞 注文が発行されてから実際に約定されるまでの時間差を選択

  f. モデル

モデル名精度テスト速度主な用途特徴
リアルティックに基づいたすべてのティック★★★★★
(最高)
★☆☆☆☆
(遅い)
実運用に近い検証実際のティックデータを再現。スリッページや遅延も反映される
全ティック★★★★☆★★☆☆☆高精度な検証ティックをアルゴリズムで生成。リアルティックより高速だがやや簡易
1分足OHLC★★☆☆☆★★★★☆パラメータ調整・高速テスト各バーの4本値のみで動作。エントリー条件がシンプルなEA向け
始値のみ★☆☆☆☆
(簡易)
★★★★★
(速い)
初期検証・スクリーニング各バーの始値のみで判定。高速だが精度は低め。最適化の初期段階に便利

  g. 入金 証拠金を手入力 (単位をダブルクリックし”JPY”と手入力して、日本円とすることも可能)

  h. レバレッジ 自身の口座で設定した数値を選択

  i. オプティマイズ まずは無効化を選択 (次の最適化で説明します)

  j. チャート、指標、取引を表示するビジュアルモード チェックを入れると、チャート上でEAの動作をリアルタイムで確認可能

    4. パラメータを設定する

    EAのバックテストと最適化 パラメータ設定
    1. “パラメータ” タブを開く
    2. 変更したい項目の “値” 列をダブルクリックし、任意の数値を直接入力
    3. .setファイルを使う場合は、表のどこかで右クリック → “読み込み” → 該当ファイルを選択
    4. 読み込んだ内容を確認し、必要に応じて “値” を変更

    5. バックテスト開始

      右下の “スタート” ボタンをクリックしてバックテストを実行

    バックテストの結果確認

    • バックテストタブ 総損益、プロフィットファクター、勝率勝率などの統計情報を確認できる
    • グラフタブ 資産曲線を確認できる
    • 操作タブ 注文履歴やエラーの内容がここに表示される

    最適化とは?

    最適化とは、EAのパラメータを調整しながら、最も良い結果を出す組み合わせを探す作業です。バックテストで得られた結果をもとに、利益の最大化やリスクの最小化を目指して、EAの設定を細かく調整していきます。

    最適化の目的

    • パフォーマンスの最大化
      • EAが生み出す利益を最大化し、損失を最小限に抑えるために、最適なパラメータの組み合わせを見つけます。例えば TakeProfitとStopLossの値を調整するだけでも、収益性が大きく変化します。
    • 市場環境への適応
      • 相場は常に変化しており、過去のデータに合わせてEAの設定を調整することで、より現実的で安定した運用が可能になります。
      • 特に、ボラティリティが高い時期やトレンドが強い相場では、その環境に合ったパラメータ設定が重要です。

    最適化の手順

    1. テスト環境を設定する

    • 遺伝的アルゴリズム(速い) を選択
      • 一般的なPCのスペックで”リアルティックに基づいたすべてのティック”を選択したうえで、遺伝的アルゴリズム(速い)とすると相当な時間がかかるうえフリーズすることもあるため、完全アルゴリズム(遅い)は避けた方が良い

    2. パラメータを設定する

    EAのバックテストと最適化 のパラメータ設定
    1. “パラメータ” タブを開く
    2. “変数名” の列で、比較したい項目にチェックを入れる
    3. “スタート” “ステップ” “ストップ” に数値を入力する
      • 例えばTakeProfitの項目で、スタート(開始値) 20、ステップ(増加数) 5、ストップ(終了値) 40 とすると、20,25,30,35,40 の5パターンが自動でテストされる
      • 最初に 9パターン(3×3)、次に27パターン(3×9)などと、少しづつパターンを増やしながら、PCのスペックの許容範囲や、ご自身の時間効率を確認することを推奨します

    3. バックテスト開始

      右下の “スタート” ボタンをクリックしてバックテストを実行

    最適化の結果確認

    結果はオプティマイズタブに一覧表示されます。ここには、各パラメータの組み合わせごとのテスト結果が表形式で並び、損益・取引数・ドローダウンなどの統計情報を比較できます。

    • 項目名をクリックすると並べ替えられるため、重視する項目で並べ替えると良い
    • 詳細を確認したい結果を右クリックし “この設定でバックテスト” を選択すると、そのパラメータ設定で単一のバックテストが実行される

    お勧めの最適化手順

    EAの作成者やロジックによって結果は異なりますが、MT4Uで配布しているEAに関しては、「始値のみ」でのバックテスト結果と「リアルティックデータ」での結果に大きな差はありません (始値のみの方が若干良い結果となる)。 その特性を利用し、ここでは短時間で最終形にたどり着くための効率的な最適化手順をご紹介します。

    1. “始値のみ” で、複数のパラメータを組み合わせて最適化を実施
    2. 最も良い結果を右クリックし、使用されたパラメータを確認する
    3. 2.のパラメータの値に対して、再度最適化を行う
      • 最初は±5の範囲で、最後は±1の範囲でと狭めていく
    4. ステップ2〜3を繰り返し、始値のみでの最適化を完了させる
    5. 次に “リアルティックに基づいたすべてのティック” で一度バックテストを行い “始値のみ” の場合と大差がないことを確認
    6. TakeProfitとStopLossの値に対して、±1から±5の範囲で “リアルティックに基づいたすべてのティック” で最適化(計9パターン)を実施
      • 例えばTakeprofitが10の場合は±1、100の場合は±5など、数値の大小に合わせて調整
    7. ステップ6で最も良かった結果を採用し、セットファイルとして保存します。

    終わりに・・・

    非常に重要な内容のため長くなりましたが、それだけEA運用において欠かせない重要な手順です。EAとセットファイルを入手した際は、必ずこの工程を実施し、ご自身の環境に合わせた最適化を行ってください。

    なお、MT4Uでは過度なカーブフィッティング(過剰な最適化)を避ける方針を採っているため、初期設定では取引禁止の曜日や時間帯は設定していません(MT5の0:00〜1:00を除く)。しかし、これらの設定を調整することで、東京市場やロンドン市場など、特定の時間帯に合わせた最適化も可能です。

    また、通貨ペアや時間足の組み合わせは自由に変更できるほか、インジケーターのパラメータを最適化することで、より高いパフォーマンスを引き出すことも可能です。配布された設定をそのまま使うのではなく、ご自身で納得のいく最適化を行い、その結果をセットファイルとして保存・運用することで、より安定した成果が期待できます。

    AXIORY バックテストと最適化
    FBS バックテストと最適化
    FxPro バックテストと最適化