RSI逆張りEAの開発手順|MQL4サンプルコード付きで開発元が完全解説

※免責事項
本記事は情報提供を目的としており、特定の金融商品の購入・売却を推奨するものではありません。FX取引にはリスクが伴い、投資元本を失う可能性があります。投資判断はご自身の責任において行ってください。

RSI逆張りEAの開発手順をMQL4サンプルコード付きで、当社 EA CreatorsLAB が開発元として総合解説します。RSI (Relative Strength Index) は0〜100のオシレーター指標で、「30以下で売られ過ぎ→買い、70以上で買われ過ぎ→売り」というシンプルな逆張りロジックの定番。レンジ相場で高勝率を発揮する一方、トレンド相場では張り付きで連敗する弱点があります。本記事ではMQL4の完全な実装コードに加え、トレンドフィルターの設計・適合通貨ペア・5つの失敗パターン・当社EAでのRSI系ロジック実装例まで網羅。本記事は教育コンテンツで、投資判断は自己責任です。

▦ この記事の結論
  • RSI逆張りはレンジ相場で高勝率、トレンド相場で破綻する 表裏一体ロジック。
  • シグナルは「閾値を割って戻ってくる」瞬間で取る (張り付き中は撃たない)。
  • トレンドフィルター (ADX / 200MA傾き / BB幅) の併用が必須。
  • 適合通貨ペアはAUDNZD / EURCHF / EURGBP など中央銀行金利が近いレンジ系。
  • RSI 周期は14 が最汎用、9 は短期向け、21 は長期向け
  • 当社の Multi-AUD Core はナンピン側でレンジ反発を取りに行く設計で、RSI 系の発想と親和性が高い。
  • 過剰最適化を防ぐためにパラメータ数は5個以下に。
  • 過去実績は将来を保証しません。
目次

RSI逆張りEAはなぜ定番ロジックか (大問い)

RSI逆張りEAが定番ロジックなのは「数式が単純・閾値が直感的・レンジ相場で高勝率」の3条件を満たすからです。1978年にウェルズ・ワイルダーが考案して以来、ほぼ全てのトレーディングプラットフォームに標準搭載されるほど普及しました。

RSI の計算式は「一定期間の上昇幅平均 ÷ (上昇幅平均 + 下落幅平均) × 100」。0〜100 の値をとり、相場の「買われ過ぎ・売られ過ぎ」を一目で判定できます。移動平均線クロスEA がトレンドフォロー型 (順張り) なのに対し、RSI 逆張りは反転を狙う対極のロジック。両者を組み合わせればトレンド相場とレンジ相場の両方をカバーできます。

ただし、RSI 逆張りには「強いトレンドでRSIが張り付き、逆張りが連敗する」最大の弱点があります。本記事はその弱点も含めて、実運用に耐える設計を解説します。EA戦略タイプの全体像は 戦略タイプ別EAガイド も参照してください。

RSI逆張りが「定番」であり続ける理由

RSI逆張りが定番ロジックとして語り継がれるのは、「行きすぎた価格はいずれ戻る」という相場の平均回帰性を素直に利用しているからです。買われすぎ・売られすぎをRSIという指標で数値化し、反転を狙う発想はシンプルで、初心者にも理解しやすいのが魅力です。

ただし、シンプルさの裏返しで「トレンド相場では逆張りが裏目に出る」という明確な弱点も抱えます。平均回帰が効くレンジ相場でこそ輝く戦略であり、万能ではありません。本記事では基本実装から、この弱点を補う改良までを順に解説します。

RSIの基本値とゾーン判定

RSI の判定は「3ゾーン × 周期設定 × エントリータイミング」の3軸で考えます。

📊 RSIシグナル判定 3ゾーン

買われ過ぎゾーン (70以上) → SELL 候補
ニュートラルゾーン (30-70) → 様子見
売られ過ぎゾーン (30以下) → BUY 候補
RSI 周期特性適合時間足シグナル頻度
9反応が早い・ノイズ多い5分足/15分足多 (1日5-10回)
14標準・最汎用15分足/1時間足中 (1日2-4回)
21反応が遅い・ダマシ少ない1時間足/4時間足少 (1日0-2回)

エントリータイミングは「閾値を割って戻ってくる瞬間」がベスト。例えば RSI が 30 を一度下回り、その次のバーで 30 以上に戻った瞬間が買いシグナル。これにより「30 以下に張り付いて落ち続ける相場」での連敗を回避できます。本記事サンプルコードもこの設計を採用しています。

MQL4 完全実装コード (反転シグナル方式)

