ピボットポイントとADXを組み合わせる考え方 — トレンド強度で節目を「反発」と「通過」に読み分ける

ピボットポイントのような水平の節目を使うロジックで、いちばん判断が割れるのは「価格が節目に届いたとき、そこで折り返すと見るのか、抜けていくと見るのか」という場面です。同じR1への到達でも、静かな日には戻りの上限になり、方向の出た日には通過点にすぎないことがあります。本記事では、この二択を ADX(平均方向性指数) に判定させる組み合わせを取り上げます。

ここでのADXの役割は、売買の方向を決めることではありません。節目の扱い方を切り替えるスイッチ として使います。ADXが低い局面では節目を反発の候補として、ADXが上昇している局面では節目を通過点として読む、というモード切り替えの設計です。節目系のcBotを自作したい方、開発委託の要件を整理したい方に向けた考え方の共有であり、特定の設定が成果を保証するという話ではありません。

上段にピボットのP・R1・S1と価格、下段にADXを配置し、ADXが低い左側では価格がR1とS1の間で折り返し、ADXが上向きに転じた右側では価格がR1を抜けて上へ進む様子を示した模式図

ピボットポイントの役割

ピボットポイントは、前日の高値・安値・終値から当日の基準水準を機械的に求めるレベル系の指標です。中心のP(ピボット)の上下に、レジスタンス候補のR1〜R3、サポート候補のS1〜S3が並びます。算出方法はピボットポイントの基礎で解説しています。

計算式が固定で誰が引いても同じ水準になるため、多くの参加者が同じ線を意識している可能性があり、日中の値動きの目安として使われやすいと考えられます。日付が変わった時点で水準が確定するので、「この水準に来たら判定する」という待ち伏せ型の設計と相性が良い点も特徴です。

単独使用時の限界は、水準に意味づけができない ことです。ピボットは「どこに節目があるか」は示しても、「その節目が今日どう機能しそうか」は語りません。折り返しを前提にしたロジックはトレンドの日に節目を次々と抜かれて逆行に巻き込まれやすく、突破を前提にしたロジックは静かな日にダマシのブレイクを繰り返し拾いがちです。前提をどちらか一方に固定すると、相場の性格が変わった日にロジック全体が噛み合わなくなります。

ADXの役割

ADX(Average Directional Index)は、方向に関係なくトレンドの強さだけを0〜100の範囲で示す指標です。上昇の勢いを表す+DI、下落の勢いを表す-DIの差から算出され、値が高いほど一方向への動きが続いていることを表します。基本はADXでトレンドの強さを測るにまとめています。

この組み合わせで注目するのは、ADXの 水準と傾き です。低位で横ばいなら方向感の乏しい局面、しきい値を超えて上向きなら一方向への動きが強まりつつある局面と読む材料になります。

単独使用時の限界は2つあります。1つは、ADX自体は方向を持たないため、売買の向きは+DIと-DIの位置関係など別の情報で補う必要があること。もう1つは、平滑化を重ねた計算のため反応が遅く、トレンドの初動ではまだ低い値を示しやすいことです。また、ADXは「強さ」を語っても「どこで」を語らないため、エントリーや損切りの位置の目安にはなりません。

なぜこの組み合わせか

ピボットとADXは、互いの欠けている部分をちょうど埋め合う関係にあります。ピボットは 場所 を持っていても 局面の性格 を持たず、ADXは 局面の性格 を持っていても 場所 を持ちません。この2つを重ねると、「どの水準で」「どちらの読み方をするか」を同時に決められるようになります。

読み分けは、次の3つのモードに整理できます。

ポイントは3つ目の 判定保留 を明示的に持つことです。しきい値1本で二択にすると、境界付近でモードが頻繁に入れ替わり、同じ日に反発狙いと突破狙いの判定が混在しかねません。中間帯を「何もしない領域」として設けることで、モードの切り替わりにヒステリシス(戻りにくさ)を持たせ、ノイズフィルターとして機能することが期待できます。

なお、ADXは遅れて反応するため、トレンドの初動で節目を抜けた最初の動きは反発観察モードのまま迎えることがあります。この組み合わせは初動を捉える設計ではなく、局面の性格がある程度はっきりしてから節目の扱いを決める設計だと理解しておくと、期待値の置き方を誤りにくくなります。判断の誤りについてはブレイクアウトとダマシの基礎も参考になります。

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

設定の論点は、ADX側に集中します。

どの値にも正解はありません。目的を決めたうえで複数の組み合わせをバックテストで見比べ、特に「判定保留にどれだけの時間が割り当てられるか」を確認しておくと、設定の偏りに気づきやすくなります。

cBot化する際の考慮点

設計ドキュメントとして、実装時に押さえたい点を整理します。

判定部分の骨組みを疑似コードで示します。

private DirectionalMovementSystem _dms;

protected override void OnStart()
{
    _dms = Indicators.DirectionalMovementSystem(AdxPeriod);
}

protected override void OnBar()
{
    if (Bars.Count < AdxPeriod * 3) return;   // 値が安定するまで判定しない

    double adx = _dms.ADX.Last(1);             // 確定足で評価
    bool rising = adx > _dms.ADX.Last(1 + SlopeBars);

    if (adx < RangeThreshold)
        _mode = Mode.Reversal;                 // 節目を反発の候補として観察
    else if (adx > TrendThreshold && rising)
        _mode = Mode.Breakout;                 // 節目を通過点として観察
    else
        _mode = Mode.Neutral;                  // 判定保留

    // 保持済みのP・R1・S1と現在値の距離を見て、モード別の判定へ
}

実運用では、シンボルごとの呼び値・スプレッド・ロット設計に合わせて細部を詰める必要があります。

実装の流れ

処理を上流から並べると、次のようになります。

  1. 日替わりでピボットを計算: 前日の高値・安値・終値からP・R1・S1などを求めて保持します。
  2. ADXでモードを判定: 確定足のADXの水準と傾きから、反発観察・通過観察・判定保留のいずれかを決めます。
  3. モード別の節目判定: 反発観察なら節目付近での折り返し、通過観察なら節目を抜けた後の定着を確認します。判定保留ではここをスキップします。
  4. リスク幅の設定と記録: モードに応じた損切りの基準を当て、判定時のモード・水準・ADXの値をログに残します。

日替わりのピボット計算からADXによるモード判定を経て、反発観察・判定保留・通過観察の3つに分岐し、リスク幅の設定とログ記録へ合流する処理フロー図

分岐を3つに分けておくことで、どのモードで判定が多く発生し、どのモードで空振りが多いかを後から切り分けて検証できます。

どう活用するか

この組み合わせの本質は、「場所を示す指標」と「局面の性格を示す指標」の役割分担にあります。ピボットを前日高値・安値やラウンドナンバーに、ADXを別のトレンド強度系の指標に置き換えても、モード切り替えという骨格はそのまま使えます。方向フィルターで節目を選別する考え方はピボットポイントと移動平均の組み合わせで扱っているので、読み比べると設計の違いが見えやすくなります。

自分で組んでみたい方は、Claude Codeを併走させた開発の下敷きとして、この記事の構成を設計メモ代わりに使ってみてください。実装を相談したい方は、ai-programming.xyzで個別の開発相談を受け付けています。体系的に学びたい方には、スクールで設計から実装までを順に学べるコースも用意しています。

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