最終更新: 2026年06月
「RCIとRSIって似てますよね?」という質問を受けることがある。見た目は似ているが、計算原理は全く異なる。RSIが価格の変化量(値幅)を扱うのに対し、RCIは価格の「順位」と「時間の順位」の相関を扱う。この違いが実際のトレードでどう効いてくるのかを、数値で整理する。
RCIとは何か——スピアマン順位相関の応用
RCI(Rank Correlation Index、順位相関指数)は、イギリスの心理学者チャールズ・スピアマンが提唱した「スピアマン順位相関係数」を為替相場に応用した指標だ。
直接回答: RCIとは、時間の経過と価格の上昇が「どれだけ同方向で進んでいるか」を-100%から+100%で表した指標です。+100%に近いほど一貫した上昇トレンド、-100%に近いほど一貫した下降トレンドを示します。
基本的な考え方はこうだ。
「時間は経過するほど順位が高くなる(新しい時点ほど順位=1に近い)と同時に、上昇トレンドでは価格も高くなる(高い価格が高順位になる)。この2つの順位の相関が高いほどトレンドが強い」
つまり、**時間と価格の「順位の一致度」**を-100%〜+100%で表したものがRCIだ。
RSIとRCIは見た目が似ているため混同されがちだが、RSIが「価格の変化量」の比率を使う一方、RCIは「時間と価格の順位の一致度」を使う。この計算原理の違いが、実際のシグナルの出方に影響する。例えば、価格が同じ水準を行き来するレンジ相場では、RSIはオーバーバイト・オーバーソールドラインを行き来するが、RCIはゼロ付近で推移して明確なシグナルを出しにくい。この「レンジ相場でシグナルが出にくい」という特性自体が、情報として使える。
RCIの計算式
RCI(%) = {1 - (6 × D) ÷ (n³ - n)} × 100
D = 日付の順位と価格の順位の差を2乗して合計した値
n = 期間
具体的に9期間で計算する場合のイメージはこうだ。
- 過去9本のローソク足に対して「日付の順位」(新しい順に1〜9)を割り振る
- 同じ9本に対して「価格の順位」(高い順に1〜9)を割り振る
- 各本での「日付順位 - 価格順位」を計算し、2乗して合計する(=D)
- 上式に代入する
上昇トレンドが完全に続いているとき——新しいバーほど価格が高い状態——D=0になり、RCI=+100%となる。逆に完全な下降トレンドではRCI=-100%になる。
この計算を手で追うことで、RCIが何を測っているかが直感的に理解できる。「新しい時点で価格が高い」という状態が続くほどRCIは+100%に近づき、「新しい時点で価格が低い」という状態が続くほど-100%に近づく。これがRCIの本質だ。
数式が複雑に見えるが、要するに「新しいバーと古いバーで、価格の高低と時間の新旧が一致しているか」を測っている。一致度が高いほど+100%に近く、逆転しているほど-100%に近い。この理解で実用上は十分だ。
RSIとRCIの4つの本質的な違い
| 比較項目 | RSI | RCI | |---|---|---| | 計算の基礎 | 価格の変化量(値幅)の平均比率 | 時間と価格の「順位」の相関係数 | | 表示範囲 | 0〜100 | -100%〜+100% | | 開発者 | J・W・ワイルダー(1978年) | スピアマン理論の応用(為替用) | | 強みのある相場 | 短期モメンタムの過熱感検出 | トレンドの質・継続性の評価 |
RSIは「直近の上昇が下落より大きいか小さいか」という値幅の話をしている。RCIは「時間の流れと価格の上昇が一致しているか」という順序の話をしている。数学的に独立した計算原理なので、組み合わせると補完効果がある。
RSIとRCIの実用上の違いをもう少し踏み込んで説明する。RSIは「直近の値動きの勢い」に反応しやすく、急激な価格変動時に素早く過熱感を示す。一方RCIは「トレンドの質の一貫性」を測るため、急激な値動き後に一時的に乱れても、大局的なトレンドが続いていればそれを反映する傾向がある。この特性の違いが、同じ相場でも異なるシグナルを出す理由だ。
また、RSIの表示範囲(0〜100)とRCIの表示範囲(-100%〜+100%)の違いは単純な見た目の違いではなく、ゼロを中心とした対称性を持つRCIの方が「中立状態」の視覚的判断がしやすい設計になっている。
判断基準の読み方
RCIの基本的な判断基準は以下の通りだ。
- +80%以上: 買われすぎゾーン(売りシグナルの候補)
- -80%以下: 売られすぎゾーン(買いシグナルの候補)
- 0%付近: 中立。トレンドが不明確な状態
- +100%/-100%: 完全な上昇/下降トレンド(ただしすぐに反転することも多い)
RSIの70/30とRCIの±80という閾値は、表示範囲が違うだけで「過熱」の概念は類似している。ただしRCIは+100%や-100%に張り付くことがあり、この状態が長続きするか短命かを判断するには時間足を変えて確認する必要がある。
RCIの±80ラインの使い方として、「ラインを超えた後に反転した瞬間」をシグナルとして使う方法がある。単純に「-80%以下に入ったら買い」より、「-80%以下に入った後、-80%を上回り始めた瞬間」というトリガーの方がシグナルの精度が上がる場合が多い。同様に+80%ラインも、「超えている間は売り」より「+80%を下回り始めた瞬間」をシグナルとして使う方が反転の確認ができる。
複数期間のRCI活用——短・中・長期の組み合わせ
RCIの実践的な使い方として、3つの異なる期間を重ねて表示する手法が広く使われる。
| 期間 | 役割 | |---|---| | 短期(9期間) | 現在のモメンタム確認。クロスシグナルが速い | | 中期(26期間) | トレンドの方向性確認 | | 長期(52期間) | 大局観の把握 |
この3本を重ねたとき、3本が同方向を向いているときにトレンドの継続性が高いと判断する。逆に短期が中期・長期と逆方向に向いているとき、トレンドの転換を疑うシグナルになる。
筆者の経験では、9・26・52の組み合わせはMACDの12・26・9と設計思想が近く(短・中・長のサイクル分解)、FXのデイトレードから中期スイングまで対応しやすい構成だ。
3本の使い分けをさらに具体化すると、「エントリーを検討する際には短期RCI(9期間)がシグナルゾーンにあるか」「トレンドの方向性を確認するには中期RCI(26期間)の向きを見る」「大局観として長期RCI(52期間)が上昇方向か下降方向かを把握する」という使い方が実践的だ。3本すべてが揃った方向を示しているときのシグナルは、単一期間のシグナルより信頼性が上がりやすい。
ただし、3本が揃うタイミングは頻度が下がるため、取引機会が減ることとのトレードオフがある。取引頻度と信頼性のバランスは、自分のトレードスタイルに合わせて調整する必要がある。
RSIとRCIを組み合わせた確認手法
両者の独立性を活かした確認手法がある。
買いエントリー候補の確認
- RSIが30以下(売られすぎ)
- RCI(短期)が-80%以下から上昇に転じた
- 上位時間足でトレンド方向が確認できている
RSIとRCIが同時に過熱感を示し、かつ回復の動きを示したとき、シグナルの信頼性が上がる。同じデータを二重確認しているわけではないため(計算原理が異なるため)、この確認は有意だ。
売りエントリー候補の確認
- RSIが70以上(買われすぎ)
- RCI(短期)が+80%以上から下落に転じた
- 上位時間足でトレンドが下降方向
この手法は理論的に合理的だが、ひとつ正直に言う。筆者がこの組み合わせで統計的に十分なサンプル数のバックテストを完了しているわけではない。「理論的に合理的」という評価と「統計的に有意」という評価は別の話だ。この点は区別して考える必要がある。
実際に使うのであれば、Hedgrow FXのようにClaudeと会話しながらインジケータを実装し、バックテストで実際の有効性を検証することを推奨する。理論的な合理性をバックテストの数値で確認してから実運用に使うプロセスが重要だ。
Claudeと会話しながらインジケータが作れる[hedgrow-fx]はこちら
RCIをEAに組み込む際の計算実装やバックテスト設計は、Hedgrow FX のようにClaudeと会話しながらインジケータが作れる環境を活用すると実装のスピードが上がる。
特にRCIはMT4/MT5の標準ライブラリに含まれていないため、カスタム実装が必要だ。Hedgrow FXで「RCIを計算するMQL5のカスタムインジケーターを作ってほしい。9期間・26期間・52期間の3本を重ねて表示し、±80%にラインを引く仕様で」と指示すると、手作業でのコーディング時間を大幅に短縮できる。
EAへの実装——MQL5でのRCI計算
RCIはMT4/MT5の標準ライブラリには含まれていないため、カスタム実装が必要だ。計算ロジックの骨格は以下の通り。
double CalcRCI(int period, int shift) {
double d = 0;
for(int i = 0; i < period; i++) {
// 日付順位(新しいバーほど順位が高い)
double date_rank = period - i;
// 価格順位(高いバーほど順位が高い)
double close_val = iClose(_Symbol, _Period, shift + i);
double price_rank = 1;
for(int j = 0; j < period; j++) {
if(iClose(_Symbol, _Period, shift + j) > close_val) {
price_rank++;
}
}
double diff = date_rank - price_rank;
d += diff * diff;
}
double rci = (1.0 - (6.0 * d) / (MathPow(period, 3) - period)) * 100.0;
return rci;
}
実装時の注意点は同価格(同値)が複数ある場合の順位の扱いだ。最小価格順位を割り当てるか、平均順位を使うかで結果が若干変わる。標準的なスピアマン相関の実装では平均順位を使う。
このコードはRCIの骨格部分を示したものだ。実際のカスタムインジケーターとして使用するには、インジケーターバッファの設定・描画設定・OnCalculate()関数への組み込みが必要になる。Hedgrow FXで「このRCI計算ロジックをMT5カスタムインジケーターとして実装してほしい」と依頼すれば、完全なインジケーターファイルに仕上げることができる。
実装したRCIインジケーターをバックテストで検証する際は、MT5バックテスト結果の見方と合格基準を参考にしてほしい。プロフィットファクター・最大ドローダウン・取引数などの基準を確認しながら、RCIを使ったロジックの有効性を数値で検証することが重要だ。
まとめ
RCIとRSIの本質的な違いは計算原理にある。RSIが「価格の変化量の比率」を使うのに対し、RCIは「時間と価格の順位の相関」を使う。この独立した計算原理により、両者を組み合わせることで補完的な確認効果が得られる。
RCIの実践的な使い方として最も有効なのは、短・中・長期の3本を組み合わせてトレンドの方向性と強さを総合的に判断する手法だ。3本が同方向を向いているときのシグナル信頼性は、単一期間のシグナルより上がりやすい。
ただし、どのインジケーターも「使えば確実に利益が出る」ものではない。RCIを含むすべてのインジケーターは確率的なパターン認識ツールであり、バックテストと実運用での検証なしに「機能する」と断言することはできない。
よくある質問(FAQ)
Q: RCIはRSIの代替として使えますか? A: 代替ではなく補完の関係だ。計算原理が異なるため、両者を組み合わせることで独立した確認効果が得られる。一方だけで判断するよりシグナルの質が上がりやすい。
Q: RCIのデフォルト設定期間は何ですか? A: 標準的には9期間がよく使われる。複数期間を重ねる場合は9・26・52の3本構成が一般的だ。
Q: RCIはレンジ相場で機能しますか? A: トレンドの質を測る指標なので、レンジ相場ではRCIがゼロ付近で推移し、明確なシグナルが出にくい。レンジ相場はRCIで「特定しにくい」という情報として使える。
Q: MT4でRCIを使うにはどうすればいいですか? A: 標準インジケーターにRCIは含まれていない。MQL4/MQL5でカスタム実装するか、MT4向けのカスタムインジケーターを入手して使う。
Q: スピアマン順位相関係数の数式が難しくて理解できないのですが A: 要するに「時間の流れ(新しいバーが上位)と価格の上昇(高い価格が上位)が揃っているかどうか」を測る式だ。両方が同方向に進んでいるとき+100%、逆方向なら-100%に近づく、と覚えておけば実用上は十分だ。
Q: RCIと移動平均を組み合わせた使い方はありますか? A: 有効な組み合わせのひとつとして、移動平均の方向(上向き・下向き)をトレンドフィルターとして使い、RCIがシグナルゾーンに入ったときだけエントリーを検討するという手法がある。例えば「EMA200より上かつRCI(短期)が-80%以下から上昇転換したら買い候補」という形だ。
Q: RCIのシグナルをEAに実装したいのですが、MQL5での実装方法は? A: この記事内のCalcRCI関数の骨格を参考にしてほしい。完全なインジケーターとして実装するには、バッファ設定・描画設定が追加で必要になる。Hedgrow FXでClaudeに相談すると、完全なインジケーターコードを効率的に作成できる。
免責事項: 本記事はFXトレードおよびEA設計の教育目的で作成されています。FX取引には元本割れを含む損失リスクがあります。バックテスト結果は過去のデータに基づくものであり、将来の利益を保証するものではありません。投資判断はご自身の責任において行ってください。
著者: Hedgrow FX編集部(金融工学専門家監修)
