資源の読み込みに... 荷物...

CCI,DMI,MACD ハイブリッド・ロング・ショート戦略

作者: リン・ハーンチャオチャン, 日付: 2024-04-28 13:52:16
タグ:CCIDMIマックド

img

概要

この戦略は,3つの技術指標:コモディティチャネルインデックス (CCI),ダイレクショナル・ムーブメントインデックス (DMI),および移動平均収束差異 (MACD) を組み合わせて,市場の過買い・過売状況とトレンド方向を決定する.CCIが過売りエリアを超えると,DI+がDI−より大きく,MACDがシグナルラインを超えると,買い信号が生成される.CCIが過買いエリアを下回ると,DI−がDI+より大きく,MACDがシグナルラインを下回ると,売り信号が生成される.

戦略の原則

  1. CCI指標を計算し,市場の過買い・過売り状況を判断する.CCIが過買い・過売りエリア (−100以下) を突破すると,市場は過売りから転機し上昇する可能性を示します.CCIが過買いエリア ("00以上) を突破すると,市場は過買いから転機し,低下する可能性を示します.
  2. 市場トレンドの方向性を決定するためにDMI指標を計算する.DI+がDI−より大きいとき,上昇傾向が優勢であることを示します.DI−がDI+より大きいとき,下落傾向が優勢であることを示します.
  3. 市場のトレンドの強さを決定するためにMACD指標を計算する.MACDが信号線上にあるとき,それは強い上向きの勢いを示します.MACDが信号線下にあるとき,それは強い下向きの勢いを示します.
  4. 上記の3つの指標を組み合わせると,CCIが過剰販売領域を超えると,DI+はDI−より大きく,MACDは信号線上にある場合,購入信号が生成される.CCIが過剰購入領域を下回ると,DI−はDI+より大きく,MACDは信号線下にある場合,販売信号が生成される.

戦略 の 利点

  1. 複数の技術指標を組み合わせることで,市場が異なる視点から分析され,信号の信頼性が向上します.
  2. 市場の過買い・過売状況,傾向の方向性,傾向の強さを考慮し,市場の主要な傾向を把握することができる.
  3. 自動取引の実施を容易にする 明確な入出条件を設定しています

戦略リスク

  1. 市場変動や不明確な傾向がある場合,この戦略は多くの誤った信号を生み出し,頻繁な取引と高い取引コストにつながる.
  2. この戦略は,歴史的なデータに基づい,突然の市場動向や重要なニュースにゆっくり反応する可能性があります.
  3. 戦略パラメータ (CCIの過剰購入と過剰販売の値,MACDの高速線と遅線期間など) は,異なる市場や楽器に最適化する必要がある.そうでなければ,戦略の業績に影響を与える可能性があります.

戦略の最適化方向

  1. 信号の信頼性や安定性を向上させるため,より多くの技術指標や市場情勢指標を導入する.
  2. 戦略パラメータを最適化するために,遺伝子アルゴリズムなどのインテリジェントな最適化方法を使用して最適化します.
  3. ストップ・ロスト,テイク・プロフィート,ポジション管理などのリスク制御モジュールを追加して戦略のリスク・リターン比を改善します.
  4. 戦略の適応性を向上させるために,異なる市場環境に異なる取引規則を設定する.

概要

CCI,DMI,MACDの3つの技術指標を組み合わせることで,この戦略は,買い売りシグナルを生成するために,過剰購入および過剰販売状況,トレンド方向,および市場のトレンド強さの包括的な判断を下します.この戦略は明確で実行が簡単ですが,実用的な応用では,戦略パラメータを最適化し,戦略の安定性と収益性を向上させるために取引頻度とリスクを制御することに注意を払う必要があります.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("CCI, DMI, and MACD Strategy", overlay=true)

// Define inputs
cci_length = input(14, title="CCI Length")
overbought_level = input(100, title="Overbought Level")
oversold_level = input(-100, title="Oversold Level")

// Calculate CCI
cci_value = ta.cci(close, cci_length)

// Calculate DMI
[di_plus, di_minus, _] = ta.dmi(14, 14)

// Calculate MACD
[macd_line, signal_line, _] = ta.macd(close, 24, 52, 9)

// Define buy and sell conditions
buy_signal = ta.crossover(cci_value, oversold_level) and di_plus > di_minus and macd_line > signal_line // CCI crosses above -100, Di+ > Di-, and MACD > Signal
sell_signal = ta.crossunder(cci_value, overbought_level) and di_minus > di_plus and macd_line < signal_line // CCI crosses below 100, Di- > Di+, and MACD < Signal

// Define exit conditions
buy_exit_signal = ta.crossover(cci_value, overbought_level) // CCI crosses above 100
sell_exit_signal = ta.crossunder(cci_value, oversold_level) // CCI crosses below -100

// Execute trades based on conditions
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=buy_exit_signal)

strategy.entry("Sell", strategy.short, when=sell_signal)
strategy.close("Sell", when=sell_exit_signal)

// Plot CCI
plot(cci_value, title="CCI", color=color.blue)

// Plot DMI
plot(di_plus, title="DI+", color=color.green)
plot(di_minus, title="DI-", color=color.red)

// Plot MACD and Signal lines
plot(macd_line, title="MACD", color=color.orange)
plot(signal_line, title="Signal", color=color.purple)

// Plot overbought and oversold levels
hline(overbought_level, "Overbought", color=color.red)
hline(oversold_level, "Oversold", color=color.green)


関連性

もっと