包み足とRSIを組み合わせる考え方 — 反転の形を過熱圏の文脈で読む設計

包み足(エンガルフィング)は、直前のローソク足の実体を、次の足の実体が反対方向に丸ごと覆う形を指します。下落中に陰線を陽線が包めば「下向きの勢いが打ち消された」、上昇中に陽線を陰線が包めば「上向きの勢いが打ち消された」形として観察されます。ただし形の条件だけで拾うと、方向感のない横ばいの中でも頻繁に出現し、どれが意味のある包み足なのかを区別できません。

本記事では、形を検出する包み足と、値動きの偏りを測るRSIを役割分担させる考え方を、cBotとして実装する視点から整理します。特に「両者の判定が同じ足でそろわない」という設計上の論点を中心に扱います。特定の設定が成果を保証するという話ではなく、設計の参考としてお読みください。

売られすぎ圏の直後に出た包み足と、中立圏で出た包み足を左右に並べ、RSIの参照窓を示した模式図

包み足の役割

包み足は2本の足で構成されます。陽線の包み足(強気の包み足)は、陰線のあとに出た陽線の実体が、前の陰線の実体を上下とも覆っている状態です。陰線の包み足はその逆になります。ローソク足の実体とヒゲの読み方はローソク足の基礎にまとめています。

この形が示すのは、1本前の足で優勢だった側の動きを、次の足がすべて打ち消したという事実です。そのため反転の初動を観察する材料として扱われます。

単独使用時の限界は、どこで出たかを問わない 点です。下落が続いたあとの包み足も、狭い横ばいの途中の包み足も、条件上は同じ形として数えられます。横ばいでは陽線と陰線が交互に出やすく、小さな包み足が連続して現れます。また定義そのものにも揺れがあり、実体だけで比べるか、ヒゲを含めた値幅で比べるかで検出数が大きく変わります。形だけでは、その足が流れの転換点なのか、ただの揺り戻しなのかを判断できません。

RSI の役割

RSI(相対力指数)は、一定期間の上昇幅と下落幅の比率から、値動きがどちら側に偏っているかを0〜100で表すオシレーターです。70以上を買われすぎ、30以下を売られすぎとして観察する読み方が広く知られています。基礎はRSI(相対力指数)とはを参照してください。

RSIの強みは、「直前までどちらに偏って動いてきたか」という位置情報を1つの数値で表せることです。

単独使用時の限界は、いつ向きが変わるかを示さない 点です。売られすぎ圏に入ったという情報は、下落がすでに大きく進んだことを示すだけで、そこから反転が始まる合図ではありません。強い流れの中では、30以下や70以上に張り付いたまま推移する場面も珍しくありません。RSIが閾値を戻した時点で判定する方法もありますが、その時点では値動きがかなり進んでいることが多く、判定が遅れやすくなります。

なぜこの組み合わせか

包み足は「いつ」を示すものの「どこで」を問わず、RSIは「どこで」を示すものの「いつ」を示しません。両者を組み合わせると、RSIで偏りが極まった文脈を確認し、包み足で打ち消しの形を待つという分担になります。一般論として、包み足をRSIの文脈でふるいにかける関係と考えられます。

ここで設計上の落とし穴があります。両者の条件は同じ足ではそろいにくい という点です。売られすぎ圏で大きな陽線の包み足が出ると、その陽線自体がRSIを押し上げるため、包み足が確定した足ではRSIがすでに30を上回っていることがよくあります。「包み足の足でRSIが30以下」という条件にすると、意図した場面ほど取りこぼす設計になってしまいます。

この問題への考え方は2つあります。

参照窓を設ける: 包み足の足を除いた直前の数本の中で、RSIが一度でも閾値に触れていたかを確認します。「偏りが極まった直後に打ち消しの形が出た」という時間的な順序をそのまま条件にする方法です。

包み足の1本前のRSIを見る: 参照窓を1本に絞った簡易版です。実装は単純ですが、偏りのピークが2〜3本前にあった場面は拾えません。

加えて、前の足の実体が極端に小さい場合、少しの陽線でも包み足が成立してしまいます。直近の平均的な実体の大きさと比べる条件を足すと、形のふるいを一段増やせます。

注意点として、この組み合わせは基本的に流れに逆らう方向の判定です。強いトレンドの途中では、包み足が出ても流れが続く場面が想定されます。上位足の方向で絞る考え方はトレンドフィルター+逆張りで扱っています。

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

唯一の正解はないため、検証を前提に方向性だけ整理します。

RSIの期間と閾値 は14と70/30が標準として参照されます。期間を短くすると閾値に触れる頻度が上がり、候補が増える代わりにふるいとしての働きは弱まります。閾値を80/20のように外側へ広げると、より偏りの大きい場面に絞られますが、候補の数は大きく減ります。

