「いいロジックを作ったのに、バックテストでは勝つのに、実運用すると急に崩れる…」
自動売買をやっていると、こんな経験って一度はあると思います。
その原因のひとつが 「相場環境を区別せず、いつも同じロジックを回していること」 なんですよね。
トレンド相場なのか
レンジ相場なのか
いまはどちらでもない“微妙な相場”なのか
ここをざっくりでもいいので 分類できる人は、EAが必ず強くなります。
今回はシリーズ第2回として、
トレンドとは何か?
レンジとは何か?
ADX / DI / RSI / ボリンジャーバンド / EMA をどう使い分けるか
相場環境に合わせてロジックを切り替える、という発想
マルチタイムフレームでの「上位足=状況判断」「下位足=トリガー」
このあたりを、やさしく整理していきます。
「自分のトレードルールをEAにしたい」「なんとなく勝てている裁量を、ちゃんと仕組み化したい」
そんな方向けに、MT4/MT5/Trading View向けのEA・インジケーター作成サービスを出品しています。
相場環境の判定ロジックや、今回の記事のようなトレンド/レンジ判定を組み込んだEAもご相談いただけます。
サービスの内容は下記からご覧いただけますので、まずはお気軽に覗いてみてください。
1. 「トレンド」と「レンジ」を分けて考える意味
まず、どうしてここまで「トレンド」と「レンジ」を分けて考えるのか。
一言でいうと、
同じロジックでも、トレンド相場とレンジ相場で “成績が真逆” になることが多いから
です。
トレンドフォロー型(ブレイク・移動平均クロスなど)
→ トレンド相場では利益を伸ばしやすい
→ レンジ相場ではダマシだらけで連敗しやすい
逆張り型(RSIオシレーター、ボリンジャーバンド逆張りなど)
→ レンジ相場ではコツコツ勝ちやすい
→ 強いトレンドでは「逆らって焼かれる」パターンになりやすい
なので、
いまはトレンドっぽいからトレンド用ロジック
いまはレンジっぽいからレンジ用ロジック
どっちとも言えないから“お休み”
という 「相場環境に合わせてロジックを切り替える」発想 が、とても大切になります。
2. トレンドとは何か? 3つの見方
「トレンド」と一口に言っても、判断の仕方はいろいろあります。
ここでは EA で扱いやすいように、代表的な3つに整理してみます。
2-1. 高値・安値の更新(ダウ理論ベース)
いちばん教科書的なのが、高値・安値の更新パターンで見る方法です。
上昇トレンド
高値が切り上がっている
安値も切り上がっている
下降トレンド
安値が切り下がっている
高値も切り下がっている
EAで完全にダウ理論を再現しようとすると少し大変ですが、
一定期間の高値・安値の更新状況
ジグザグ(ZigZag)インジを使ったスイング高値・安値
などを使うと、ロジック化しやすくなります。
2-2. EMA の傾き・位置関係
実装しやすさという意味では、移動平均線(特にEMA)の傾きと価格位置で見るのが簡単です。
価格が EMA の上にあり、EMA 自体も右上がり
→ 上昇トレンドとみなす
価格が EMA の下にあり、EMA 自体も右下がり
→ 下降トレンドとみなす
さらに、
短期 EMA(9, 20 など)
中期~長期 EMA(50, 80 など)
の 位置関係 を見ると、より強弱も分かりやすいです。
例:
EMA9 > EMA20 > EMA80 で、全部が右上がり
→ かなりきれいな上昇トレンド
EA的には、
「EMA20の傾きが一定以上ならトレンド相場」
「価格がEMA20の±○pips以内なら押し目・戻りを狙うゾーン」
といった条件に落とし込めます。
2-3. ADX / DI で “トレンドの強さ” を数値化
もうひとつ便利なのが ADX(Average Directional Movement Index) です。
ざっくり言うと、
ADX が高い → トレンドが強い(上か下かは問わない)
ADX が低い → トレンドが弱い(レンジ寄り)
DMI(+DI / -DI)とセットで使うと、
+DI > -DI & ADX が閾値以上 → 上昇トレンド
-DI > +DI & ADX が閾値以上 → 下降トレンド
のように、「方向」と「強さ」をひとまとめに判定できます。
EAでよくやるのは、
ADX が ○以上のときだけトレンド系ロジックをON
ADX が ○未満のときは逆張りロジック/お休み
といった ON/OFFフィルターとしての使い方ですね。
3. レンジとは何か? “動いてない”だけじゃない
次に「レンジ」です。
単に「横ばい」と言ってしまうとざっくりしすぎるので、こちらも観点を分けてみます。
3-1. ボラティリティの低下
レンジの特徴のひとつは **「値動きの幅が小さい」**ことです。
ここでは、
ATR(Average True Range)が小さい
ボリンジャーバンドの幅(σの距離)が狭い
といった “ボラの指標” が縮んでいる状態をイメージしてください。
EAロジック的には、
ATR が一定値以下 → レンジとみなす
ボリンジャーバンドの幅が狭い → ブレイク前の「エネルギー溜め」かもしれない
といった判定ができます。
3-2. MA が収束してグチャグチャ
トレンドのときは、短期・中期・長期の EMA がきれいに並びます。
逆にレンジ相場では、
EMA9, EMA20, EMA80 が絡み合って、順番も上下に入れ替わる
価格がMAを行ったり来たりしている
つまり 「MAが収束してグチャグチャしている状態」 になりがちです。
EA的には、
EMA同士の距離が一定以下
価格がEMA20を中心に±少しの幅で行き来している
といった条件で「レンジ寄りかも」と判断できます。
3-3. 上下のラインで反発を繰り返す
チャートをパッと見て、
ここが天井、ここが底
その間を行ったり来たりしている
という “箱の中の値動き” がレンジの典型です。
高値側にレジスタンスライン
安値側にサポートライン
を引いて、その中で反発を繰り返しているようならレンジ。
ボリンジャーバンドでいうと、
上バンド付近で反落
下バンド付近で反発
を何度も繰り返しているパターンですね。
逆張り系EAでは、
ボリンジャーバンド±2σを「レンジの壁」と見てエントリー
RSI が 30 付近・70 付近でサインを出す
という組み合わせが定番です。
4. インジケーターの役割分担と使い分け
ここまで出てきたインジを、役割ごとに整理しておきます。
4-1. ADX / DI:トレンドの有無と方向
ADX:トレンドの強さ(数値が高いほど強い)
+DI / -DI:どちら向きのトレンドか(買い優勢か売り優勢か)
典型的な使い方:
ADX > 25 なら「トレンドあり」、それ未満なら「トレンド弱い(レンジ寄り)」
+DI > -DI のときだけ買いエントリー
-DI > +DI のときだけ売りエントリー
EAでは 「動かすか/休ませるか」「どっち方向だけ狙うか」 の判定にピッタリです。
4-2. RSI:レンジでの逆張り+トレンドの強弱チェック
RSIは、
70以上 → 買われすぎ
30以下 → 売られすぎ
という逆張りサインが有名ですが、実は 「トレンドの勢い確認」にも使えます。
例えば、
上昇トレンド中なのに RSI がずっと 60〜70 以上で張り付いている
→ トレンド強いかも、むしろ逆張りしたら危険
レンジ相場で 70と30の間を行ったり来たり
→ レンジ逆張りロジックに向いている環境
といった見方ですね。
4-3. ボリンジャーバンド:レンジとブレイクの両方を見る
ボリンジャーバンドは、
幅が狭い → ボラ低下(レンジ・エネルギー溜め)
上限/下限での反発 → レンジ内での逆張り
幅が急に広がる&バンドウォーク → 強いトレンド発生
というように、レンジとトレンドの「切り替わり」を見るのが得意です。
EAでの使い方としては、
幅が狭いときは「今はブレイク待ちで様子見」
上限タッチ+反発で売り、下限タッチ+反発で買い(レンジロジック)
上限を勢いよくブレイクしてバンドウォーク開始 → トレンドフォローON
など、複数のロジックの“スイッチ”として工夫できます。
4-4. EMA:ベースとなる「地図」
EMAは、
相場全体の方向感
「押し目」「戻り」の位置感
トレンドのリズム
をざっくり教えてくれる “地図”のような存在 です。
トレンドロジックでよくあるパターン:
価格が EMA20 より上にあるときだけ買いを狙う
EMA80 を割り込んだら、上昇トレンド終了とみなしてロジックOFF
レンジロジックでも、
EMA20からの乖離が○pips以上 → 逆張りサイン
乖離が小さい → まだ様子見
というように、基準線としてとても扱いやすいです。
5. “相場環境に合わせてロジックを切り替える”考え方
ここまで整理してきたのを、EA実装の視点でまとめると…
1つのロジックで「どんな相場でも勝ち続ける」のは難しいので、
相場環境ごとに得意なロジックを持っておくほうが現実的
という結論になります。
例えばこんなイメージです。
トレンド相場用EA
エントリー:ブレイクアウトや押し目買い
フィルター:ADX > 25、EMAの並びがきれい
レンジ相場用EA
エントリー:ボリンジャーバンド±2σ・RSI逆張り
フィルター:ADX < 20、ボラが低め、EMAが収束
どちらでもない/荒い相場
いったんトレードしない(お休みモード)
この「ロジックを切り替える」という発想は、
裁量トレードでも当たり前にやっていることですが、EAでも同じです。
ADXやボリンジャーバンドで “現在のモード” を判定
そのモードにだけ適したエントリー条件を有効化
という形にしてあげると、自動売買でも 裁量に近い柔軟さ を持たせることができます。
6. マルチタイムフレームの位置づけ
上位足=状況判断、下位足=トリガー
最後に、マルチタイムフレーム の考え方です。
ざっくり役割を分けると、
上位足(4時間足・1時間足など)
→ 「いまの相場環境は?」「上か下か?」といった 状況判断
下位足(15分足・5分足など)
→ 実際のエントリータイミングを取る トリガー
という役割分担になります。
6-1. 具体例イメージ
例として、
上位足:1時間足(H1)
下位足:15分足(M15)
という組み合わせで考えてみます。
H1で環境認識
ADX + DI で「トレンドかレンジか」「上か下か」を判定
EMA50 の傾きで大きな流れを確認
M15でエントリータイミング
トレンド時:押し目でのローソク足パターン、短期EMAからの反発など
レンジ時:ボリンジャーバンド±2σタッチ+RSI逆張りなど
EAで言えば、
H1の条件が揃っているときだけM15ロジックを動かす
H1で「環境が変わった」と判断したらM15エントリーを一時停止する
というように、上位足が「許可」、下位足が「実行」 のイメージを持つと分かりやすいです。
7. まとめ:相場を“ラベリング”できるとEAは一気に賢くなる
今回の内容をぎゅっとまとめると…
トレンドとレンジを分けて考えること が、自動売買の安定化に直結する
トレンド判定には、「高値安値の更新」「EMAの傾き」「ADX / DI」が使いやすい
レンジ判定には、「ボラ低下」「MAの収束」「上下ラインでの反発」「ボリンジャーバンド」がヒントになる
ADX / DI / RSI / ボリンジャーバンド / EMA は、
それぞれ得意な役割が違うので、トレンド有無・方向・ボラ・反発ゾーン を組み合わせて見る
「相場環境に合わせてロジックを切り替える」という設計にすると、
ひとつのロジックを無理やり万能化するより、ずっと安定しやすい
マルチタイムフレームでは、
上位足=状況判断
下位足=トリガー
という役割分担を意識するのがポイント
次のステップとしては、
自分のEAが「どの相場で一番力を発揮するのか」
その相場をどうインジケーターで判定するか
を紙に書き出してみると、ロジック設計がかなりスッキリしてきます。
シリーズの中では、
今後「インのタイミング」「アウトのタイミング」「ストップロスの考え方」などにも触れていく予定なので、
この「相場環境認識」は、ぜひここで一度、自分の中で整理してみてくださいね。
ここまで読んでくださって、「自分の手法もEAにしてみたい」「いま使っているEAを環境認識対応に改良したい」と感じた方は、ぜひ一度ご相談ください。
MT4/MT5/Trading ViewのEA作成・改造、インジケーター開発、ロジックの整理のお手伝いを、ココナラで承っています。
詳しいメニューや価格はこちらの下記にまとめていますので、気になったタイミングでふらっと覗きに来ていただけたら嬉しいです。