이 전략은 RSI 지표와 CCI 지표가 결합된 수량 거래 전략이라고 한다. 이 전략은 주로 RSI 지표와 CCI 지표의 조합을 사용하여 시장의 과매매 현상을 판단하여 역전 기회를 잡는다. 구체적으로, 전략은 RSI의 다공개선을 계산하여 CCI 지표의 다공개 신호를 결합하여 다공개와 공백을 설정한다.
이 전략의 핵심 논리는 RSI 지표와 CCI 지표의 통계적 특성을 동시에 사용하여 시장이 현재 과매매 또는 과매매 상태에 있는지 판단하는 것입니다.
첫째, RSI 부분. RSI 지표는 시장의 과매매 과매매 현상을 반영할 수 있다. RSI가 70보다 크면 과매매 지역이며, 30보다 작으면 과매매 지역이다. 이 전략은 긴 선과 짧은 선 두 개의 RSI 지표를 설정하고, 긴 선은 기본 14주기, 짧은 선은 12주기이다. 긴 선은 핵심 추세를 판단하고, 짧은 선은 더 민감한 전환점을 추적한다.
둘째, CCI 부분. CCI 지표는 또한 14주기 파라미터로 과매매를 판단하는 데 사용할 수 있습니다. CCI가 100보다 높으면 과매매, 100보다 낮은 것은 과매매입니다. 이 전략은 CCI 지표의이 특성을 이용하여 포지션 개시 규칙을 설정합니다.
이 전략은 다음과 같은 규칙을 적용합니다.
다단계 포지션: RSI 지표가 오버 소드 영역을 표시할 때 (이 기간 동안 긴 짧은 RSI가 모두 30보다 작다) CCI 지표가 100보다 작을 때 더 많이 한다.
공백점 포지션: RSI 지표가 초과 구매 영역을 표시 할 때 (이 기간 동안 긴 짧은 RSI가 모두 70보다 크다) CCI 지표가 100보다 높을 때 공백합니다.
RSI 지표와 CCI 지표의 합동 판단을 통해 실제 오버 바이 오버 소드 구간을 효과적으로 확인하여 전략의 안정성과 수익률을 높일 수 있습니다.
이 전략의 가장 큰 장점은 RSI와 CCI의 두 지표의 통계 법칙을 동시에 활용하여 과매매 과매매 현상을 더 정확하게 식별 할 수 있다는 것입니다. 따라서 반전을 포착하는 데 이상적인 개시점을 제공합니다. 구체적인 장점은 다음과 같습니다.
이 전략의 주요 위험은 RSI와 CCI가 판단한 과매매 신호가 실제 반전 시점을 완전히 반영할 수 없다는 것입니다. 구체적인 위험은 다음과 같습니다:
위험을 대응하는 해결책은 다음과 같습니다.
이 전략은 실제 운영에서 더 개선될 수 있습니다. 주요 최적화 아이디어는 다음과 같습니다:
테스트와 최적화를 통해 이 전략의 수익성과 안정성이 더욱 향상될 것으로 기대할 수 있다.
이 전략은 보다 전형적인 반전 캡처 전략에 속한다. RSI와 CCI 두 가지 일반적인 지표의 결합을 통해 과매매 범위를 판단하고, 그에 따른 포지션 개설 규칙을 설계하여, 간단한 실용적인 단선 거래 전략을 형성한다. 이 전략의 주요 장점은 지표 조합을 사용하여 판단을 더 정확하게하고, 가짜 반전의 오해를 피하여 반전의 최적의 시간을 잡는 것이다. 물론 위험도 존재하며, 지표 최적화, 손실 중지 전략, 트렌드 판단과 함께 사용해야합니다.
/*backtest
start: 2023-12-22 00:00:00
end: 2024-01-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//Author: RvZ14
//Based on Joseph Nemeth MACD+CCI strategy
//Reference reading: https://sites.google.com/site/forexjosephnemeth/home/macd-cci
strategy(title="MACD+CCI Strategy", shorttitle="macd/cci")
length = input(14, minval=1)
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(2,minval=1)
src = input(close, title="CCI Source")
//cci
ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
plot(cci, title = "cci", color=#5DADE2,linewidth = 1,transp = 0)
band1 = hline(100, color=gray, linewidth = 1)
band0 = hline(-100, color=gray, linewidth = 1)
fill(band1, band0, color= #F9E79F)
//macd
source = close
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal
plot(hist, color=#EC7063, style=histogram)
plot(macd, title = "macd", color=#5DADE2, linewidth = 1,transp = 0)
plot(signal, title = "signal", color=#F5B041,linewidth = 1,transp = 0)
longCond = cci > 100 and macd > 0 or cci > -100 and macd < 0
shortCond = cci < -100 and macd < 0 or cci < 100 and macd > 0
strategy.entry("long",strategy.long,when = longCond == true)
strategy.entry("short",strategy.short,when=shortCond == true)