MACDとRSIを組み合わせる考え方 — モメンタム整合性を確認する設計

MACD(移動平均収束拡散法)もRSI(相対力指数)も、どちらも「モメンタム」を扱う指標として広く知られていますが、観察している側面は異なります。MACDは2本の指数移動平均の差から 方向と勢いの転換 を見ようとし、RSIは一定期間の上昇幅と下落幅のバランスから 値動きの偏り を見ようとします。同じ「モメンタム」というキーワードでまとめられがちですが、切り口が違うため、組み合わせるとシグナルの整合性を多角的に観察しやすくなります。

本記事では、MACDとRSIを併用する考え方と、cBotとして組み込む際に意識したい実装上の注意点を整理します。あくまで「設計の参考」としての位置づけであり、特定の数値が成果を保証するという話ではありません。

MACDとRSIが捉えるモメンタムの違い

MACDの役割

MACD(Moving Average Convergence Divergence)は、短期EMAと長期EMAの差を「MACDライン」として描き、そのMACDラインのEMAを「シグナルライン」として描く2本立てのインジケーターです。両者の差分を「ヒストグラム」として棒グラフで描く実装が一般的で、cTraderにも標準搭載されています。

単独利用での代表的な観察は次のとおりです。

ただし、MACDは2本の移動平均から派生する指標のため、価格本体に対して 遅行性 を持ちます。クロスが発生したときには既にある程度値動きが進行している場合があり、特に値動きの小さいレンジ相場ではダマシのクロスが頻発しやすい性質があります。「方向と勢いを示す」が「いまの値動きが過熱しているか冷えているかを閾値で区切る情報」は持っていない、という点が単独使用時の限界として残ります。

RSIの役割

RSIは一定期間の上昇幅と下落幅のバランスを0〜100で数値化するオシレーター系インジケーターです。基礎的な仕様は別記事のRSI(相対力指数)とはにまとめていますので、必要に応じて参照してください。

単独利用では、70以上で買われすぎ、30以下で売られすぎという閾値で観察するスタイルが代表的です。50ラインの上抜け/下抜けを「方向感のスイッチ」として観察する手法や、価格とRSIの逆行(ダイバージェンス)を観察する手法もあります。

ただし、RSIは「値動きが上下のどちらに偏っているか」を答える指標であり、「いま方向転換しつつあるかどうか」までは直接には答えません。強いトレンド相場では70以上または30以下に張り付いて反転シグナルを連発し、レンジ相場では中央付近をうろつくため判断材料が薄くなる、という両端での弱点があります。RSI単独では「いまの相場はトレンドなのかレンジなのか」も判別できないため、別の方法で方向感の有無を判定する仕組みが欲しくなります。

なぜこの組み合わせか

MACDが答えるのは「方向と勢いがいま転換に向かっているか」であり、RSIが答えるのは「直近の値動きはどちら側に偏っているか」です。両者は同じモメンタム系に分類されながら、観察する角度が異なるため、組み合わせると情報量が増えます。

考え方の例を挙げます。

このように、片方だけでは「同じシグナル」に見える局面を、もう一方の指標で粒度を分解できる点に意義があります。一般論として、シグナル整合性をフィルターするためのノイズ除去レイヤーとして機能することが期待できます。

注意点として、両者とも遅行性を持つ指標です。リアルタイムで天井・底を当てるためのものではなく、「いまどちら向きの偏り・勢いが続いているか」を観察する材料として扱うほうが実用的です。組み合わせれば即座に判断精度が上がる、という性質のものではない点は、最初から織り込んでおくと運用上の期待値ズレを起こしにくくなります。また、両者ともパラメータの取り方で挙動が大きく変わるため、組み合わせの設計とパラメータの設計はセットで考えるのが基本になります。

パラメータをどう考えるか

唯一の正解があるわけではなく、検証して自分の運用時間軸に合うものを選ぶ前提で、方向性だけ整理します。

MACDの期間 は、短期EMA12・長期EMA26・シグナルEMA9の組み合わせが標準として広く使われています。短期側を縮めれば反応は早くなりますがダマシも増え、長期側を伸ばせばクロスが発生しにくくなる代わりにシグナルの安定感が増します。スキャル寄りなら(8, 17, 9)前後、スイング寄りなら(12, 26, 9)〜(19, 39, 9)前後といった調整が検討されます。

RSIの期間 は標準が14です。短くすれば直近の値動き変化に敏感になり、長くすれば平準化が進みます。スキャル寄りなら7〜10、スイング寄りなら14〜21といった調整が一般的です。

