EAを調べていると、「バックテストは良好でも、フォワードテストでは違う結果になった」という話を見かけます。どちらも検証ですが、見ている時間と環境が異なります。
フォワードテストは、検証開始後の相場を使い、実際の時間経過に沿ってEAの動作や成績を確認することです。EAとは、決めたルールで売買を行うプログラムのこと。この記事では、操作手順ではなく、フォワードテストの意味と結果を見るときの考え方を整理します。
フォワードテストとは?これからの相場でEAを確かめる検証
フォワードテストでは、EAを動かし始めた時点から、その後に届く価格情報に沿って売買の判断や注文の動きを観察します。過去の相場をまとめて再現する方法と違い、結果が出るまで実際に時間がかかります。
主な確認対象は、想定した条件で注文するか、決済のルールが働くか、運用環境で問題が起きないか、といった点です。利益が出たかどうかだけを調べるものではありません。
たとえば、取引が少ないEAなら、しばらく注文が出ないこともあります。それがルールどおりなのか、設定や稼働環境の問題なのかを切り分けることも、検証の一部です。
バックテストとの違いは「使うデータ」と「時間の進み方」
バックテストは過去の値動きで売買ルールを再現し、フォワードテストは検証開始後の相場で動作を確かめます。どちらか一方があれば十分、という関係ではありません。
- バックテスト:過去のさまざまな期間を比較し、ルールの特徴や弱点を調べやすい方法です。
- フォワードテスト:時間経過を待ちながら、新しく到来する相場での判断や稼働状況を確認する方法です。
バックテストの結果は、過去の価格データの品質や、スプレッドなどの取引条件によって変わります。スプレッドとは、買値と売値の差で、取引コストの一つです。手数料などを含め、現実とかけ離れた条件で計算すると、実運用との比較が難しくなります。
一方、フォワードテストにも、その期間に起きた相場しか見られない限界があります。バックテストで幅広い過去を調べ、フォワードテストでその後の動きを確認する、という役割分担で考えると整理しやすくなります。
デモ口座と実口座では、確かめられることが違う
フォワードテストは、デモ口座でも実口座でも行われます。ただし、両者の結果を同じものとして扱うことはできません。
デモ口座での確認
デモ口座は仮想の資金を使う環境です。実際に配信される価格情報を受けながら、EAの注文や決済、稼働状況を観察できます。ただし、注文が成立する処理や条件は、実口座と同じとは限りません。
実口座での確認
実口座では、実際の資金が増減し、損失も発生します。その口座での取引コストや注文の成立状況を確認できますが、資金リスクを伴います。フォワードテストという呼び名が付いていても、損失のない練習になるわけではありません。
スリッページとは、注文時に想定した価格と実際に成立した価格がずれることです。デモ口座と実口座では、その発生状況などが異なる場合があります。デモの成績を、そのまま実口座の予想成績にはできません。
フォワードテストの基本の流れ
ここでは、個別のアプリの操作ではなく、検証を比較可能な形にするための流れをまとめます。
- 確認したいことを決める:注文ルール、稼働の安定性、バックテストとの違いなど、観察の目的を整理します。
- 開始時の条件を残す:EAの名称とバージョン、設定値、通貨ペア、時間足、口座の種類、開始日、資金や取引量の条件を記録します。
- 稼働中の記録を残す:売買履歴に加え、エラー、停止、設定変更など、結果に影響しそうな出来事を記録します。
- 一定の区切りで振り返る:損益だけでなく、取引数、損失の出方、ルールどおりに動いたかを確認します。
途中で設定を変えた場合は、変更前後を分けて扱うと、どの条件の結果なのかが明確になります。複数の設定を混ぜた成績では、元の設定を評価しにくくなるためです。
結果を見るときは、利益だけで判断しない
最初に見たくなるのは利益ですが、それだけではEAの特徴はつかめません。次のように、成績と動作の両方を確認します。
- 取引数:判断材料となる売買がどれくらい集まっているか。
- 損失の出方:連続した損失や、一度の大きな損失がなかったか。
- 稼働状況:停止やエラーがあり、検証できていない時間がなかったか。
- 取引条件:スプレッド、手数料、スリッページなどが結果にどう影響したか。
成績表で使われるPFは利益と損失のバランス、最大DDは資産減少の大きさ、勝率は勝ち取引の割合を表します。リスクリワードは、利益幅と損失幅の関係を見る考え方です。
これらは組み合わせて読むための材料であり、一つの数値だけで優劣は決まりません。勝率が高くても一度の損失が大きい場合があり、利益が出ていても途中の資産減少が大きい場合があります。万能な合格ラインを探すより、どのような過程で結果に至ったかを見ることが大切です。
検証期間は「何か月なら十分」と決められない
必要な期間は、EAの取引頻度や、その間の相場環境によって異なります。期間だけ長くても取引がほとんどなければ、結果を判断する材料は限られます。反対に、取引数が多くても、似た相場ばかりなら確認できる範囲は偏ります。
上昇や下落が続く相場と、一定の範囲で上下する相場では、同じルールでも結果が変わり得ます。短すぎる期間や一種類の相場での好成績を、長期的な性質だと受け取らないようにしましょう。
これはバックテストでも同じです。検証期間、相場の偏り、取引数を一緒に見ないと、見栄えのよい結果だけを選んでしまうおそれがあります。
バックテストと結果が違うときの考え方
結果に差があっても、すぐにEAの不具合とは断定できません。まず、対象期間の相場、設定、取引コスト、データや稼働状況が違っていないかを分けて確認します。比較する期間が異なれば、単純な利益額の比較だけでは理由を判断できません。
原因の一つとして考えられるのが、過剰最適化です。これは、過去のデータに合わせすぎて、それ以外の相場では機能しにくくなることをいいます。ただし、フォワードテストの成績が悪いという理由だけで、過剰最適化だと決めつけることもできません。
公開されている他者の成績を見る場合も、デモか実口座か、期間、設定変更の有無などで意味が変わります。条件が示されていない部分は、成績の数字だけからは確認できません。
フォワードテストにも限界がある
バックテストもフォワードテストも、将来の利益を保証するものではありません。フォワードテストで確認できるのは、その期間、その設定、その環境で起きたことまでです。
実際の相場を使った検証でも、デモ口座と実運用には差があります。実口座の記録であっても、口座条件や取引量、相場環境が変われば、その後も同じ結果になるとは限りません。
初心者のうちは、「良いEAの証明」と考えるより、「想定との違いや未確認の部分を見つける作業」と捉えると、結果を落ち着いて読みやすくなります。
評価指標をもう少し詳しく知りたい方へ
ぽっちゃり勇者のひとこと
成績表を見ると、つい利益の欄に目が吸い寄せられます。でも、検証では「いくら増えたか」の隣に「どんな条件だったか」も置いておきたいですね。ぼくも勉強中なので、まずは数字と一緒に条件を読むところから。あわてず、記録を一つずつ確かめていきましょう。



