이 전략은 CCI 지표의 0점 교차를 입시와 출시의 신호로 사용하여 트렌드의 방향을 포착한다. CCI 지표가 마이너스 영역에서 0점을 통과할 때 더하고, 긍정적 영역에서 0점을 통과할 때 공백을 만들며, 트렌드 추적의 효과를 실현한다.
이 전략의 핵심 논리는 가격 추세를 판단하는 신호로서 CCI 지표의 0점 교차를 포착하는 것입니다. CCI 지표가 마이너스 영역에서 긍정적 인 영역으로 들어가면 가격이 과도한 초과 판매 영역에서 벗어났을 때 상승 추세가 발생할 수 있습니다.
대책:
이 전략은 다음과 같은 방향으로 더 개선될 수 있습니다.
CCI 지표의 변수 길이를 최적화하여 최적의 변수 조합을 찾습니다. 다양한 길이의 변수를 거쳐 수익률과 승률을 테스트하여 최적의 변수를 찾을 수 있습니다.
KDJ, MACD 등과 같은 다른 지표의 확인을 추가하여 CCI 지표의 가짜 돌파구가 불필요한 손실을 초래하는 것을 피하십시오. 가격이 특정 가격 범위를 지속적으로 돌파하거나 다른 지표가 동시에 신호를 발산할 때만 입장을 설정할 수 있습니다.
동적으로 스톱 라인지를 조정할 수 있다. 시장의 변동 정도에 따라 스톱 라인지의 범위를 자동으로 조정할 수 있다. 스톱 라인지를 낮추는 것은 적시에 스톱 라인을 유리한 것이지만 너무 민감할 수도 있다. 스톱 라인지를 늘리는 것은 지속적인 트렌드에 유리한 것이지만 큰 손실을 초래할 수도 있다.
진입 조건을 최적화하여 실점을 줄일 수 있다. 진입 조건을 완화할 수 있으며, CCI 지표가 0점으로 가까워질 때 진입을 시작하고, 0점을 넘기기 전에 진입하기 전에 점진적으로 입점을 올릴 수 있다.
트렌드를 판단하는 출구 조건을 추가하여 수익을 극대화하십시오. 트렌드가 반전되면 새로운 출구 신호를 설정할 수 있습니다. 예를 들어 가격이 다시 어느 정도의 폭을 되돌릴 때 정지하십시오.
이 전략은 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)