USDJPY M15/H1のトレンドフォロー型EAは本当に安定するのか?
自動売買EAを作るとき、つい「勝てるかどうか」だけに目が行きがちです。
ただ、実際に大事なのは再現性と破綻しにくさです。
今回は、USDJPYを対象にした保守型のトレンドフォローEA案1をバックテストし、その結果を確認しました。
結論から言うと、現段階では採用保留です。
理由は単純で、成績そのものに安定感が足りないことに加え、EA内部の管理ロジックにも修正すべき点が見つかったからです。
今回検証したEAの概要
今回の案1は、比較的オーソドックスな構成です。
上位足でトレンド方向を判定し、下位足でエントリーを行うタイプで、方向感が出た場面だけを狙う設計になっています。
ロジックの基本構成
- 上位足: H1
- エントリー足: M15
- 売買方針: トレンドフォロー
- 損切り・利確: ATRベース
- 補助機能:
- ブレイクイーブン
- トレーリングストップ
- 一定時間経過での決済
- 日次損失制限
- 最大連敗停止
設計思想としてはかなり堅めで、無理に回転数を上げるタイプではありません。
1万円程度の小資金スタートを意識した場合でも、まずは「大きく崩れにくいか」を優先した形です。
最初のバックテスト結果
まず最初の実行結果ですが、前半期間では資金が減少し、後半期間ではほぼ変化なしという結果でした。
初回結果
- 前半期間: 100 → 92.28 USD
- 後半期間: 100 → 100.00 USD
この時点で見えるのは、
「少し負けた」こと以上に、後半でほとんど取引が発生していないという点です。
つまりこの設定は、
- 条件が厳しすぎてチャンスを逃している
- もしくは、相場に対する適応力が低い
このどちらか、または両方の可能性があります。
次の検証ではさらに悪化
次の実行では、前半の損失がさらに拡大しました。
2回目の結果
- 前半期間: 100 → 85.14 USD
- 後半期間: 100 → 100.00 USD
後半が横ばいということは、一見すると守れているようにも見えます。
ただし実態としては、守れているのではなく取引していないだけです。
このタイプの結果は、EA開発では要注意です。
取引回数が極端に少ないと、たまたま負けていないだけなのか、ロジックに本当に優位性があるのか判断しにくくなります。
フィルタを緩めたらどうなったか
次に、取引機会を増やす目的でパラメータを調整しました。
変更した主な項目
MinADX: 18 → 15MinATRPoints: 8 → 5MaxATRPoints: 45 → 80
簡単に言うと、
- もう少し弱いトレンドでも入る
- 低ボラ相場もある程度許可する
- 高ボラ相場の上限も広げる
という方向です。
狙いとしては自然です。
厳しすぎる条件で取引が少ないなら、少しだけ緩めて機会を増やすのはEA改善の定石だからです。
しかし結果は、かなり厳しいものでした。
パラメータ緩和後の結果
- 前半期間: 100 → 0.21 USD
- 後半期間: 100 → -3.79 USD
- stop out発生
これは、単なる微調整失敗というより、
緩和したことで質の低いトレードを多く拾い、資金管理が耐えられなかったと見るべき結果です。
今回の検証で見えた本質的な問題
今回のテストで問題だったのは、成績だけではありません。
ログを見ると、EAの内部挙動にいくつか明確な課題がありました。
1. 日次リセットのタイミングが不安定
ログ上では、日付切り替えの扱いが一定ではないように見えました。
本来、日次損失制限や最大連敗制限は、「1日」を正しく認識できて初めて意味を持ちます。
ところがこの部分がズレると、
- 本来停止すべき日に停止しない
- 逆に、停止しなくていい場面で止まる
- バックテスト結果の信頼性が落ちる
といった問題が出ます。
EAの“守り”を司る部分なので、ここは軽視できません。
2. トレーリングストップが過剰に作動
ログには、同じポジションに対して何度も修正命令が出ている形跡がありました。
さらに、invalid stops も出ており、
SL更新ロジックが無駄打ちや無効更新を起こしている可能性が高いです。
この状態だと、
- テスト結果がノイズを含む
- 実運用で注文拒否が増える
- サーバー負荷やログ肥大化につながる
という形で、運用品質そのものを落とします。
3. 小資金に対して最小ロットが重い
今回のテストでは、初期証拠金100USDに対して0.01lotで動いていました。
一見すると小ロットですが、100USD口座では十分に重いです。
とくにUSDJPYのような値動きのある通貨ペアでは、連敗時のダメージが小さくありません。
つまり、リスク率設定を入れていても、
ブローカーの最小ロット制約により実質的にリスク管理が効いていない状態になっていた可能性があります。
これは小資金EAでは非常に重要な論点です。
良かった点もある
とはいえ、今回の案1が全否定というわけではありません。
むしろ、設計思想そのものには良いところがあります。
良かった点
- H1で方向を見てM15で入る構造はわかりやすい
- ATRベースの損切り・利確は再現性が高い
- 日次停止や連敗停止の考え方が実務的
- ブレイクイーブンや時間決済など、運用面の配慮がある
つまり、骨格は悪くないのです。
問題は、その骨格を支える実装と、相場フィルタの精度です。
現時点での結論
今回の案1は、現段階では採用保留です。
理由を一言でまとめるなら、
**「ロジックの優位性がまだ弱く、守りの実装も不安定」**だからです。
ただし、これは失敗というより、EA開発ではごく自然な途中経過です。
むしろ早い段階で弱点がはっきり見えたのはプラスです。
中途半端に良い数字が出て期待してしまうより、
こうして課題が明確に出たほうが改善方針を立てやすくなります。
次に修正したいポイント
今後このEAを改善するなら、優先順位はかなり明確です。
優先して直すべき点
まずは以下の部分からです。
- 日次リセット基準の統一
- トレーリング更新条件の厳格化
- invalid stopsの防止
- 小資金時のロット制御見直し
そのうえで、エントリー条件を再調整します。
たとえば、
- ADXが単に一定以上ではなく上昇中か
- 直近高値・安値ブレイクを伴っているか
- ATR急拡大直後の飛び乗りを避けるか
といった条件を入れることで、無駄打ちを減らせる可能性があります。
まとめ
今回のバックテストでわかったのは、
EA開発では「勝率が高そう」「条件を少し緩めれば増える」といった感覚的な調整だけでは通用しない、ということです。
実際には、
- 取引回数は十分か
- 前半と後半で成績が分かれすぎていないか
- 小資金で最小ロットが重すぎないか
- 停止条件やSL更新が正しく機能しているか
こうした部分まで含めて初めて、実運用候補として評価できます。
今回の案1は、まだそこまで届いていません。
ただし、改善ポイントはかなり見えてきました。
次の段階では、守りの実装を安定化させたうえで、エントリー品質を上げる方向で再検証するのが妥当です。
EA開発は一発で完成させるものではなく、こうした検証と修正の積み重ねで精度を上げていくものだと改めて感じる結果でした。