バックテストとは|EA検証で確認する期間・スプレッド・setファイルの基本
バックテストとは、過去の価格データを使ってEAの動作を確認する検証作業です。
EAを使う前にバックテストを行うことで、過去の一定期間におけるエントリー、決済、ドローダウン、証拠金維持率、ポジション数、スプレッド条件などを確認できます。
ただし、バックテスト結果は将来の結果を保証するものではありません。検証結果を見る時は、総損益や勝率だけでなく、検証期間、銘柄、時間足、スプレッド、setファイル、最大ドローダウン、ログをあわせて確認することが重要です。
この記事では、バックテストの基本と、EA検証で確認したい期間・スプレッド・setファイルの考え方を整理します。
なお、この記事はバックテストの意味と確認方法を整理するための内容です。売買判断、推奨ロット、推奨銘柄、推奨エントリー、利益保証を行う内容ではありません。
この記事で確認すること
| 確認項目 | 内容 | EA検証で関係する場面 |
|---|---|---|
| バックテスト | 過去データでEAの動作を確認する検証です。 | EA導入前、設定比較、動作確認に関係します。 |
| 検証期間 | バックテストする開始日と終了日です。 | 短期結果だけで判断しないために記録します。 |
| 銘柄 | USDJPY、EURUSD、GOLD / XAUUSDなどの対象です。 | 銘柄仕様、スプレッド、値幅、tick valueに関係します。 |
| 時間足 | M1、M5、M15、H1などのチャート単位です。 | EAが想定する判定条件と一致しているか確認します。 |
| スプレッド | 買値と売値の差です。 | 取引コスト、発注可否、検証結果に影響します。 |
| setファイル | EAの設定値を保存したファイルです。 | 検証条件の再現と比較に使います。 |
バックテストとは
バックテストとは、過去の相場データを使ってEAの動作を確認する作業です。
MT4 / MT5のストラテジーテスターなどを使い、指定した銘柄、時間足、期間、スプレッド、EA設定で、過去にどのような注文や決済が発生したかを確認します。
| 項目 | 意味 | 確認ポイント |
|---|---|---|
| 過去データ | 過去の価格情報です。 | データ品質や取得期間を確認します。 |
| EA設定 | EAのInputsやsetファイルの内容です。 | どの設定で検証したか保存します。 |
| 注文履歴 | バックテスト中に発生した注文です。 | エントリー時刻、方向、ロット、価格を確認します。 |
| 決済履歴 | バックテスト中に閉じた取引です。 | TP、SL、内部決済、トレーリングなどの理由を確認します。 |
| 検証結果 | 損益、DD、PF、勝率などの結果です。 | 単独ではなく複数指標で確認します。 |
バックテストで確認できること
バックテストでは、EAの過去データ上での動作を確認できます。
ただし、確認できるのは「指定した条件で過去データに対してどう動いたか」です。実運用で同じ結果になることを保証するものではありません。
| 確認できること | 内容 | 注意点 |
|---|---|---|
| エントリー回数 | EAが何回取引したかを確認します。 | 少なすぎる場合、判断材料が不足する場合があります。 |
| 決済理由 | TP、SL、トレーリング、内部決済などを確認します。 | 履歴だけでなくログも確認します。 |
| 総損益 | 検証期間全体の損益です。 | 単独では判断しないようにします。 |
| 最大ドローダウン | 資金の最大落ち込みです。 | EAのリスク確認に使います。 |
| 証拠金維持率 | 資金余力の低下を確認します。 | ロスカットリスク確認に関係します。 |
| 資金曲線 | 残高や有効証拠金の推移です。 | 急落、長期停滞、回復までの流れを確認します。 |
バックテスト結果だけで判断しない
バックテスト結果は、EA確認の重要な材料ですが、それだけでEAの良し悪しを断定しないことが重要です。
同じEAでも、銘柄、時間足、期間、スプレッド、ロット、setファイル、ヒストリカルデータ、約定条件によって結果が変わる場合があります。
| 見落としやすい項目 | 確認する理由 |
|---|---|
| 検証期間 | 短期間だけ良い結果になっていないか確認します。 |
| スプレッド条件 | 実運用と違いすぎる条件で検証していないか確認します。 |
| 最大DD | 利益の途中でどれだけ資金が落ち込んだか確認します。 |
| 取引回数 | 検証結果の判断材料として十分か確認します。 |
| 証拠金維持率 | 資金余力が極端に低下していないか確認します。 |
| setファイル | 同じ条件で再現できるように保存します。 |
バックテスト結果をリアル運用と混同しない
バックテストは、過去データ上でEAの条件判定や注文、決済、ロット計算を確認するための検証です。将来の結果を保証するものではなく、リアル運用ではスプレッド、約定、スリッページ、サーバー時間、銘柄仕様、通信環境などの影響を受けます。
| バックテストで確認すること | リアル運用で別途確認すること |
|---|---|
| 期間、時間足、銘柄、setファイル | 実際の稼働環境、口座タイプ、銘柄名 |
| スプレッド設定、取引回数、最大DD | 実スプレッド、約定価格、スリッページ |
| レポート上の損益やPF | Expertsログ、Journalログ、発注見送り理由 |
| 検証条件の再現性 | VPS、通信、WebRequest、通知、外部連携 |
MT5で具体的なバックテスト手順を確認する場合は、MT5バックテストのやり方を確認してください。
バックテストとリアル運用の差分を確認する場合は、MT5でバックテストとリアル運用の違いを確認すること、MQL5開発・検証記録として整理する場合は、MQL5バックテスト実務ノートも参考になります。
検証期間の確認
バックテストでは、どの期間を検証したかを必ず記録します。
短い期間だけの結果では、特定の相場に合っていただけの可能性があります。反対に、長い期間で検証しても、相場環境の変化やスプレッド条件の違いを確認しないと、結果の意味を読み誤る場合があります。
| 期間の種類 | 確認目的 | 注意点 |
|---|---|---|
| 短期検証 | 直近の動作確認や設定比較に使います。 | 期間が短いため、過信しないようにします。 |
| 中期検証 | 複数の相場局面を確認します。 | トレンド、レンジ、急変動を含むか確認します。 |
| 長期検証 | EAの資金曲線やDD傾向を確認します。 | データ品質、スプレッド条件、検証時間に注意します。 |
| イベント期間 | 急変動や相場変化に対する挙動を確認します。 | 通常期間と分けて確認します。 |
銘柄と時間足の確認
バックテストでは、対象銘柄と時間足を固定して記録します。
EAによっては、特定の銘柄や時間足を前提に作られている場合があります。想定外の銘柄や時間足で検証すると、結果の意味が変わる場合があります。
| 確認項目 | 内容 | EA検証での注意点 |
|---|---|---|
| 銘柄 | USDJPY、EURUSD、GOLD / XAUUSDなどです。 | スプレッド、値幅、契約サイズ、tick valueを確認します。 |
| 時間足 | M1、M5、M15、H1などです。 | EAが想定する判定周期と合っているか確認します。 |
| digits | 価格表示の小数桁数です。 | SL、TP、スプレッド、ナンピン幅の単位に関係します。 |
| point | MT4 / MT5上の最小価格変動単位です。 | 設定値の単位を確認します。 |
| tick value | 最小変動あたりの損益に関係します。 | GOLD / XAUUSDやCFDで確認します。 |
スプレッド条件の確認
バックテストでは、スプレッド条件を記録することが重要です。
スプレッドは取引コストだけでなく、EAの発注条件にも関係します。最大スプレッド設定があるEAでは、スプレッド条件によって発注回数や結果が変わる場合があります。
| 確認項目 | 内容 | 確認ポイント |
|---|---|---|
| 固定スプレッド | 一定のスプレッドで検証する方式です。 | 設定値を記録します。 |
| 変動スプレッド | 過去データ上の変動を反映する方式です。 | 実運用に近い条件か確認します。 |
| 最大スプレッド設定 | EAが発注を許可する上限です。 | 発注見送り回数に影響します。 |
| GOLD / XAUUSDのスプレッド | 時間帯や相場状況で広がる場合があります。 | 短期売買EAやナンピンEAでは特に確認します。 |
| 発注ブロック | スプレッド超過でEAが発注しない状態です。 | Expertsログで確認します。 |
setファイルとは
setファイルとは、EAの設定値を保存したファイルです。
バックテストで使ったsetファイルを保存しておくことで、後から同じ条件で再検証したり、別の設定と比較したりしやすくなります。
| 項目 | 内容 | 確認ポイント |
|---|---|---|
| EA名 | 検証したEAの名称です。 | バージョンも記録します。 |
| 設定値 | Inputsに入力した値です。 | ロット、スプレッド、TP/SL、時間設定などを確認します。 |
| 保存日 | setファイルを保存した日付です。 | 検証結果と紐づけます。 |
| 検証条件 | 銘柄、時間足、期間、スプレッドなどです。 | setファイルだけでなく別途記録します。 |
| 変更履歴 | 前回設定から変えた内容です。 | どの変更が結果に影響したか確認します。 |
setファイルだけでは検証条件は完結しません
setファイルにはEAの設定値を保存できますが、検証期間、銘柄、時間足、スプレッド、ヒストリカルデータの状態までは十分に含まれない場合があります。
そのため、バックテスト結果を比較する時は、setファイルに加えて、検証条件を別途記録してください。
バックテストで見る主な指標
バックテスト結果では、複数の指標をあわせて確認します。
| 指標 | 意味 | 確認ポイント |
|---|---|---|
| 総損益 | 検証期間全体の損益です。 | 単独では判断しません。 |
| PF | 総利益と総損失の比率です。 | 取引回数やDDとあわせて確認します。 |
| 勝率 | 利益で終わった取引の割合です。 | 利益幅と損失幅も確認します。 |
| 最大ドローダウン | 資金の最大落ち込みです。 | EAのリスク確認に使います。 |
| 取引回数 | 検証期間中のトレード数です。 | 少なすぎる場合は判断材料が不足する場合があります。 |
| 平均利益 / 平均損失 | 1回あたりの平均的な利益と損失です。 | 勝率だけでは見えない損益構造を確認します。 |
| 最大ポジション数 | 同時保有した最大数です。 | ナンピンEAや複数ロジックEAで確認します。 |
| 証拠金維持率 | 資金余力の低下を確認します。 | ロスカットリスク確認に関係します。 |
ナンピンEAのバックテストで確認すること
ナンピンEAでは、最終損益だけでなく、追加ポジションが増えた時の資金状態を確認します。
| 確認項目 | 内容 | 注意点 |
|---|---|---|
| 初回ロット | 最初に発注するロットです。 | 損益変動と必要証拠金の基準になります。 |
| 追加ロット | ナンピン時に追加するロットです。 | 倍率式では急にロットが増える場合があります。 |
| 最大回数 | 追加ポジションの上限です。 | 最大必要証拠金と最大含み損を確認します。 |
| 平均建値 | 複数ポジションの平均価格です。 | バスケット決済や含み損確認に関係します。 |
| 最大DD | 最大の資金落ち込みです。 | ナンピン進行時の落ち込みを確認します。 |
| 証拠金維持率 | 口座余力の低下です。 | ロスカット条件に近づいていないか確認します。 |
GOLD / XAUUSDのバックテストで確認すること
GOLD / XAUUSDでは、通貨ペアと同じ感覚でバックテスト結果を読まないことが重要です。
値幅、スプレッド、tick value、契約サイズ、point、digitsの違いにより、同じロットや同じSL / TP設定でも、資金変動の見え方が変わる場合があります。
| 確認項目 | 注意点 | EA検証での確認ポイント |
|---|---|---|
| 値幅 | 短時間で大きく動く場合があります。 | SL、TP、DD、含み損を確認します。 |
| スプレッド | 時間帯や相場状況で広がる場合があります。 | 固定スプレッドと実運用時の差を確認します。 |
| tick value | 最小変動あたりの損益に関係します。 | ロットごとの損益変動を確認します。 |
| point / digits | 価格表示の単位を混同しやすい項目です。 | EA設定値の単位を確認します。 |
| 最大DD | 資金の最大落ち込みです。 | GOLD / XAUUSD特有の値動きでDDが大きくなっていないか確認します。 |
バックテストログで確認すること
バックテストでは、結果レポートだけでなく、Expertsログやテスター上の注文履歴も確認します。
| ログで確認する項目 | 確認内容 |
|---|---|
| entry_reason | どの条件でエントリーしたか確認します。 |
| entry_skip | 発注を見送った理由を確認します。 |
| spread_block | スプレッド超過で発注を止めたか確認します。 |
| order_fail | 注文失敗が発生していないか確認します。 |
| close_reason | TP、SL、内部決済、トレーリングなどの決済理由を確認します。 |
| balance | 残高の推移を確認します。 |
| equity | 有効証拠金の推移を確認します。 |
| margin_level | 証拠金維持率の低下を確認します。 |
バックテスト条件の記録例
| 記録項目 | 記録する内容 |
|---|---|
| EA名 | 使用したEA名とバージョンを記録します。 |
| 銘柄 | 検証した銘柄を記録します。 |
| 時間足 | 検証した時間足を記録します。 |
| 期間 | 開始日と終了日を記録します。 |
| 初期残高 | バックテスト開始時の資金条件を記録します。 |
| スプレッド | 固定、変動、現在値などの条件を記録します。 |
| ロット設定 | 固定ロット、複利、ナンピン倍率などを記録します。 |
| setファイル | 使用したsetファイル名を記録します。 |
| 結果ファイル | レポートやスクリーンショットの保存場所を記録します。 |
| ログ | ExpertsログやJournalログを保存します。 |
実務チェック表
| チェック項目 | 確認内容 |
|---|---|
| 検証期間を記録した | 開始日、終了日、検証対象期間を保存します。 |
| 銘柄と時間足を記録した | EAが想定する銘柄・時間足と一致しているか確認します。 |
| スプレッド条件を記録した | 固定スプレッド、変動スプレッド、最大スプレッド設定を確認します。 |
| setファイルを保存した | EA設定を再現できるように保存します。 |
| 最大DDを確認した | 資金の最大落ち込みを確認します。 |
| 証拠金維持率を確認した | ロスカット条件に近づいていないか確認します。 |
| 注文履歴を確認した | エントリー時刻、方向、ロット、決済理由を確認します。 |
| ログを確認した | entry_skip、spread_block、order_fail、close_reasonを確認します。 |
| 結果を過信していない | バックテスト結果は将来の結果を保証しないことを前提に確認します。 |
FAQ
バックテストとは何ですか?
バックテストとは、過去の価格データを使ってEAの動作を確認する検証作業です。指定した銘柄、時間足、期間、スプレッド、EA設定で、過去にどのような注文や決済が発生したかを確認します。
バックテスト結果は将来の成績を保証しますか?
保証しません。バックテストは指定条件で過去データに対してどう動いたかを確認するものです。実運用ではスプレッド、約定条件、相場環境、通信環境などが異なる場合があります。
バックテストで必ず記録するものは何ですか?
銘柄、時間足、期間、初期残高、スプレッド、ロット設定、setファイル、EA名とバージョン、結果レポート、ログを記録してください。
setファイルだけ保存すれば再現できますか?
setファイルだけでは不十分な場合があります。検証期間、銘柄、時間足、スプレッド、ヒストリカルデータの状態もあわせて記録してください。
バックテストでは総損益だけ見ればよいですか?
総損益だけでは不十分です。最大ドローダウン、資金曲線、取引回数、PF、勝率、平均利益、平均損失、証拠金維持率も確認してください。
GOLD / XAUUSDのバックテストで注意することはありますか?
値幅、スプレッド、tick value、契約サイズ、point、digitsを確認してください。通貨ペアと同じ感覚でロットやSL / TPを読むと、結果の解釈を誤る場合があります。
関連ページ
| 関連ページ | 確認目的 |
|---|---|
| FX用語辞典 | EA・MT4/MT5を使う前に確認したいFX用語全体を確認します。 |
| setファイルとは | EA設定を保存、比較、再現するための基本用語を確認します。 |
| EAのバックテストレポートとは | 損益、PF、DD、取引回数など、テスト結果の見方を確認します。 |
| PFとは | 総利益と総損失の比率を確認する基本用語を確認します。 |
| ドローダウンとは | EAバックテストや運用中に確認する資金の落ち込みを確認します。 |
| EAログとは | Testerログ、Expertsログ、注文ブロック理由などの確認に使います。 |
まとめ
バックテストは、過去データを使ってEAの動作を確認する検証作業です。
EA検証では、総損益や勝率だけでなく、検証期間、銘柄、時間足、スプレッド、setファイル、最大ドローダウン、証拠金維持率、注文履歴、ログをあわせて確認することが重要です。
setファイルはEA設定の再現に役立ちますが、検証期間、スプレッド、銘柄、時間足、ヒストリカルデータの状態も別途記録してください。
バックテスト結果は将来の結果を保証するものではありません。実運用前には、デモ環境や検証環境で、EAの動作、発注条件、決済理由、Expertsログ、Journalログを確認してください。
