RSI-CCI 융합 전략

저자:차오장, 날짜: 2023-09-19 16:42:18
태그:

전반적인 설명

RSI-CCI 융합 전략은 RSI와 CCI 지표의 강점을 결합하여 강력한 거래 접근 방식을 형성합니다. 더 포괄적인 시장 평가를 위해 동력과 주기 동력을 모두 포착합니다.

전략 원칙

  1. RSI와 CCI 값을 계산합니다.

  2. 더 나은 비교를 위해 z 점수를 사용하여 RSI와 CCI를 표준화하십시오.

  3. 표준화된 RSI와 CCI를 지정된 무게로 융합합니다.

  4. 과잉 매수/ 과잉 판매 수준을 확인하기 위해 동적 상위 및 하위 대역을 계산합니다.

  5. 핵융합 지표가 상단역 아래로 넘어가면 짧고, 하단역 아래로 넘어가면 길다고 생각해

이점 분석

이 전략의 장점은 RSI나 CCI만 사용하는 것과 비교하면 다음과 같습니다.

  1. 두 가지 지표의 강점을 통합하여 더 정확합니다.

  2. 더 과학적인 동적 대역은 잘못된 신호를 감소시킵니다.

  3. 표준화는 비교성을 가능하게 하고 융합을 향상시킵니다.

  4. 트렌드와 과잉 구매/ 과잉 판매 조건을 모두 평가할 수 있습니다.

위험 분석

이 전략의 몇 가지 위험:

  1. 부적절한 매개 변수는 주요 거래 지점을 놓칠 수 있습니다.

  2. 부적절한 무게는 지표의 역할을 약화시킬 수 있습니다.

  3. 전체 트렌드를 무시하면 트렌드에 반하는 거래가 발생할 수 있습니다.

  4. 너무 느슨하거나 너무 좁은 밴드 설정은 잘못된 판단의 위험을 증가시킵니다.

최적화 방향

다음의 방법으로 최적화 할 수 있습니다.

  1. 테스트를 통해 최적의 매개 변수를 찾습니다.

  2. 시장 조건에 따라 무게를 조정합니다.

  3. 더 나은 정확성을 위해 트렌드 및 볼륨 지표를 포함합니다.

  4. 위험 조절을 위해 스톱 로스/프로프트 취득을 설정합니다.

  5. 감수성과 잡음을 균형을 맞추기 위해 대역을 최적화합니다.

요약

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")


더 많은