時間足の組み合わせも設計要素です。上位足のMACDで大局のモメンタム方向を判定し、下位足のRSIでタイミングを観察する マルチタイムフレーム 構成にすると、方向判定の安定性とタイミング検知の機動性を両立しやすくなります。いずれの場合も、過去データでバックテストして自分の運用環境での挙動を確認するプロセスを省略しないことが重要です。

cBot化する際の考慮点

cTraderのcBotとして実装する場合、設計面でいくつか押さえておきたいポイントがあります。

データ取得タイミング: OnBar(確定足)で判定するのか、OnTickで判定するのかを最初に決めます。MACDのクロスもRSIの閾値判定も、未確定バーでは値が動き続けます。同一バー内で何度もクロスが発生したように見える挙動を避けるため、確定足ベースで判定する設計が安定しやすくなります。

計算順序の依存関係: cTrader API では Indicators.MacdHistogramIndicators.MacdCrossOver でMACDを取得でき、Indicators.RelativeStrengthIndex でRSIを取得できます。両者は独立して計算できるため依存はありませんが、起動直後はバー数が不足してNaNが返る場合があります。判定ロジックを走らせる前にnull/NaNチェックを入れる設計が安全です。

クロス判定のヒステリシス: MACDのクロスは1本前と現在を比較する形で実装するのが一般的です。ただし、ノイズの大きい時間足では同じバーで上下に振れることがあり、フラグ管理が必要になります。直前のクロス方向を状態変数として持ち、反対方向のクロスが来るまでは新たなクロスを発火させない設計が使われます。RSI側も、70/30の閾値前後で頻繁にフラグが切り替わると判定がノイジーになるため、直近N本の連続条件で確定させるなどの工夫が有効です。

簡単な疑似コード断片を挙げます。

// 例: MACDクロスとRSI水準を組み合わせて整合性を判定する
var macd = Indicators.MacdCrossOver(Bars.ClosePrices, 26, 12, 9);
var rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, 14);

double macdLine = macd.MACD.LastValue;
double signalLine = macd.Signal.LastValue;
double rsiVal = rsi.Result.LastValue;

if (double.IsNaN(macdLine) || double.IsNaN(rsiVal)) return;

bool macdBullish = macdLine > signalLine;
bool rsiBullish = rsiVal > 50;
// 両者が同じ方向を示しているか、過熱ゾーンに入っていないかをフラグ化

実装初期は、MACDライン・シグナルライン・RSI値を毎バーログ出力しておくと、後からチャート上の動きと突き合わせて検証しやすくなります。

実装の流れ

ロジックをcBotに落とし込むときの全体像を、入力→計算→判定→出力の流れで整理します。

  1. 入力: 監視する銘柄・時間足を決め、Bars から終値の系列を取得する
  2. 計算: MACD(短期EMA・長期EMA・シグナルEMA)とRSIを別々に計算し、最新値・1本前の値・ヒストグラムの符号などを取得する
  3. 判定:
    • MACD状態: 上抜けクロス / 下抜けクロス / 継続(維持) / クロスなし
    • RSI状態: 50超 / 50未満 / 過熱(70以上) / 過冷(30以下)
    • 両者の組み合わせから、シグナル整合性フラグを決定
  4. 出力: 整合性フラグ(BULL_ALIGNED / BEAR_ALIGNED / MIXED など)を、ログまたは外部ダッシュボードに送る

この設計はエントリーシグナルそのものではなく、シグナル整合性の判定レイヤー として実装すると応用が利きます。トレンドフォロー系・逆張り系の別ロジックを上に乗せ、整合性フラグを前提条件として参照する構造にしておくと、後から戦略を差し替えやすくなります。

MACD + RSIの整合性判定フロー

どう活用するか

この設計図は、目的別に活用できます。

自作派の方は、Claude Code を使った cBot 開発時の整合性判定モジュールの設計書として、本記事の節構造をそのまま流用してみてください。委託派の方は、ai-programming.xyz への開発相談時に「MACDとRSIを併用してシグナル整合性を見たい」という前提を共有しておくと、要件詰めがスムーズになります。教育派の方は、スクールでの実践課題のテーマとして、本記事の整合性判定ロジックを自分の手で実装してみる演習に使えます。

MACDとRSIの組み合わせは、「同じカテゴリの指標でも観察角度が違えば情報が増える」という設計思想を学ぶ題材としても有用です。ここで身につけた整合性フィルタの考え方は、より複雑な組み合わせ(MACD + RSI + ADX など)へ拡張するときの土台になります。

本記事は一般的な情報提供を目的としています。投資助言ではありません。 取引判断はご自身の責任で行ってください。