MFIとRSIの組み合わせ — 資金の過熱感と価格の過熱感を見分ける

MFI(マネーフローインデックス)と RSI(相対力指数)は、どちらも 0〜100 のスケールで「買われすぎ・売られすぎ」の度合いを表すオシレーター系の指標です。見た目はよく似ていますが、計算に使う素材が違います。RSI が価格の上下だけを素材にするのに対し、MFI は価格に出来高を掛け合わせた資金の流れ(マネーフロー)を素材にします。

同じ物差しの上に、素材の違う 2 本の線が並ぶ。この構造が、この組み合わせの面白いところです。本記事では 2 本の線の一致と乖離から何が読み取れるのかを整理し、cBot として組み込む際の設計上の論点までを扱います。特定の設定が成果を保証するものではなく、あくまで設計の参考としてお読みください。

価格パネルの下にRSIとMFIを重ね、左側で2本が一致し右側でMFIだけが伸び悩む様子を対比した模式図

MFI の役割

MFI は、高値・安値・終値を平均した典型価格に出来高を掛けた値を、前の足より上がった足と下がった足に振り分け、その比率から 0〜100 の数値を算出します。構造としては「出来高で重みづけした RSI」に近く、資金がどちら向きに厚く流れ込んでいるかを 1 本の線で表現する指標だと捉えると理解しやすくなります。

単独で使うと見えてくるのは、過熱感に出来高の裏付けが伴っているかどうかです。80 前後を買われすぎ、20 前後を売られすぎの目安として扱う読み方が一般に知られていますが、この水準は固定的な正解ではなく、銘柄や時間足によって線の振れ方が変わります。

単独利用時の限界として、まずデータ側の制約があります。cTrader を含む FX/CFD 環境では実出来高が取得できず、ティックボリューム(値動きの回数)で代用するのが一般的です。ティックボリュームは実出来高の近似であって同一ではないため、株式などの出来高と同じ感覚では読めません。もう一つは、オシレーター共通の性質です。強いトレンドが続く局面では線が高い水準や低い水準に張り付いたまま推移し、「買われすぎに見えるのに値動きは続く」という状態が長く残る場合があります。水準だけを根拠に逆方向の判断を組み立てると、この張り付きに振り回されやすくなります。

RSI の役割

RSI は、一定期間の値上がり幅と値下がり幅の比率から、現在の値動きがどちら側に偏っているかを 0〜100 で示す指標です。素材は価格だけで、出来高は一切参照しません。70 前後・30 前後を目安の水準として扱う読み方が広く使われています。

単独利用時には、水準による過熱感の把握に加えて、価格と RSI の方向がずれるダイバージェンスを手がかりに、値動きの勢いが弱まっている可能性を確認する使い方もあります。

単独利用時の限界は、MFI と同じくトレンド相場での張り付きに加えて、期間設定への依存が大きいことです。期間を短くすれば反応は速くなりますが、細かい上下に反応して判断材料としてのノイズが増えます。そして本記事の文脈で重要なのは、RSI からは「その値動きに市場参加者の厚みが伴っているか」が分からない点です。価格が動いた事実は捉えられても、その裏側の資金の量までは見えません。

なぜこの組み合わせか

MFI と RSI は、スケールも読み方も似た指標です。素材が近いぶん、多くの局面では 2 本がほぼ同じ形で動きます。ここは正直に押さえておくべき点で、OBV と移動平均のように価格系と出来高系がはっきり分かれる組み合わせと比べると、両者の独立性は高くありません。同じ方向に動く 2 本を並べても、二重確認としての情報量はあまり増えないのです。

だからこそ、この組み合わせは「一致」ではなく 「差」 に注目する設計のほうが自然になります。ほとんどの時間は重なって動く 2 本が、あるときだけ離れる。その離れ方に情報が集まる、という考え方です。

たとえば RSI が高い水準に伸びているのに MFI が付いてこない場面は、価格は上方向に振れているものの、出来高の裏付けが相対的に薄い状態と読めます。逆に MFI が先に大きく振れ、RSI が中庸にとどまる場面は、値幅の割に資金の出入りが偏っている状態と整理できます。どちらも「良い・悪い」ではなく、状態の分類です。この分類をエントリー条件の前段に置くと、片方の指標だけでは同じに見える局面を、別々のルートに振り分ける材料になります。

一方が価格の側から、もう一方が出来高を含んだ側から同じ過熱感を測っているため、両者の食い違いは「どちらかの前提が崩れているサイン」として扱えます。これが、この組み合わせの補完関係です。ただし、ティックボリュームの質が悪い時間帯では MFI 側だけが不自然に振れることもあるため、差が開いた理由をデータの質の問題と切り分ける視点は持っておきたいところです。

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

