バックテストの正しいやり方

バックテスト EA開発の基礎知識

■ バックテストとは何か?

バックテストとは、 過去の相場データを使ってEA(自動売買)の性能を検証する工程です。

機械設計で例えるなら、 シミュレーション解析(CAE) に相当します。

  • 過去の入力(価格データ)
  • EAの制御ロジック
  • 出力(損益・DD・勝率)

これらを照合し、 EAがどんな相場で強く、どんな相場で弱いか を明確にします。

■ なぜバックテストが必要なのか?

技術者視点で言えば、 バックテストは “実機テスト前の必須工程” です。

✔ ① ロジックの優位性を確認できる

EAが“理論上勝てるロジック”かどうかを判断。

✔ ② リスク(DD)を数値で把握できる

最大損失を事前に知ることは安全設計の基本。

✔ ③ 相場の変化に対する耐性を確認できる

複数年のデータで検証することで、 環境変化に強いEAかどうか がわかる。

✔ ④ フォワードテストの基準値になる

バックテストとフォワードが一致すれば、 EAの再現性が高いことを意味する。

■ バックテストの正しい手順

① 過去データを最新にする(最重要)

MT4のバックテストは、 データ品質が悪いと結果が大きく歪む

手順

  1. MT4 → ツール → ヒストリーセンター
  2. XAUUSD(または対象通貨)を選択
  3. M1データをダウンロード
  4. すべての時間足を再生成

これは、 CAE解析でメッシュ精度を上げる作業 と同じ。

② テスト期間を複数年にする

最低でも 3〜5年。 理想は 2019〜現在

理由:

  • トレンド相場
  • レンジ相場
  • 急変動相場(コロナなど)
  • ボラティリティの高低

これらすべてを通過させる必要がある。

③ モデリング品質を“全ティック”にする

MT4のバックテストには3種類ある。

モード精度用途
全ティック★★★★★正確な検証(推奨)
コントロールポイント★★☆☆☆参考程度
始値のみ★☆☆☆☆ロジック確認用

EAの性能検証は必ず「全ティック」

これは、 高精度シミュレーションを選ぶのと同じ

④ パラメータは“固定”で行う

バックテストでパラメータをいじりすぎると 過剰最適化(カーブフィッティング) が起きる。

技術者視点では、 「過去データに合わせすぎた制御器」 と同じ問題。

⑤ 結果を見るポイント

✔ 1. Profit Factor(PF)

1.3〜2.0 が理想。 1.0以下は負け。

✔ 2. 最大ドローダウン(DD)

10%以下 が安全。 私が作成したGOLD専用のEA(gold_ver2_4)は 1%未満 は超優秀。

✔ 3. 勝率よりRR(リスクリワード)

勝率は低くても、 RRが高ければ勝てる。

✔ 4. 年ごとの成績

  • 2020(コロナ)
  • 2021(レンジ多め)
  • 2022〜2024(トレンド多め)

年別で安定しているか が重要。

■ バックテストでやってはいけないこと

❌ ① 過剰最適化

パラメータを調整しすぎると、 “過去だけ勝つEA” が完成する。

これは 過剰チューニングされた制御器 と同じ。

❌ ② 1年だけのテスト

短期間のテストは意味がない。 環境変化に弱いEAになる。

❌ ③ スプレッドを甘く設定する

実際のスプレッドより狭くすると、 バックテストが“理想化”される。

❌ ④ ティックデータの品質が低い

データ品質が悪いと、 解析結果が信用できない

■ バックテスト → フォワードテストの流れ

  1. バックテストでロジックの優位性を確認
  2. フォワードテストで再現性を確認
  3. 実運用で安定性を確認

これはまさに シミュレーション → 試作 → 実機テスト の流れと同じ。

■ まとめ

バックテストとは、 EAの性能を過去データで検証する“シミュレーション解析”

技術者視点で重要なのは:

  • データ品質
  • テスト期間
  • モデリング精度
  • 過剰最適化の回避
  • 年別の安定性
  • PF・DD・RRのバランス

これらを正しく行うことで、 EAの本当の実力が見えてきます。

そして、 バックテストとフォワードテストが一致したとき、 そのEAは“実戦投入レベル”になります。

コメント

タイトルとURLをコピーしました