テクニカルEA化

RSIのダイバージェンス判定をMQL5で実装する難しさ

人間の目には明確に見えるRSIのダイバージェンス(価格の逆行現象)を、MQL5で厳密にプログラムしEAに組み込むのは非常に難易度が高いです。 「高値や安値の定義(どの期間の頂点とするか)」「RSIの頂点と価格の頂点を同期させるタイミング」など、曖昧な視覚的判断を明確な数式・論理条件に落とし込む過程で、多くの「ダマシ」や「判定漏れ」が発生するためです。 RSI

Read this for この手法を、EAの条件として分解する。

テクニカルは入口だけではなく、見送り条件、方向判定、撤退条件に分けると検証しやすくなります。

Category テクニカルEA化

RSI / EA logic

RSIのダイバージェンス判定をMQL5で実装する難しさ

結論

人間の目には明確に見えるRSIのダイバージェンス(価格の逆行現象)を、MQL5で厳密にプログラムしEAに組み込むのは非常に難易度が高いです。 「高値や安値の定義(どの期間の頂点とするか)」「RSIの頂点と価格の頂点を同期させるタイミング」など、曖昧な視覚的判断を明確な数式・論理条件に落とし込む過程で、多くの「ダマシ」や「判定漏れ」が発生するためです。

なぜEA運用で重要か

RSIのダイバージェンスは、トレンドの転換点をピンポイントで捉える強力なシグナルとして知られています。 そのため、「これをEA化できればの逆張りEAができる」と考える開発者は多いです。しかし、実際にプログラムしてみると、人間が脳内で無意識に行っている「ノイズの除去(意味のない小さな山谷の無視)」をコードで再現できず、期待通りの箇所でエントリーしてくれないという壁にぶつかります。

仕組み・条件

ダイバージェンスの基本条件(弱気ダイバージェンスの場合):

  1. 価格が直近の高値を更新している(Higher High)
  2. 同じ期間で、RSIが直近の高値を更新できず切り下げている(Lower High)

これをMQL5で実装するには、通常フラクタル(iFractals)やZigZagインジケーターを用いて「直近の山(頂点)」を定義し、その時間(インデックス)におけるRSIの値を取得して比較します。

バックテストやリアル運用で壊れるポイント

どう確認するか

まずは自身のEAのチャートに「ZigZag」と「RSI」を表示し、EAが「ここでダイバージェンスが発生した」と認識した箇所に垂直線を引く(またはPrint関数でログを出す)ようにプログラミングします。 そしてバックテストをビジュアルモードで回し、「人間の目で見てダイバージェンスと呼べるか?」「エントリーのタイミングは遅すぎないか?」を1つ1つ目視で確認(デバッグ)する必要があります。

自分の検証スタンス

私はダイバージェンス判定をメインのトリガーにするEAの自作は、コスパ(開発難易度に対するリターン)が悪いと判断して避けています。 代わりに、RSIが単に買われすぎ(70以上)や売られすぎ(30以下)のゾーンに達したことを基本条件とし、そこに「ADXによるトレンドの勢い低下」や「ボリンジャーバンドのスクイーズ」といった別の指標を組み合わせることで、擬似的にダイバージェンスに近い反転ポイントを狙うアプローチを取っています。人間のように「空気を読む」のはAIやEAには不得手だからです。

関連して読む

Technical to EA この手法を、EAの条件として分解する。

テクニカルは入口だけではなく、見送り条件、方向判定、撤退条件に分けると検証しやすくなります。

参照した公式情報

免責

本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。