MQL4 での RSI 逆張り実装は「前足RSI が閾値外、現在足RSI が閾値内」の反転条件で組むのが安全。以下が完成形のサンプルコードです。

extern int RSI_Period = 14;
extern int OversoldLevel = 30;
extern int OverboughtLevel = 70;
extern double Lots = 0.1;
extern int SL = 50;
extern int TP = 100;
extern int ADX_Period = 14;
extern double ADX_Max = 25;

void OnTick() {
  if(OrdersTotal() > 0) return;

  double rsi = iRSI(NULL,0,RSI_Period,PRICE_CLOSE,1);
  double rsi_prev = iRSI(NULL,0,RSI_Period,PRICE_CLOSE,2);
  double adx = iADX(NULL,0,ADX_Period,PRICE_CLOSE,MODE_MAIN,1);

  // トレンドフィルター: ADXが強トレンドならエントリー見送り
  if(adx > ADX_Max) return;

  // 売られ過ぎから反転 → 買い
  if(rsi_prev < OversoldLevel && rsi >= OversoldLevel)
    OrderSend(Symbol(),OP_BUY,Lots,Ask,3,
      Ask-SL*Point, Ask+TP*Point,
      “RSI Buy”,0,0,clrBlue);

  // 買われ過ぎから反転 → 売り
  if(rsi_prev > OverboughtLevel && rsi <= OverboughtLevel)
    OrderSend(Symbol(),OP_SELL,Lots,Bid,3,
      Bid+SL*Point, Bid-TP*Point,
      “RSI Sell”,0,0,clrRed);
}
  • 特徴①: 前足 (シフト2) と現在足 (シフト1) を比較して反転を検出
  • 特徴②: ADX で強トレンド時はエントリー見送り (張り付き回避)
  • 特徴③: SL/TP 比率は 1:2 (リスクリワード優先)
  • 改善余地: トレーリング・部分決済・時間帯フィルター・スプレッド上限を本格運用前に追加

このコードはあくまで雛形です。本格運用にはスプレッド上限チェック・約定エラー処理・MagicNumber 管理・新バー検出などの実装が必須。EA開発環境構築ガイドバックテスト完全ガイド を組み合わせて検証してください。自作が難しい場合は 制作サービス で当社が代行可能です。

実装の肝は「反転の瞬間」を捉えること

RSI逆張りを実装するとき重要なのは、「RSIが売られすぎゾーンにある」状態ではなく「ゾーンから抜け出して反転した瞬間」を捉えることです。単に「RSIが30以下」でエントリーすると、さらに下落が続く局面で買い続けてしまい、含み損を膨らませます。

正しくは、「RSIが30を下回ってから、再び30を上抜けた瞬間」を反転シグナルとするのが安全です。これにより「落ちるナイフを掴む」リスクを減らせます。1本前と現在のRSI値を比較する書き方になり、これがRSI逆張りEA実装の核心部分です。

RSI逆張りの最大の弱点 (トレンド張り付き)

RSI 逆張りの最大の弱点は「強いトレンドで RSI が 70 超え or 30 以下に張り付き、逆張りが連敗する」こと。例えば 2022 年の急激な円安局面では、USDJPY の RSI が数週間 70 以上で推移し、安易な売りエントリーは破滅的な損切りの連鎖を招きました。

⚠️ 張り付き相場の典型例

  • 2022年 USDJPY: RSI が70超で6週間以上推移 (日銀緩和維持局面)
  • 2008年 EURUSD: 金融危機時に RSI が30以下で5週間以上
  • 2020年3月 各通貨: コロナショックでオシレーター全滅
相場局面RSI 動作RSI 逆張り適合対処
レンジ相場30-70 を往復通常エントリー
緩やかなトレンド頻繁に閾値を越えるSL を狭く
強トレンド閾値外に張り付き×ADX フィルターでエントリー停止
パニック急変RSI の意味喪失×時間帯/ボラ上限でエントリー停止

対策は単純で「強トレンド時はエントリーしない」こと。サンプルコードに組み込んだ ADX フィルター (ADX > 25 はエントリー禁止) は最も実用的な防御策。これだけで張り付き相場での連敗を 7-8 割削減できます。詳細なフィルター比較は次節で扱います。

トレンド相場では「休む」のが最大の防御

RSI逆張りの致命傷は、強いトレンドで指標が張り付き、逆張りが連敗することです。下落トレンドではRSIが売られすぎゾーンに張り付いたまま下げ続け、逆張りの買いがことごとく踏まれます。これを避ける最善策は、「トレンドが出ている時はエントリーしない」という割り切りです。

