この戦略は,CCI指標のゼロの交差を,入場と出場の信号として利用し,トレンドの方向を捉える.CCI指標がマイナス値域からゼロを穿越するときに多めに,正値域からゼロを穿越するときに空いて,トレンドを追跡する動作の効果を実現する.
この戦略の核心的な論理は,価格トレンドを判断する信号としてCCI指標のゼロの交差点を捕捉することです.CCI指標が負の領域から正の領域に入ると,価格が過剰な超売り領域から脱却し,上向きのトレンドが形成される可能性を示します.CCI指標が正の領域から負の領域に入ると,価格が過剰な超買い領域から脱却し,下向きのトレンドが形成される可能性を示します.
対策として
この戦略は,以下の方向からさらに最適化できます.
CCI指標のパラメータの長さを最適化して,最適なパラメータの組み合わせを見つけます.異なる長さのパラメータを巡って,収益率と勝利率をテストして,最適なパラメータを見つけることができます.
KDJ,MACDなどの他の指標の確認を追加し,CCI指標の偽突破が不要な損失を引き起こすのを避ける.価格が一定の価格区間を継続的に突破するように設定することができます.または他の指標が同時に信号を発信するときにのみ入場することができます.
動的にストップ距離を調整する.市場変動の程度に応じて,ストップ距離の区間範囲を自動的に調整できる.ストップ距離を下げることは,タイムリーなストップに有利だが,過度に敏感かもしれない.ストップ距離を増やすことは,継続的なトレンドに有利だが,大きな損失を引き起こす可能性がある.
入場条件を最適化してミスを減らす.入場条件を緩和し,CCI指標がゼロに近づく時に入場を始め,死守のゼロ点交差点ではなく,徐々にポジションを上げる.
トレンドを判断し,エクジティング条件を足し,利益を最大化する.トレンドが逆転すると,価格が一定幅を再び引き戻すときにストップするなど,新しいエクジットシグナルを設定することができる.
この戦略は,CCI指標のゼロの交差点を利用して価格トレンドの方向を判断し,交差が起こる時に入場し,合理的な止損距離を設定し,トレンドの動作を効果的に追跡できます.戦略を最適化すると,安定した信頼できるトレンド追跡戦略になることができます.他の指標の確認,最適化パラメータの設定,エントリー条件の変更,反転退出メカニズムの追加などと組み合わせて,戦略の効果をさらに高めることができます.投資家は,自分のリスクの好みに応じて,適切な止損距離,ポジションの保持時間などのパラメータを選択し,この戦略を利用して利益を得ることができます.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("CCI Level Zero Strategy (by Marcoweb) v1.0", shorttitle="CCI_L_Z_Strat_v1.0", overlay=true)
///////////// CCI
CCIlength = input(20, minval=1, title="CCI Period Length")
CCIoverSold = -100
CCIoverBought = 100
CCIzeroLine = 0
CCI = cci(hlc3, CCIlength)
price = hlc3
vcci = cci(price, CCIlength)
source = close
buyEntry = crossover(source, CCIzeroLine)
sellEntry = crossunder(source, CCIzeroLine)
plot(CCI, color=black,title="CCI")
p1 = plot(CCIoverSold, color=blue,title="-100")
p2 = plot(CCIoverBought, color=red,title="100")
p3 = plot(CCIzeroLine, color=orange,title="0")
///////////// CCI 0Trend v1.0 Strategy
if (not na(vcci))
if (crossover(CCI, CCIzeroLine))
strategy.entry("CCI_L", strategy.long, stop=CCIoverSold, comment="CCI_L")
else
strategy.cancel(id="CCI_L")
if (crossunder(CCI, CCIzeroLine))
strategy.entry("CCI_S", strategy.short, stop=CCIoverBought, comment="CCI_S")
else
strategy.cancel(id="CCI_S")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)