이 전략은 CCI 지표에 기반한 역전 거래 전략이다. CCI 지표가 오버 바이 오버 셀 영역을 나타낼 때 역전 거래한다. 전체적으로 이 전략은 CCI 지표의 오버 바이 오버 셀 특성을 활용하여 가격 역전 기회를 포착하고 거래한다.
우선, 이 전략은 CCI 지표에 기초한다.
CCI = (Typical Price - 간단한 이동 평균) / (0.015 * 평균 차)
그 중 하나는 Typical Price = (최고 가격 + 최저 가격 + 종점 가격) / 3 간단한 이동 평균 = 지난 N일 동안의 전형적인 가격의 이동 평균 평균 차이는 지난 N일 동안의 전형적인 가격 차이의 제곱의 평균입니다.
이 전략은 11의 길이를 가진 CCI 지표를 사용한다. 그리고 150을 초과 판매 지역, 150을 초과 구매 지역으로 설정한다.
각 K선 닫기시, 길이 11의 CCI 지표가 검출된다. CCI 아래로 150을 통과하면, 다중 신호가 발송된다. CCI 위로 150을 통과하면, 공백 신호가 발송된다.
신호를 받은 후 시장 가격으로 포지션을 개설한다. 그리고 1%의 스톱과 0.5%의 스톱로스를 설정한다.
4시간 CCI 역전 전략은 전체적으로 CCI 지표를 활용하여 역전 거래를 하는 간단한 전략이다. 전략 논리가 명확하고 구현하기 쉬운 장점이 있다. 그러나 CCI 신호의 불안정성, 정지 손실이 충분히 유연하지 않은 등의 단점도 있다. CCI 변수를 최적화하고, 필터 지표를 추가하고, 동적으로 정지 손실을 개발하는 등의 방법으로 이 전략의 효과를 더욱 강화할 수 있다.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-10-12 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("4H CCI Strategy", overlay=true)
length = input( 11 )
overSold = input( -150 )
overBought = input( +150 )
price1 = high
price2 = low
ucci = cci(price1, length)
dcci = cci(price2, length)
vcci = cci(ohlc4, 11)
resCustom = input(title="Timeframe", defval="15")
Length = input(16, minval=1)
xPrice = request.security(syminfo.tickerid, resCustom, hlc3)
xvnoise = abs(xPrice - xPrice[1])
nfastend = 0.666
nslowend = 0.0645
nsignal = abs(xPrice - xPrice[Length])
nnoise = sum(xvnoise, Length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
basis1 = nAMA
slope = change(basis1,1)
if (not na(vcci))
if (crossover(dcci, overSold))
strategy.entry("CCILE", strategy.long, comment="CCILE")
strategy.exit("exit", "CCILE", profit = 0.01, loss = 0.005)
if (crossunder(ucci, overBought))
strategy.entry("CCISE", strategy.short, comment="CCISE")
strategy.exit("exit", "CCISE", profit = 0.01, loss = 0.005)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)