参照窓の本数 は、短いほど「極まった直後」に限定され、長いほど時間的に離れた包み足も拾います。長くしすぎると、偏りと包み足の関係が薄れていく点に注意が必要です。

実体の定義と大きさの条件 は、実体同士で比べるかヒゲを含めるか、前の足の実体の下限をどこに置くかを決めます。

時間足については、短期足ほど包み足の出現数は多いものの、横ばいの中の小さな形も増えます。条件を絞るほどバックテストに使える標本が減るため、パラメータを細かく詰めるより、まず条件ごとの出現数をログで確認する進め方が現実的です。検証の基本はバックテストの基礎にまとめています。

cBot化する際の考慮点

包み足はcTraderの標準インジケーターにないため、バーの値から自前で判定します。設計ポイントを挙げます。

確定足同士で比べる: OnBarが呼ばれた時点で、Last(1) が確定したばかりの足、Last(2) がその1本前です。形成途中の足は終値が動くため、包み足の判定には使いません。

十字線と同値の扱いを決める: 前の足の始値と終値が同じ(実体がゼロ)場合は陽線とも陰線とも言えないため、判定対象から外すのが一般的です。終値が前の足の始値とちょうど同じ場合を成立とみなすか(>= か > か)も仕様として明記します。

RSIの参照インデックスを固定する: 参照窓は包み足の足(Last(1))を含めず、Last(2) から遡る形にしておくと、前述のタイミングの問題を設計で吸収できます。

重複シグナルを防ぐ: 包み足が続けて出ると同じ方向の候補が連続します。最後に候補を出した足の時刻を保持し、一定本数は再判定しないなどのルールを決めます。

// 例: 確定足での包み足判定と、直前の参照窓でのRSI確認
double o1 = Bars.OpenPrices.Last(1), c1 = Bars.ClosePrices.Last(1);
double o2 = Bars.OpenPrices.Last(2), c2 = Bars.ClosePrices.Last(2);
if (o2 == c2) return; // 前の足が十字線なら判定しない

bool bullEngulf = c2 < o2 && c1 > o1 && c1 >= o2 && o1 <= c2;
bool bearEngulf = c2 > o2 && c1 < o1 && c1 <= o2 && o1 >= c2;

// 包み足の足を除いた直前 LookbackBars 本でRSIが閾値に触れたか
bool wasOversold = false, wasOverbought = false;
for (int i = 2; i < 2 + LookbackBars; i++)
{
    double r = rsi.Result.Last(i);
    if (double.IsNaN(r)) return;
    if (r <= OversoldLevel) wasOversold = true;
    if (r >= OverboughtLevel) wasOverbought = true;
}
// bullEngulf && wasOversold → 上向き候補 / bearEngulf && wasOverbought → 下向き候補

起動直後はRSIの計算に必要な本数が揃っていないため、NaNの確認は判定の前に済ませます。ポジション管理と連携させる場合は、包み足の安値・高値を損切りの基準にすると、その足の値幅がそのままリスク幅になります。ロット計算の前に、この幅が許容範囲かを確認する手順を挟んでおくと安全です。

実装の流れ

全体像を、検出から出力までの順序で整理します。

  1. 形の検出: 確定した2本の足を比べ、陽線または陰線の包み足が成立しているかを判定する
  2. 文脈の確認: 包み足の足を除いた直前の参照窓で、RSIが対応する閾値に触れていたかを確認する。触れていなければ見送り
  3. 実体の確認: 前の足の実体が直近の平均と比べて小さすぎないかを確認する
  4. 重複の確認: 直近に同じ方向の候補を出していないかを確認する
  5. 出力: 上向き候補 / 下向き候補 / 見送り を、RSIの値や参照窓の結果と一緒にログや通知へ送る

最初は発注まで自動化せず、通知までの構成で動かして、チャート上の形と検出結果を突き合わせる進め方が堅実です。見送った包み足も理由と一緒にログに残しておくと、条件が厳しすぎるのか緩すぎるのかを後から確認できます。

形の検出、RSIの文脈確認、実体の確認の3段階と、それぞれの見送り条件を示した判定フロー図

どう活用するか

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

自作派の方は、Claude Codeを使ったcBot開発の設計メモとして、実体の定義・十字線の扱い・RSIの参照窓の3点を先に決めてから実装に入ると、後戻りが少なくなります。最初の1本の作り方はcBotの作り方入門が参考になります。委託派の方は、ai-programming.xyzへの開発相談の際に「包み足を、直前数本のRSIが閾値に触れた場面に限って通知したい」のように前提を伝えると、要件定義がスムーズです。教育派の方は、スクールの演習として、指標の値と形の判定を時間軸の順序で組み合わせる題材に向いています。

形と指標の「タイミングのずれ」を参照窓で吸収するという考え方は、ダイバージェンスやほかのローソク足パターンを組み合わせるときにもそのまま応用できる基本形です。

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