MTF RSIの組み合わせ — 4時間足と1時間足で過熱感の整合を確認する設計

RSI(Relative Strength Index)は、一定期間の値上がり幅と値下がり幅の比率から相場の過熱感を0〜100で数値化するオシレーターです。ただし「過熱している」という判定は、どの時間足で測ったかによって意味がまるで変わります。1時間足で売られ過ぎ圏に見える場面が、4時間足では上向きの流れのなかのごく浅い調整に過ぎない、ということは珍しくありません。

本記事で扱うのは、2種類の指標を掛け合わせる組み合わせではなく、同じRSIをスケール違いで2枚重ねるという設計です。4時間足と1時間足の2階層に同じ指標を置き、過熱感の整合を確認するマルチタイムフレーム(MTF)の考え方を、パラメータ設計とcBot実装の観点から整理します。特定の設定が成果を約束するという話ではありませんので、設計を検討するための材料としてお読みください。

上段に4時間足RSI、下段に1時間足RSIを並べ、上位足が50ラインより上を保つ局面で下位足だけが中立域まで低下する様子と、両者の局面が食い違う様子を対比した模式図

上位足RSIの役割 — 局面の性格を決める

4時間足に置いたRSIの仕事は、エントリーの合図を出すことではありません。いまの相場がどちら寄りの性格を帯びているのか、という土台を決めることです。

具体的な読み方は2つあります。ひとつは50ラインとの位置関係で、RSIが50より上で推移している区間は上方向の圧力が優勢な状態、下で推移している区間はその逆として一般的に解釈されます。もうひとつは高値圏・安値圏への到達で、こちらは「その方向の動きがどこまで伸び切っているか」を示す情報になります。前者は方向のバイアス、後者は成熟度と考えると整理しやすくなります。

単独利用時の限界もはっきりしています。RSIには価格のような上限・下限の余地がなく、強い一方向の動きが続く局面では高値圏や安値圏に張り付いたまま推移します。上位足RSIの過熱表示だけを根拠に逆方向の判断を重ねると、流れに逆らい続ける形になりやすいのです。加えて4時間足は1日に数本しか確定しないため、状態の更新はどうしても遅れます。この階層だけでタイミングまで決めようとすると無理が出ます。

下位足RSIの役割 — 局面内の位置を測る

1時間足に置いたRSIは、上位足が示した局面の内側のどこにいるかを測る役割を担います。調整がどこまで進んだのか、勢いが戻り始めたのか、といった相対的な位置情報です。判断の更新頻度が高いぶん、実際に注文を出すかどうかを検討する階層として使えます。

この階層の限界はノイズの多さです。1時間足のRSIは中立域と過熱域を短い周期で往復するため、単独で見ていると合図の数が多すぎて取捨選択ができません。ダイバージェンスのような形状ベースの読み方も、下位足だけを対象にすると発生頻度が高くなり、どれを重視すべきか決まりません。下位足のRSIは、上位足という文脈を与えられて初めて意味が定まる情報だと考えたほうが実装は素直になります。

なぜこの組み合わせか

同じ指標を2階層に置くことに意味があるのは、取り出せる情報の種類が階層ごとに違うからです。上位足RSIは局面の性格を、下位足RSIはその局面内での位置を示します。指標としては同一でも、参照している時間の幅が違えば別の質問に答えていることになります。

ここで見落とされがちなのが、期間設定の意味が階層ごとにずれるという事実です。期間14を両方の階層で使っても、4時間足の14本と1時間足の14本では対象としている実時間の長さが4倍違います。同じ「14」という数字が同じ粒度を意味しないという点は、MTF設計を扱うときに最初に押さえておきたい前提です。

組み合わせ方の考え方は、次のような整理になります。

2階層の示す内容が食い違っている状態は、シグナルの欠如ではなく「見送り」という積極的な判断材料として扱えます。一方の弱点を他方が補完する関係になっており、下位足だけを見ていたら拾ってしまう合図を前段で減らす、ノイズフィルターとしての機能が期待できます。この考え方をさらに一般化した整理はダマシを減らす二重確認の設計にもまとめてあります。

ただし、整合を厳しく要求するほど条件を満たす場面は減り、動き出しの初期は取り逃がしやすくなります。この設計は機会の多さではなく判断の絞り込みを優先するものだと理解しておくと、期待とのずれを防げます。

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

調整対象は、算出期間・判定に使う閾値・階層の組み合わせの3つです。

期間は、短くすれば反応が速く短期向けに、長くすれば値の振れが穏やかになり長期向けに寄る、という方向性が両階層に共通します。前述のとおり実時間の長さが階層ごとに違うため、上下で同じ数字をそろえる設計と、上位足だけ長めにして土台をより安定させる設計のどちらもあり得ます。どちらが正解ということはありません。