どちらの指標も、調整の中心は算出期間としきい値の 2 つです。期間を短くすると反応が速くなり短期向けの挙動に、長くするとなめらかになり長期向けの挙動に寄る、という方向性が一般に知られています。

このロジックで少し特殊なのは、2 本の期間をそろえるかどうか が設計上の分岐になる点です。同じ期間にそろえれば「同条件で測った 2 つの過熱感の差」という解釈が素直に通りますが、あえて MFI 側を長めにして、資金の流れをより大きな流れとして扱う設計も考えられます。どちらが正しいという性質のものではなく、差分に何を語らせたいかで決まります。

しきい値については、80/20 や 70/30 といった固定値をそのまま使うほかに、直近一定期間の分布から相対的に高い・低いを判定する方法もあります。銘柄ごとに線の振れ幅が違うため、固定値が別の銘柄でもそのまま馴染むとは限りません。いずれの設計を選ぶにせよ、対象銘柄と時間足ごとにバックテストとフォワード検証で挙動を確かめてから運用に組み込む流れが安全です。

cBot化する際の考慮点

実装面でまず意識したいのは、MFI が出来高を参照する指標である点です。価格だけで完結する RSI と違い、MFI はブローカーや銘柄によってティックボリュームの性質が変わります。判定を絶対水準だけに依存させると、環境が変わったときに挙動が変わってしまうため、相対的な比較を軸に組み立てる設計が無難です。

計算順序としては、確定足で価格と出来高を確定させてから 2 本のオシレーターを評価し、その後に差分を算出する、という一方向の依存関係になります。途中の足を飛ばさないよう、更新は OnBar に一本化しておくと状態がぶれにくくなります。

エッジケースとしては、起動直後のウォームアップ不足が代表的です。算出期間ぶんの足がそろっていない状態では両方の値が不安定になるため、必要本数に満たない間は判定そのものをスキップする実装が安心材料になります。また、流動性の薄い時間帯や週明けのギャップ直後は出来高が極端に偏り、MFI 側だけが実勢以上に振れる場合があります。ATR など別系統の指標で異常局面をガードしておくと、差分の解釈が安定しやすくなります。

// 例: 確定足(OnBar)で2つのオシレーターを評価し、差分を判断材料にする
var rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, 14);
var mfi = Indicators.MoneyFlowIndex(14); // 出来高を内部参照するため価格系列の指定は不要

if (Bars.Count < 30) return; // ウォームアップ不足時は判定しない

double rsiNow = rsi.Result.Last(1);
double mfiNow = mfi.Result.Last(1);
double gap    = rsiNow - mfiNow; // 2つの過熱感の「差」を状態分類に使う

計算負荷はどちらも軽く、複数銘柄へ展開しやすい構成です。決済側については、オシレーターの水準を利食い条件に直結させると相場付きの変化に弱くなりやすいため、損切り・利食い幅はボラティリティ基準など別系統で設計し、役割を分けておくほうが扱いやすくなります。

実装の流れ

戦略全体を通しで並べると、次のような形に整理できます。

環境認識から指標算出、差分の3状態への分類、フィルターを経て発注・リスク管理へ至る戦略フロー図

  1. 環境認識: 上位足の方向とボラティリティから、いまがどんな局面かを把握する
  2. 指標算出: 同じ確定足で RSI と MFI を計算し、値を保持する
  3. 差分の分類: 2 本の水準差から、そろっている状態・片方だけが偏っている状態・どちらも中立の状態に振り分ける
  4. フィルター: 経済指標の前後、スプレッド異常、保有ポジション数などの共通条件を確認する
  5. 発注・管理: 条件がそろった場合のみ、リスク管理ルールに沿ってロットと決済条件を決める

差分の分類ステップを独立させておくと、後から判定条件を差し替えるときに影響範囲が閉じ、検証もしやすくなります。

どう活用するか

自分で cBot を作る方は、Claude Code を使った実装の参考にしてください。「似た 2 本の差を状態に変換する」という考え方は、他のオシレーターの組み合わせにもそのまま応用できるため、設計パターンとして手元に置いておく価値があります。

実装に時間が取れない方、既存の戦略の前段に組み込みたい方は、ai-programming.xyz で個別の実装相談を承っています。

体系的に学びたい方は、スクールで判定ロジックの組み立てから検証の進め方までを、実際の開発フローに沿って学ぶことができます。

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