一目均衡表とMACDを組み合わせる考え方 — 雲の構造とモメンタム転換を二層で確認する設計

一目均衡表(いちもくきんこうひょう)は、雲・転換線・基準線・遅行スパンによって「いま相場がどんな構造の中にいるか」を1枚のチャートで示す指標です。位置関係は整理できますが、その位置で勢いが増しているのか失われつつあるのかまでは表現しません。一方のMACDは、期間の異なる2本の移動平均の乖離を追うことでモメンタムの傾きと転換を捉えますが、その転換がどんな構造の中で起きているのかは教えてくれません。

本記事では、この「構造を見る指標」と「勢いの変化を見る指標」を二層に重ねる組み合わせを、cBotとして実装する視点から整理します。あくまで設計の参考としての位置づけであり、特定の設定が成果を保証するという話ではありません。

上段に雲と価格、下段にMACDを配置し、雲が示す方向と一致した側のクロスだけを採用する二層構成の模式図

一目均衡表の役割

一目均衡表は、転換線・基準線・先行スパン1/2・遅行スパンという複数の線から構成され、先行スパン1と2に挟まれた領域が「雲(Kumo)」として描かれます。個々の構成要素の意味は一目均衡表の基本構造にまとめています。

読み方の中心は位置関係です。価格が雲の上にあれば上方向のバイアス、下にあれば下方向のバイアスがある状態として一般に解釈され、雲の中は方向感が定まりにくいゾーンとして扱われます。転換線と基準線の位置関係、遅行スパンと過去の価格の位置関係も同時に確認でき、複数の要素が同じ側に揃っているほど構造としての一貫性が高いと考えられます。

単独使用時の限界は、判定が「継続の確認」に寄ることです。構成要素の多くが過去の高値安値から作られるため、動きが始まってから位置関係が確定するまでに時間がかかります。「どちら側の構造か」は示せても、「そろそろ動き出しそうか」という粒度の情報は持っていない指標です。

MACD の役割

MACDは、短期の指数移動平均から長期の指数移動平均を引いたMACD線と、それをさらに平滑化したシグナル線、両者の差であるヒストグラムで構成されます。詳しい成り立ちはMACDの基本を参照してください。

見るポイントは主に3つです。MACD線がゼロラインより上か下かで中期的な傾きの向き、MACD線とシグナル線のクロスで傾きの変化、ヒストグラムの伸縮で勢いの加速・減速を読みます。位置ではなく変化量を扱うため、一目均衡表とは情報の性質がはっきり異なります。

単独使用時の弱点は2つあります。第一に、レンジ相場ではMACD線がゼロライン付近を行き来し、シグナル線とのクロスが短い間隔で繰り返されます。どのクロスを採用すべきかをMACD自身は判別できません。第二に、MACDの値は価格水準やボラティリティに依存するため、絶対値の大小を銘柄間で比べる使い方には向きません。

なぜこの組み合わせか

両者が答えている問いの粒度が違うことが、役割分担の根拠になります。一目均衡表が答えるのは「いまどんな構造の中にいるか」、MACDが答えるのは「その構造の中で勢いがどちらへ傾いたか」です。

考え方の例を挙げます。

要点は、MACDのクロスをすべて拾うのではなく、雲が示す方向と同じ側のクロスだけを採用する ことです。逆行側のクロス(上方向の構造の中で出た下抜けなど)を最初から対象外にすると、レンジでのクロス連発をそのまま拾ってしまう典型的な失敗を避けやすくなります。一般論として、一目均衡表がノイズフィルターとして機能する関係になります。

一方で、この組み合わせには構造的なトレードオフがあります。一目均衡表もMACDもともに過去の平均を土台にした遅行系の指標であり、2つ重ねることで判定はさらに後ろ倒しになります。転換の初動を捉える用途には向かず、「すでに始まっている流れの継続を確認する」設計に寄る点は、最初から織り込んでおくのが現実的です。条件を絞ればダマシは減りますが、同時にシグナルの発生数も減ります。

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

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

一目均衡表側 の9/26/52は、もともと日足を前提に設計された数値です。この値を尊重したまま観察する時間足のほうを切り替える考え方と、短い時間足に合わせて期間そのものを縮める考え方の両方があります。薄い雲を通過する場面は、構造の切り替わりが起きやすいゾーンとして扱われます。

MACD側 は12/26/9が定番です。短くすると転換の検知が早まる代わりにクロスの回数が増え、長くすると滑らかになる代わりに検知が遅れる傾向があります。フィルター役の一目均衡表より判定が細かくなるよう、MACD側を相対的に短めに置くのが役割分担としては自然な設計です。

