ストキャスティクスとRSIの組み合わせ — オシレーター二重確認の設計
ストキャスティクスとRSIは、どちらも一定の値域内を行き来する「オシレーター系」として広く知られている指標です。買われすぎ・売られすぎの目安を提供するという意味では似ていますが、内部で見ている側面が異なります。ストキャスティクスは「設定期間内の高安レンジに対する終値の相対位置」、RSIは「上昇幅と下落幅の比率から求めるモメンタム」を見ようとしており、切り口が違います。
本記事では、この2つを併用する考え方と、cBotとして実装する際に意識したい設計上のポイントを整理します。あくまで「設計の参考」としての位置づけであり、特定の数値設定が成果を保証するという話ではありません。
ストキャスティクスの役割
ストキャスティクスは、設定期間内の高値・安値レンジの中で、現在の終値がどの位置にあるかを 0〜100 で表す指標です。一般的には、速い線である %K と、それを平滑化した %D の 2 本で構成され、両線のクロスがエントリー判定の材料として使われます。
数値が 80 を超えると買われすぎゾーン、20 を下回ると売られすぎゾーンとして語られることが多く、レンジ相場で反転の兆しを察知する材料になります。
単独利用時の限界としては、強いトレンド相場で 80 や 20 に張り付いたまま動かなくなることがあり、そこを単純な逆張りシグナルとして扱うとダマシが発生しやすい点が挙げられます。また、ノイズに敏感で、ヒゲ 1 本でクロスが発生することもあるため、確定足ベースでの確認が大切になります。
RSI の役割
RSI(相対力指数)は、一定期間の値上がり幅と値下がり幅の比率から、相場のモメンタムを 0〜100 で表す指標です。70 を超えると買われすぎ、30 を下回ると売られすぎとして読まれることが多く、ストキャスティクスと同様に過熱感の判定材料になります。
RSI はストキャスティクスより滑らかで、短期のヒゲに反応しにくい性質があります。中期的なモメンタムを把握しやすい一方、反応は遅れる傾向にあり、転換点での感度はストキャスティクスより鈍くなります。
単独利用時の限界としては、強いトレンドが続いている局面で 70〜80 帯に長く張り付いて推移することがあり、「70 を超えたから売り」という単純な逆張りでは噛み合わないケースが少なくありません。一般論として、RSI は「価格の方向」より「モメンタムの強さの度合い」の手がかりとして整理するほうが扱いやすい指標と考えられます。
なぜこの組み合わせか
両者はオシレーター系として括られがちですが、計算アプローチは別物です。ストキャスティクスは「直近レンジ内の終値位置」、RSI は「上昇幅と下落幅の比率」を見ているため、同じ過熱感を 別の角度から測れる という特徴があります。
両方が買われすぎを示しているなら、過熱感に対する確度を整理しやすくなりますし、片方だけが反応しているのであれば、そのシグナルは単一指標の特性に依存している可能性がある、という形で読み分けができます。
この「2 つの目で同じ現象を見る」性質は、ノイズフィルターとして機能することが期待されます。ストキャスティクスはノイズに敏感で速い、RSI は滑らかで遅い、という時間軸の違いがあるため、両者の一致をエントリー条件にすると、早すぎる反応をある程度ふるい落とせる関係になります。
一方で、両者が常に同じ方向に動くわけではありません。ストキャスティクスにダイバージェンスが出ているのに RSI にはまだ出ていない、といった状況は、転換の兆しが「始まりつつある」段階として整理する材料になります。
ただし、強いトレンド相場では両者とも張り付いて動かないことがあるため、別途トレンド判定(ADX や移動平均の傾き)と組み合わせ、レンジ向きのシグナルなのかトレンド継続中なのかを切り分ける視点を持つと、判断の輪郭が安定しやすくなります。
パラメータをどう考えるか
ストキャスティクスの標準的な設定は %K=14、%D=3、スロー期間=3 などが知られています。RSI は 14 期間が広く使われます。どちらも 14 前後を起点に、対象の時間足や銘柄ボラティリティに応じて調整する考え方が一般的です。
短期向けに反応速度を上げたい場合は期間を短く、ノイズを減らしたい場合は期間を長くする方向に動かします。ただし、両指標を別の時間軸でチューニングし過ぎると、組み合わせの「同じ現象を別角度から見る」効果が薄れてしまうため、整合性を意識します。
どの設定が正解という性質のものではないため、対象銘柄ごとにバックテストとフォワード検証で挙動を確認する前提で扱うのが安全です。
cBot化する際の考慮点
cBot として組み込む場合、計算順序とイベント設計が重要なポイントになります。
まず、両指標とも内部にラグがあるため、OnBar ベース(足確定ごと)の判定が基本になります。OnTick で都度評価すると、確定前の値で発火・取消が繰り返され、ロジックが不安定になりやすい点に注意します。
次に依存関係です。ストキャスティクスは内部で移動平均処理を含むため、計算に必要な足数が確保できているかを毎回チェックします。データが不足している起動直後は、判断をスキップする実装が安全です。
エッジケースとして、週末ギャップや祝日明けの初足ではボラティリティが急変し、両指標が一気に過熱ゾーンに突入することがあります。これらの局面では、「セッション開始直後の数本は判定しない」「スプレッドが通常比で広い間は判定しない」などのガードを入れる設計が考えられます。
// 例: 計算順序のイメージ
var stoch = Indicators.StochasticOscillator(14, 3, 3, MovingAverageType.Simple);
var rsi = Indicators.RelativeStrengthIndex(Close, 14);
double stochK = stoch.PercentK.LastValue;
double stochD = stoch.PercentD.LastValue;
double rsiVal = rsi.Result.LastValue;
// 双方の値を組み合わせ、シグナル判定の材料とする
bool overboughtAgreement = stochK > 80 && rsiVal > 70;
bool oversoldAgreement = stochK < 20 && rsiVal < 30;
ポジション管理側では、決済(利食い・損切り)も同じ指標で行うのか、別ロジック(ATR や前回高安など)で管理するのかを設計段階で決めておきます。エントリーと決済のロジックが同じ指標に依存し切ると、相場特性の変化に弱くなる傾向があります。
実装の流れ
戦略全体の流れを大まかに整理すると、次のような形になります。
- 環境認識: 上位足のトレンド方向(移動平均の傾きや ADX)でレンジか順張りかを判定
- シグナル監視: 確定足ごとにストキャスティクスと RSI を計算
- 一致条件チェック: 両者の過熱ゾーンが揃ったか、もしくはクロス・ダイバージェンスが揃ったかを確認
- フィルター: 経済指標前後、スプレッド異常、保有ポジション数、相関銘柄の状況などを判定
- 発注: 条件を満たした場合に、リスク管理ルールに沿ってロットを計算
- 管理: 利食い・損切り条件で監視し、想定どおりにいかない場合の手仕舞いルートも実装
このフレームは 移動平均とRSIを組み合わせる記事 でまとめた構造とも共通しており、組み合わせる指標が変わっても流用しやすい設計です。
どう活用するか
自分で cBot を作る方は、Claude Code を活用した実装の参考にしてください。ストキャスティクスと RSI の組み合わせは構造がシンプルなため、自作の最初の題材として手を動かしやすいロジックです。
実装に時間が取れない、あるいは自分の戦略の前段に組み込みたい方は、ai-programming.xyz で個別の実装相談を承っています。
体系的に学びたい方は、スクールで判定ロジックの組み立てやバックテスト・フォワード検証の進め方を、実際の開発フローに沿って学ぶことができます。
本記事は一般的な情報提供を目的としています。投資助言ではありません。 取引判断はご自身の責任で行ってください。