RSI-CCI 융합 전략은 RSI와 CCI 지표의 강점을 결합하여 강력한 거래 접근 방식을 형성합니다. 더 포괄적인 시장 평가를 위해 동력과 주기 동력을 모두 포착합니다.
RSI와 CCI 값을 계산합니다.
더 나은 비교를 위해 z 점수를 사용하여 RSI와 CCI를 표준화하십시오.
표준화된 RSI와 CCI를 지정된 무게로 융합합니다.
과잉 매수/ 과잉 판매 수준을 확인하기 위해 동적 상위 및 하위 대역을 계산합니다.
핵융합 지표가 상단역 아래로 넘어가면 짧고, 하단역 아래로 넘어가면 길다고 생각해
이 전략의 장점은 RSI나 CCI만 사용하는 것과 비교하면 다음과 같습니다.
두 가지 지표의 강점을 통합하여 더 정확합니다.
더 과학적인 동적 대역은 잘못된 신호를 감소시킵니다.
표준화는 비교성을 가능하게 하고 융합을 향상시킵니다.
트렌드와 과잉 구매/ 과잉 판매 조건을 모두 평가할 수 있습니다.
이 전략의 몇 가지 위험:
부적절한 매개 변수는 주요 거래 지점을 놓칠 수 있습니다.
부적절한 무게는 지표의 역할을 약화시킬 수 있습니다.
전체 트렌드를 무시하면 트렌드에 반하는 거래가 발생할 수 있습니다.
너무 느슨하거나 너무 좁은 밴드 설정은 잘못된 판단의 위험을 증가시킵니다.
다음의 방법으로 최적화 할 수 있습니다.
테스트를 통해 최적의 매개 변수를 찾습니다.
시장 조건에 따라 무게를 조정합니다.
더 나은 정확성을 위해 트렌드 및 볼륨 지표를 포함합니다.
위험 조절을 위해 스톱 로스/프로프트 취득을 설정합니다.
감수성과 잡음을 균형을 맞추기 위해 대역을 최적화합니다.
RSI-CCI 융합 전략은 지표를 통합함으로써 판단을 향상시킵니다. 적절한 매개 변수와 위험 통제와 함께 일반적으로 단일 지표 전략을 능가합니다. 그러나 시장 조건에 기반한 조정은 여전히 필요합니다.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Julien_Eche //@version=5 // strategy("RSI-CCI Fusion Strategy", shorttitle="RSI-CCI Fusion Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) length = input(14, title="Length") rsi_weight = input.float(0.5, title="RSI Weight", minval=0.0, maxval=1.0) cci_weight = 1.0 - rsi_weight enableShort = input(false, "Enable Short Positions") src = close rsi = ta.rsi(src, length) cci = ta.cci(src, length) // Standardize the RSI and CCI values using z-score rsi_std = ta.stdev(rsi, length) rsi_mean = ta.sma(rsi, length) rsi_z = (rsi - rsi_mean) / rsi_std cci_std = ta.stdev(cci, length) cci_mean = ta.sma(cci, length) cci_z = (cci - cci_mean) / cci_std // Combine the standardized RSI and CCI combined_z = rsi_weight * rsi_z + cci_weight * cci_z // Rescale to the original scale rescaled = combined_z * ta.stdev(combined_z, length) + ta.sma(combined_z, length) // Calculate dynamic upper and lower bands upper_band = ta.sma(rescaled, length) + ta.stdev(rescaled, length) lower_band = ta.sma(rescaled, length) - ta.stdev(rescaled, length) // Buy and sell conditions buySignal = ta.crossover(rescaled, lower_band) sellSignal = ta.crossunder(rescaled, upper_band) // Enter long position if buySignal strategy.entry("Buy", strategy.long) // Exit long position if sellSignal strategy.close("Buy") // Enter short position if enabled if enableShort and sellSignal strategy.entry("Sell", strategy.short) // Exit short position if enabled if enableShort and buySignal strategy.close("Sell")