テクニカルEA化

RSI逆張りをEA化するなら「いつ逆張りしてはいけないか」を先に書く

RSIの逆張りをEAに組み込むとき、30で買い・70で売りという単純なルールだけでは、トレンド相場で口座が破綻する。EA化において最も重要な「レンジ判定フィルター」の考え方を整理する。

「RSIが30以下になったら買い、70以上で売り」

EAを作り始めたとき、最初に書くコードの定番だ。ロジックが簡単で、プログラミングの練習にはちょうどいい。

意気揚々とバックテストを回す。

結果は、見事なまでの右肩下がり。資金は見事に溶けていく。

裁量トレードではあんなに機能しているように見えたRSIが、なぜEAにすると全く勝てないのか。

理由は単純で、EAには「空気を読む力」がないからだ。

裁量トレーダーがやっている「暗黙のフィルター」

裁量トレーダーは、RSIが30になったからといって無条件に買っているわけではない。

「今はレンジ相場っぽいから、30で反発するだろう」
「今日はトレンドが強すぎるから、30になっても触らないでおこう」

チャート全体の形状、上位足のトレンド、時間帯。無意識のうちに「今は逆張りしていい環境か」を判断している。

しかし、EAのコードに「RSI < 30 なら Buy」としか書かなければ、EAはトレンドが爆発している日でも、RSIが30を下回るたびに律儀に買い向かい、そのたびに損切りされる。

ゴールドのように1日で大きく動く日があると、この「トレンド相場での逆張りの連敗」だけで1ヶ月分の利益が吹き飛ぶ。

EA化の肝は「レンジ判定」

RSI逆張りEAの成否は、RSIの期間設定(14か9か)ではない。「いつ逆張りしてはいけないか(=トレンド相場をどう避けるか)」の判定ロジックにある。

つまり、RSIを使う前に「今はレンジ相場である」とEAに判定させなければならない。

私が検証でよく試すのは以下のようなフィルターだ。

  1. ADXフィルター

ADX(平均方向性指数)が一定値以下(例:25以下)のときだけRSIのシグナルを有効にする。トレンドが出ていないことを確認してから逆張りする。

  1. 上位足の移動平均線の傾き

1時間足でRSI逆張りをするなら、4時間足の移動平均線が横ばい(傾きが一定以下)のときだけエントリーする。

  1. 時間帯フィルター

ロンドン時間やNY時間の初動など、ボラティリティが急増してトレンドが出やすい時間を避ける。

損切り幅は固定しない

もう一つの罠が損切りだ。

レンジ内での反発を狙うなら、損切りは「レンジがブレイクされた場所」に置くべきだ。

しかし、相場のボラティリティは毎日変わる。固定で「30pips」と設定すると、ボラティリティが低い日は広すぎて損失が大きくなり、高い日はノイズで狩られまくる。

こういう時はATR(Average True Range)を使う。ATRのN倍を損切り幅に設定すれば、今の相場のボラティリティに合わせた動的な損切りができる。

この記事のメモ

RSIの逆張りEAを作ると、「テクニカル指標は単体では機能しない」という残酷な現実を突きつけられる。

バックテストのグラフを見ながら、「ここでエントリーしなければ勝ててるのに」と思う場面は、ほぼ全て「強いトレンドが出ている場面」だ。

EAに「逆張りしろ」と教えるより前に、「こういう時は必ずに手を出すな」と教える。

RSI逆張りのEA開発は、半分以上が「トレンド回避フィルターの開発」になる。

チェックリスト

FAQ

Q: レンジ判定にはどのインジケーターが一番いいですか?
万能なものはありません。ADXは定番ですが反応が遅いという欠点があります。ボリンジャーバンドのバンド幅(狭い時をレンジとする)や、複数の移動平均線の間隔を使う方法もあります。複数組み合わせて検証してください。

Q: RSIの「30/70」という水準は変えるべきですか?
相場のボラティリティに合わせて「20/80」に厳しくする設計もあります。ただ、水準の最適化(カーブフィッティング)に時間をかけるより、レンジ判定フィルターの精度を上げるほうが実運用には効きます。

Q: そもそもRSI逆張りはEAに向いていますか?
トレンド判定が難しいため、初心者向けのEA開発テーマに見えて実は難易度が高いです。得意な時間帯(オセアニア時間のレンジなど)に特化させることで機能するケースはあります。

免責

本記事は個人の検証メモであり、投資助言ではありません。テクニカル指標の有効性は相場環境によって変わります。EAの設計・運用は自己責任で行ってください。