パラボリックSARとADXを組み合わせる考え方 — 追随ツールに環境フィルターを掛ける設計
パラボリックSARとADX(平均方向性指数)は、ともに「トレンド系」として分類されますが、答えている問いはまったく異なります。パラボリックSAR(Stop and Reverse)はチャート上に点(ドット)を打って、ポジションの追随ストップ水準と反転候補を視覚化する追随ツールで、「いまどちら向きのポジションを取り得るか」というポジショニングの基準を提供します。一方のADXは0〜100の数値でトレンドの 強さ だけを取り出し、「いま方向感のある相場か、そうでないか」を答えます。両者を組み合わせると、「方向と反転の候補」と「そもそも追随に値する相場か」を分離して扱う設計が組めます。
本記事では、パラボリックSARとADXを併用する考え方と、cBotとして組み込む際に意識したい実装上の注意点を、設計ドキュメントの観点から整理します。あくまで「設計の参考」としての位置づけであり、特定の数値が成果を保証するという話ではありません。
パラボリックSARの役割
パラボリックSARは、J.W.ワイルダーが提唱したトレンドフォロー型インジケーターで、チャート上に点(ドット)を打って、ポジションの追随ストップ水準と反転候補を視覚化します。点が価格の下にあるときは上昇方向への追随が優勢、点が価格の上にあるときは下降方向への追随が優勢として観察します。基礎仕様はパラボリックSARとはにもまとめていますので、必要に応じて参照してください。
単独利用での代表的な観察軸は次のとおりです。
- 点の位置: 価格の下にあれば上方向追随、上にあれば下方向追随の材料
- 点の反転(フリップ): 点が価格の反対側に移った瞬間は、追随方向の転換検知材料
- AF(加速因子)による追随: 値動きに合わせて点が価格に近づき、追随ストップ水準として機能
代表的な弱点は、レンジ相場での頻繁な反転 です。レンジでは点が上下を行き来し、「反転シグナル」が連発するわりに、その方向に値動きが続かないため、SARの反転をそのまま追随に使うと連続して逆方向に切り返される場面が増えます。「トレンドが進行中の追随ツール」としては優秀でも、「いまトレンドが発生しているかどうか」の判定は別の指標に任せたい性格を持ちます。
ADXの役割
ADXは、価格が一方向に動いている強さだけを数値化した指標です。値は0〜100の範囲を取り、一般的に25を境にトレンドの有無を判定する手法が広く知られています。基礎仕様はADX(平均方向性指数)とはにもまとめていますので、必要に応じて参照してください。
単独利用での代表的な観察軸は次のとおりです。
- ADX < 20: 方向感が弱く、レンジ相場の可能性を示す材料
- ADX 25〜40: トレンドが進行している可能性を示す材料
- ADX > 40: 強いトレンドが継続している可能性を示す材料
- +DIと-DIの関係: +DI > -DI なら上方向優勢、-DI > +DI なら下方向優勢の材料
ただし、ADX単独では「いまから入るタイミング」までは示しません。ADXが上昇しているからといって、どこで入りどこで出るかは別途決める必要があります。また、ADXは値動きの結果から派生する指標のため遅行性が大きく、ADXが25を上回ったときには既にトレンドがある程度進行しているケースも珍しくありません。エントリー判定そのものは別のタイミング指標と組み合わせる前提の、フィルター指標としての性格が強い点を意識しておくと、組み合わせ設計がしやすくなります。
なぜこの組み合わせか
パラボリックSARが弱いのはレンジ相場での頻繁反転、ADXが扱うのはトレンドの強度。両者を組み合わせると、SARの反転シグナルを「いつ採用し、いつ無視するか」をADXで切り替える設計が組めます。
考え方の例を挙げます。
- ADX < 20 + SAR反転 → レンジ相場でのノイズと判断、SARの反転は採用しない材料
- ADX > 25 + SAR反転 → トレンド継続中の追随方向更新と判断、SARの位置を信頼する材料
- ADX > 25(+DI > -DI) + SAR が価格の下 → 上方向トレンドの追随、整合的な順方向材料
- ADXが境界(20〜25)を行き来 + SAR反転 → 環境の判定が定まらない、保留扱いとする材料
このように、SARの反転シグナルそのものに「環境フィルター」を掛ける設計が、組み合わせの核になります。一般論として、トレンドフォロー系の追随ツールに、トレンド有無のレジーム判定を組み合わせることで、レンジでの過剰反転に振り回される頻度を減らすことが期待できます。
注意点として、ADXは遅行性が大きく、判定が確定するまでに時間がかかります。SARが反転した瞬間にADXがまだ低位にいる、という時間差が生じる局面もあります。判定をどちらにも倒さない「中立ゾーン」を設けたり、連続N本の維持で確定させたりするヒステリシス設計が安定性を高めます。組み合わせれば即座に判定精度が上がるわけではなく、フィルター閾値の設計とセットで考えるのが基本になります。
パラメータをどう考えるか
唯一の正解はなく、検証して自分の運用時間軸に合うものを選ぶ前提で、方向性だけ整理します。
パラボリックSARの主要パラメータ は、AF(Acceleration Factor)の初期値・増分・上限です。ワイルダー原案では初期0.02・増分0.02・上限0.20が標準として広く使われています。AFを小さくすると追随がゆるやかになり、点が価格から離れやすくなる代わりに反転回数が減ります。スイング寄りなら標準値、スキャル寄りなら(0.03, 0.03, 0.30)前後のように増分を上げて反応を早くする調整が検討されます。
ADXの期間 は標準が14です。短くすれば反応は早いが境界値跨ぎが増え、長くすれば安定するが反応が遅れます。レジームフィルターとして使うなら、過敏すぎる設定は実用性を下げるため、14〜21あたりが扱いやすい傾向があります。
時間足の組み合わせも設計要素です。上位足のADXで大局のトレンド有無を判定し、下位足のパラボリックSARでタイミングを観察するマルチタイムフレーム構成にすると、環境判定の安定性とタイミング検知の機動性を両立しやすくなります。いずれの場合も、過去データで自分の運用環境を再現したバックテストを行い、フィルター閾値が実データでどう機能するかを確認するプロセスは省略しないことが重要です。
cBot化する際の考慮点
cTraderのcBotとして実装する場合、設計面でいくつかのポイントがあります。
確定足ベースでの判定: パラボリックSARもADXも、未確定バーでは値が動き続けます。SARは特に未確定バー中にAFが変動して点の位置が動くため、確定足(OnBar)で判定する設計が安定しやすくなります。
反転検知のフラグ管理: SARの反転は「点が価格の反対側に移った瞬間」を1度だけ検知したい挙動です。前バーと現在バーで点と終値の上下関係を比較し、反転を検知したら一度フラグを立て、同じ方向にあるあいだは再発火させない設計が一般的です。
ADXフィルターのヒステリシス: ADXの閾値判定を「>25 ならトレンド、<25 ならレンジ」と単純に設定すると、25前後で頻繁に切り替わります。トレンド判定に入ったら20を下回るまで戻さない、レンジ判定に入ったら25を上回るまで戻さない、というように上下別の閾値を持たせる設計が扱いやすくなります。
API呼び出し: cTrader API では Indicators.ParabolicSAR(minAf, maxAf) でパラボリックSARを、Indicators.DirectionalMovementSystem(period) でADXと+DI/-DIを取得できます。両者は独立して計算でき、依存はありませんが、起動直後はバー数が不足してNaNが返る場合があるため、判定ロジックを走らせる前にnull/NaNチェックを入れる設計が安全です。
簡単な疑似コード断片を示します。
// 例: ADXフィルターを通したパラボリックSARの反転判定
var sar = Indicators.ParabolicSAR(0.02, 0.20);
var dms = Indicators.DirectionalMovementSystem(14);
double sarNow = sar.Result.LastValue;
double sarPrev = sar.Result.Last(1);
double closeNow = Bars.ClosePrices.LastValue;
double closePrev = Bars.ClosePrices.Last(1);
double adx = dms.ADX.LastValue;
if (double.IsNaN(sarNow) || double.IsNaN(adx)) return;
bool isTrend = adx > 25;
bool sarFlipUp = sarPrev > closePrev && sarNow < closeNow;
bool sarFlipDown = sarPrev < closePrev && sarNow > closeNow;
// トレンド環境でのみSAR反転シグナルを採用する分岐を組む
実装初期は、ADX値・SAR点位置・反転フラグを毎バーログに残しておくと、後からチャート上の動きと突き合わせて検証しやすくなります。
実装の流れ
ロジックをcBotに落とし込むときの全体像を、入力→計算→判定→出力の流れで整理します。
- 入力: 監視する銘柄・時間足を決め、
Barsから高値・安値・終値の系列を取得する - 計算: パラボリックSAR(点位置・反転検知)とADX(値・+DI・-DI・ヒステリシス管理)を別々に計算する
- 判定:
- 環境フラグ: RANGE / TREND_UP / TREND_DOWN / NEUTRAL を ADX と +DI/-DI から決定
- SAR状態: FLIP_UP / FLIP_DOWN / CONTINUE_UP / CONTINUE_DOWN に分類
- 両者の組み合わせから、採用フラグを決定
- 出力: 採用フラグ(例: TREND_FLIP_UP / RANGE_REJECT)を、ログまたは外部ダッシュボードに送る
この設計はエントリーシグナルそのものではなく、環境フィルター + 追随シグナルの判定レイヤー として実装すると応用が利きます。トレンド時はSARの反転を追随方向の更新材料として使い、レンジ時はSARの反転を一旦無視する切り替えロジックを上に乗せておくと、後から戦略を差し替えやすくなります。
どう活用するか
この設計図は、目的別に活用できます。
自作派の方は、Claude Code を使った cBot 開発時の追随ツール + 環境フィルターの設計書として、本記事の節構造をそのまま流用してみてください。委託派の方は、ai-programming.xyz への開発相談時に「ADXで環境判定したうえでパラボリックSARの反転を採用したい」という前提を共有しておくと、要件詰めがスムーズになります。教育派の方は、スクールでの実践課題のテーマとして、本記事のフィルター設計を自分の手で実装する演習に使えます。
ADX系の組み合わせは他にもADXと移動平均線を組み合わせる考え方で別の角度から解説しています。あわせて読むと「環境認識のフィルター」をどの指標で担うかという設計選択のバリエーションが見えてきます。
本記事は一般的な情報提供を目的としています。投資助言ではありません。 取引判断はご自身の責任で行ってください。