閾値については、70/30のような一般的な水準をそのまま使うかどうかを一度検討する価値があります。RSIの値がどの範囲に分布するかは対象銘柄や時間足によって変わるため、ある組み合わせでは滅多に到達しない水準が、別の組み合わせでは頻繁に触れる水準になります。上位足の方向判定に50ラインを使い、下位足の位置判定にだけ過熱域の閾値を使う、というように階層ごとに役割を分けて閾値を決めると設計の意図が明確になります。いずれにせよ、バックテストで挙動を確認してから固定する流れが安全です。

cBot化する際の考慮点

MTF構成のcBotには、単一時間足では起きない固有の論点があります。

上位足の取得と参照時点。cTraderでは MarketData.GetBars でチャートとは別の足系列を取得し、その系列に対してRSIを生成します。ここで最も注意すべきなのがルックアヘッドの回避です。1時間足が確定した時点では、それを含む4時間足はまだ確定していません。未確定の上位足の値を判定に使うと、検証時に「その時点では知り得なかった情報」を参照する形になり、実運用と乖離した結果が出ます。上位足は確定済みの足を指す Last(1) を参照するのが基本です。

ウォームアップの長さ。RSIの一般的な実装は再帰的な平滑化を用いるため、直近の値が過去の値の積み上げに依存します。期間分の足がそろった直後の値はまだ落ち着いておらず、算出期間の数倍の本数が蓄積されるまでは参考値として扱うのが無難です。起動直後や検証期間の先頭で判定を始めてしまわないよう、両階層で必要本数を確認してから動かす実装にしておくと安心です。

足の対応付け。異なる時間足では足番号が一致しないため、GetIndexByTime などで時刻をキーに対応関係を解決します。休場やデータ欠損で対応する足が見つからないケースの防御も入れておきます。

判定の安定化。閾値をまたぐ往復で状態がぱたぱた切り替わるのを避けたい場合は、判定に入る水準と抜ける水準をずらすヒステリシスを持たせる方法があります。計算負荷の面では、上位足の判定は該当する足が切り替わったときだけ更新すれば十分で、下位足の確定ごとに再評価する必要はありません。

// 例: 上位足は確定済みの足だけを参照する(ルックアヘッド回避)
var h4Bars = MarketData.GetBars(TimeFrame.Hour4);
var rsiH4  = Indicators.RelativeStrengthIndex(h4Bars.ClosePrices, 14);
var rsiH1  = Indicators.RelativeStrengthIndex(Bars.ClosePrices, 14);

// OnBar(1時間足の確定時)にて
bool biasUp   = rsiH4.Result.Last(1) > 50;      // 上位足で方向のバイアスを確認
double lower  = rsiH1.Result.Last(1);           // 下位足の現在位置
// 2階層の値をあわせて判断材料とする(発注条件は別途リスク管理側で決める)

実装の流れ

処理は上位足から下位足へ一方向に降りる構造にすると、検証時にどの段で条件が外れたのかを追いやすくなります。

4時間足RSIによるバイアス判定から1時間足RSIの位置判定、共通フィルター、発注とリスク管理へ至る流れを示し、各段で条件が外れた場合に見送りへ分岐する戦略フロー図

  1. バイアス判定: 4時間足RSIの50ラインとの位置関係から、上寄り・下寄り・不明を分類します
  2. 位置判定: 1時間足RSIが調整域まで低下し、方向が戻り始めたかを確認します
  3. 共通フィルター: 経済指標の前後、スプレッドの状態、保有中のポジション数を確認します
  4. 発注: 条件がそろった場合のみ、あらかじめ決めたリスク管理ルールに沿って数量と決済条件を決めます
  5. 管理: 保有中は上位足のバイアスが維持されているかを確認し、崩れた場合の扱いを決めておきます

どこかの段で条件が外れたら即座に見送りへ分岐させる形に組むと、判定ロジックが読みやすくなり、段ごとの通過状況をログに残しやすくなります。

どう活用するか

自分でcBotを作る方は、Claude Codeを使った実装の参考にしてください。「同じ指標を階層違いで重ねる」という構造はRSI以外にも展開でき、MTF移動平均の設計と読み比べると、階層分業という発想そのものが指標に依存しないことが見えてきます。

実装に時間が取れない方や、既存のロジックに上位足フィルターとして組み込みたい方は、ai-programming.xyz で個別の実装相談を承っています。体系的に学びたい方は、スクールでMTF設計の考え方から検証手順までを、実際の開発フローに沿って学ぶことができます。

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