リサーチ(64) – ADX CCI Strategy

Pine Script

今回は ADX(Average Directional Index)と DI、さらに CCI を組み合わせたトレンドフォロー戦略を紹介します。

一言でいうと、

  • DIのクロスで方向を検知
  • ADXでトレンドの“強さ”を確認
  • CCIでタイミングを少しだけ調整
  • 早すぎるエントリーは「保留」して、条件が整ってから入る

という、わりと“気が利く”設計です。

ADX系の戦略は「クロスした瞬間に入る → ダマしで即死」
になりがちですが、このコードはそこをちゃんと避けにいっています(少なくとも避けようとはしてます笑)。

 

 

 

🎯 作成の意図

この戦略の思想はかなり明確です。

① トレンドは「発生直後」を取りたい

ADXがまだ低い段階で DI がクロスした場合、
それは「トレンドが生まれそうな兆候」であって、
まだエントリーするには早いことが多いです。

そこで、

  • いったん「可能性あり(possible)」としてフラグを立てる
  • ADX(正確には +DI / -DI)が一定水準を超えてから入る

という 二段階構えを採用しています。

 

 

② オシレーターはフィルター役に徹する

CCIは売買シグナルの主役ではありません。

  • ロングなら「極端に買われすぎではないか」
  • ショートなら「極端に売られすぎではないか」

を軽くチェックするだけ。やりすぎないのがポイントです。

 

 

  

📘 コード(戦略部分)の解説

ここからはロジックを噛み砕いて説明します。

■ ADX / DI の計算を自前で実装

このコードでは ta.adx() を使わず、

  • +DI
  • -DI
  • ADX(sig)

をすべて手計算しています。

up_move = ta.change(high)
down_move = -ta.change(low)
truerange = ta.rma(ta.tr, dilen)
plus = fixnan(100.0 * ta.rma(up_move > down_move and up_move > 0 ? up_move : 0.0, dilen) / truerange)
minus = fixnan(100.0 * ta.rma(down_move > up_move and down_move > 0 ? down_move : 0.0, dilen) / truerange)
dx_sum = plus + minus
sig = 100.0 * ta.rma(math.abs(plus - minus) / (dx_sum == 0 ? 1.0 : dx_sum), adxlen)

理由はシンプルで、

  • 内部の値を自由に使いたい
  • クロス判定を細かく制御したい

からです。
結果として シグナルの意味が明確になります。

 

 

■ 「possible_bull / possible_bear」という待機状態

この戦略のキモがここです。

  1. +DI が -DI を上抜けた
  2. でも ADX(DI値)がまだ弱い
  3. CCI も条件的にまだ微妙

この場合、即エントリーはしない

代わりに、

  • 「ロング候補が出現した」というフラグだけを立てる
  • 条件が整うまで待つ

という動きをします。

これによって、

  • 初動のノイズ
  • レンジ内のフェイククロス

をある程度回避できます。

 

 

■ 本当のエントリー条件

最終的にエントリーが出るのは、

  • DIの方向が確定していて
  • ADX(DI値)が指定水準(例:25)を超え
  • CCIが極端な逆行をしていない

この 3点が揃ったときだけ

しかも成行ではなく、

  • ロング → 直近安値ベースのストップ
  • ショート → 直近高値ベースのストップ

なので、
「勢いが本当に出たら約定する」設計です。

 

 

■ 手仕舞いは“トレンド崩れ即撤退”

ポジション保有中は、

  • DIの逆クロス
  • ADXラインが DI を横切る

どちらかが出たら 即全決済

利確・損切りを固定値にせず、
構造が壊れたら出るという、かなり素直な出口です。

 

 

 

🚀 ワン モア ステップ

この戦略、素のままでも使えますが、
もう一段レベルを上げるなら例えばこんな改良があります。

  • ADX Entry(25)を 相場別に可変にする
  • 上位足ADXをフィルターとして追加
  • ロンドン・NY時間だけ有効化
  • ATRベースのトレーリングを導入
  • 勝ちトレンドだけを残すための「ADX最低滞在時間」制限

 

 

 

🔏 コアメンバー向けソースコード

こちらからどうぞ。

note ご指定のページが見つかりません

 

コメント

タイトルとURLをコピーしました