RSI-CCI 융합 전략은 RSI와 CCI 두 지표의 장점을 통합하여 강력한 거래 전략을 형성합니다. 그것은 동력과 주기적 변화를 동시에 포착하여 시장 상황에 대한 더 포괄적인 판단을 할 수 있습니다.
RSI와 CCI의 값을 계산한다.
z-score를 사용하여 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")