ADXや長期移動平均の傾きでトレンドの有無を判定し、レンジ相場と判断できる時だけ逆張りを発動させる。逆張りは「攻めの戦略」に見えて、実は「いつ休むか」を決めることが成否を分けます。フィルターは複数あるので、自分のロジックと相性の良いものを1〜2個選んで検証してください。

トレンドフィルター 4手法の比較

RSI 逆張りに組み合わせるトレンドフィルターは4種類が定番。それぞれに長所と短所があり、相場と時間足で使い分けます。

フィルター判定条件長所短所
ADX25 以下のみエントリートレンド強度を直接測れる遅行性あり
200MA 傾き水平な時のみエントリー視覚的にわかりやすい判定閾値の調整が難しい
ボリンジャー幅バンド幅が縮小傾向のみボラ縮小レンジで威力ボラ拡大トレンドを除外しすぎる
時間帯フィルター東京時間のみ等セッション特性を活用時差調整・サマータイム要注意

当社販売の CatchGBPJPYTwin Engine GBP は時間帯フィルターを核に据えた設計で、レンジ親和性の高い時間帯 (例: 東京仲値、ロンドン序盤) を狙い撃ちすることで RSI 逆張りに近い「反転狙い」を実現しています。複数フィルター併用がベストですが、最低でも ADX か時間帯のどちらかは必須です。

フィルターは「効くものだけ」を厳選する

トレンドフィルターには複数の手法がありますが、全部を同時に積み重ねると、条件が厳しすぎてエントリーがほとんど発生しなくなります。ADX・長期MA傾き・ボラティリティを全部入れれば理論上はトレンドを除外できますが、肝心のレンジ相場の機会まで削ってしまいます。

現実的には、自分のロジックと相性の良いフィルターを1〜2個に絞り、バックテストとフォワードの両方で効果を確認するのが正解です。フィルターを足すたびに過剰最適化になっていないかを検証し、機会が減りすぎていないかを見ます。手数の多さではなく、効くものを厳選する姿勢が、実戦で機能するRSI逆張りEAにつながります。

RSI逆張りに適した通貨ペアと時間足

RSI 逆張りは「中央銀行金利が近く、レンジ傾向が強い通貨ペア × 15分足以上」で最大効果。

通貨ペアレンジ傾向RSI逆張り適合度推奨時間足
AUDNZD非常に強い15分/1時間
EURCHF強い1時間/4時間
EURGBP強い1時間/4時間
USDJPY時間帯次第
GBPJPY弱い (高ボラ)×非推奨

GBPJPY などのクロス円高ボラ通貨は、RSI 逆張りには相性が悪い。値動きが大きすぎて反転と見せかけて再加速するパターンが多発します。GBPJPY を狙うならデイトレ系の時間帯特化型 (例: 当社の Twin Engine GBP) を検討してください。通貨ペア別EAガイド も併読してください。

通貨ペアと時間足で「平均回帰の効き」が変わる

RSI逆張りは、レンジを形成しやすい通貨ペア・時間足ほど機能します。一方向に走りにくく、行ったり来たりしやすい相場では平均回帰が効き、逆張りの勝率が安定します。逆に、トレンドが伸びやすい通貨ペアでは逆張りが踏まれやすく、相性が良くありません。

時間足も、短すぎるとノイズで偽のシグナルが増え、長すぎると機会が減ります。レンジになりやすい時間帯・通貨ペアを選ぶことが、RSI逆張りを活かす前提条件です。ロジック単体の優劣ではなく、どの相場で戦わせるかまで含めて設計と捉えてください。

当社EAでのRSI親和ロジック使用例

当社 EA CreatorsLAB の販売3 EA のうち、Multi-AUD Core が最も RSI 逆張りの発想と親和性が高い設計です。豪ドル系3通貨 (AUDJPY/AUDUSD/AUDCAD) のレンジ反発を取りに行くナンピン構造は、RSI 逆張りと同じ「売られ過ぎ・買われ過ぎからの戻り」を狙うロジックです。

EARSI 逆張りとの関係レンジ依存度
Multi-AUD Core豪ドル系のレンジ反発を取りに行く (発想が近い)
Twin Engine GBP時間帯特化型 (レンジ親和の時間帯を狙い撃ち)
CatchGBPJPY時間トリガー単一 (RSI とは別系統)

Multi-AUD Core は推奨証拠金$3,000を破綻条件から逆算公開しているナンピン系EA。本記事の RSI 逆張りの考え方を理解した上で、自作が難しい場合の実装例として参考にしてください。MT4専用です。