なお、一目均衡表の26とMACDの26は数字が同じでも意味が違います(前者は高値安値の中値を取る期間、後者は指数移動平均の期間)。揃えることに意味はないので、独立したパラメータとして扱って差し支えありません。いずれの設定も、過去データでのバックテストで自分の銘柄・時間足での挙動を確認するプロセスは省略しないでください。

cBot化する際の考慮点

cTraderのcBotとして実装する場合、この組み合わせ特有の注意点がいくつかあります。

先行スパンのシフト: 雲は26本先に描かれるため、「いま画面に見えている雲」と「最新足に対応する先行スパンの値」はインデックスが異なります。どちらを参照しているかを取り違えると、判定が常に一定本数ずれたまま動き続けます。実装初期に必ず確認したいポイントです。

遅行スパンの確定タイミング: 遅行スパンは26本前の位置に描かれるため、「遅行スパンが過去の価格より上か」という判定が確定するのは26本後です。これを最新足でそのまま条件に組み込むと、実運用では取得できない情報を使ったバックテストになり、結果が実態より良く見えることがあります。遅行スパンを条件に入れるなら、判定対象を26本前の足に限定する設計が安全です。

データ取得タイミング: 確定足ベース(OnBar)での判定が基本です。ヒストグラムの符号はティック単位で何度も入れ替わるため、OnTickで評価すると同一バー内でシグナルが出たり消えたりします。

履歴不足とNaN: 一目均衡表は先行スパン2の52本に加えてシフト分が必要で、起動直後は値が揃いません。Bars.Count のチェックとNaN判定を判定前に置きます。

// 例: 構造フラグとモメンタムイベントを分けて扱う
var ichimoku = Indicators.IchimokuKinkoHyo(9, 26, 52);
var macd = Indicators.MacdCrossOver(Bars.ClosePrices, 26, 12, 9);

if (Bars.Count < 120) return;

double close = Bars.ClosePrices.LastValue;
double spanA = ichimoku.SenkouSpanA.LastValue;
double spanB = ichimoku.SenkouSpanB.LastValue;
if (double.IsNaN(spanA) || double.IsNaN(spanB)) return;

bool aboveCloud = close > Math.Max(spanA, spanB);   // 構造フラグ(毎足評価)

double diffPrev = macd.MACD.Last(1) - macd.Signal.Last(1);
double diffOlder = macd.MACD.Last(2) - macd.Signal.Last(2);
bool crossUp = diffOlder <= 0 && diffPrev > 0;      // イベント(発生した足だけ true)

// 方向が一致したときだけ候補として扱う
bool longCandidate = aboveCloud && crossUp;

構造フラグは状態、クロスはイベントであり、寿命が違います。同じ変数に混ぜず別々に保持しておくと、「構造が整ってから数本以内のクロスのみ採用する」といった条件を後から足しやすくなります。

実装の流れ

全体像を入力→計算→判定→出力の流れで整理します。

  1. 入力: 監視する銘柄・時間足を決め、必要本数を満たす4本値を取得する
  2. 計算: 一目均衡表(転換線・基準線・先行スパン1/2・遅行スパン)とMACDを別系列として保持する
  3. 構造判定: 価格と雲の位置関係、転換線と基準線の位置関係から、上方向・下方向・不明確のいずれかを決める。不明確なら以降をスキップ
  4. モメンタム判定: 構造と同じ側のMACDクロス、またはヒストグラムの符号反転を確定足で検出する
  5. 出力: シグナル(BUY候補 / SELL候補 / WAIT)と、判定に使った各値をログや通知へ渡す

構造判定を先に置き、そこで絞り込んでからモメンタム判定に進む順序がポイントです。逆の順序にすると、採用しないクロスまで毎回評価することになり、条件の見通しも悪くなります。

構造判定でフィルターし、方向が一致したモメンタム転換だけを採用する戦略フロー図

どう活用するか

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

自作派の方は、Claude Codeを使ったcBot開発の設計ドキュメントとして、構造フラグとイベントを分離する方針をそのまま下敷きにしてみてください。委託派の方は、ai-programming.xyz への開発相談時に「一目均衡表で構造を絞り、MACDでタイミングを取る二層構成にしたい」と前提を共有しておくと要件定義がスムーズです。教育派の方は、スクールの演習テーマとして、遅行スパンの確定タイミングを正しく扱う実装に取り組むと、時系列データの扱いへの理解が深まります。

構造判定を先に置いてシグナルを選別するという型は、MACDとADXの組み合わせとも共通する基本形です。フィルター役の指標を差し替えながら比較していくと、自分の運用時間軸に合う構成が見つけやすくなります。

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