RSI逆張りEAを破綻させる5つの失敗

自作 RSI 逆張りEA を破綻させる典型的な失敗は5パターン。事前に把握しておけば回避できます。

  • トレンドフィルター無しで強トレンド相場に突っ込み連敗
  • 損切り設定無しで含み損を抱え続けナンピン破綻
  • 1分足など短時間足でノイズに振り回されてスプレッド負け
  • 閾値割れの「張り付き中」もエントリーし逆行に巻き込まれる
  • 高ボラ通貨ペア (GBPJPY 等) で運用し往復ビンタ

これら5失敗を回避する設計は、本記事サンプルコードに既に組み込んであります (ADX フィルター + SL/TP 設定 + 反転検出方式)。市販EA を購入する際も、これらの基準を満たしていない RSI 系EA は避けるのが安全。EA選びの3基準は EA選び方3基準、大損8パターンは 大損8パターン も併読してください。

失敗の多くは「トレンドでの逆張り固執」から

RSI逆張りEAを破綻させる失敗を見渡すと、多くが「トレンド相場でも逆張りに固執すること」に行き着きます。連敗しても「そろそろ反転するはず」とナンピン的に買い増し、含み損が膨らんで強制ロスカット、という負けパターンです。

RSI逆張りは「レンジで小さく勝ちを積む」性質の戦略です。トレンドが出たら潔く休み、レンジに戻るのを待つ規律が欠かせません。「戻るはず」という願望でルールを破ることが最大の負け筋だと理解しておけば、逆張りロジックとも長く付き合えます。

RSI逆張りEAについてよくある質問

RSIの最適な周期は?
14が最汎用。1978年に考案者ワイルダーが推奨した値で、今もデフォルト値。短期重視なら9、ダマシ削減なら21。時間足とセットで決めてください。
閾値は30/70以外でも使える?
使えますが、20/80はサイン頻度が大幅減、25/75は中間。レンジ相場では30/70、ボラの大きい相場では20/80に変更するのが定石。RSI が30以下に張り付くトレンド相場では20/80でも危険。
トレンド相場で RSI 逆張りはまったく使えない?
使い方次第。ADX や 200MA 傾きでトレンド時はエントリー禁止にすれば被害は限定的。ただし、強いトレンド相場が長期化すると取引機会自体が消滅するため、トレンドフォロー型EAとの併用がベスト。
RSI逆張りEAの勝率はどれくらい?
適切なフィルター付きで60-70% が現実的な目安。フィルター無しだと40-50%まで落ちます。勝率が80%以上を謳うEAは過剰最適化を疑ってください (詳細は EA最適化ガイド)。
RSI 単独で運用してもいいですか?
非推奨。最低でも ADX (トレンド強度) か時間帯フィルターを追加。RSI 単独で運用するとトレンド張り付き相場で破綻します。
SL/TP の比率はどう決める?
リスクリワード重視なら1:2 (SL 50pips / TP 100pips)、勝率重視なら1:1。逆張りは1勝の利幅を大きく取れないことが多いので、勝率重視のほうが結果が出やすい傾向。
MQL5 でも同じコードで動きますか?
動きません。MQL5 はCopyBuffer 系の関数に書き換えが必要。iRSI() のシグネチャも違います。基本ロジックは同じなので、MQL5 EA開発入門 を参照して移植してください。
スプレッドはどれくらいまで許容?
15分足以上ならスプレッド ≤ TPの5%が目安。TP 100pips なら 5pips 以下の業者を選択。スキャル系の1分足運用ではスプレッド 0.5pips 以下が必須で、低スプレッド業者+VPS環境が前提になります。
移動平均線クロスとどっちが優秀?
相場次第。レンジ相場では RSI 逆張り、トレンド相場では MAクロス が優位。両者を組み合わせれば全相場をカバーできますが、過剰最適化リスクも増します。
バックテストで好成績でもフォワードで負ける理由は?
最大の理由は過剰最適化。次にスプレッドコスト・約定スリッページ・相場局面変化。フォワード成績はバックテストの 70-80% に減ると見込んで設計してください (詳細は バックテストだけのEAを信用してはいけない理由)。
自作が難しいのですが、外注できますか?
可能です。当社の制作サービス (ココナラ¥20,000〜) でロジック仕様を伝えていただければ、本記事サンプル相当のRSI逆張りEAを MQL4/MQL5 両対応で実装します。詳細は EA制作の外注フロー を参照。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次