RSI CCI Williams%R 양적 거래 전략


생성 날짜: 2024-01-24 11:18:08 마지막으로 수정됨: 2024-01-24 11:18:08
복사: 0 클릭수: 1159
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

RSI CCI Williams%R 양적 거래 전략

전략 개요

이 전략은 RSI, CCI 및 윌리엄스 지표의 세 가지 분류 지표를 결합하여 구매 신호의 효과적인 조합을 구현하는 중장기 전략입니다. 세 가지 지표가 동시에 과매매 또는 과매매 신호를 표시 할 때, 전략은 거래 신호를 발산합니다. 어떤 지표를 단독으로 사용하는 것에 비해, 이 조합 전략은 더 많은 가짜 신호를 필터링하여 전략의 안정성을 향상시킬 수 있습니다.

전략의 이름은 3자리 트롤러 전략으로 정해져 있는데, 이 3자리는 RSI, CCI, 윌리엄스 지표의 조합을 의미하며, 트롤러는 이 전략이 낚시선처럼 기회를 잡는 것이라고 말한다.

전략 원칙

이 전략은 다음과 같은 몇 가지 지표에 의존합니다.

  1. RSI 지표가 과매매를 판단합니다.
  2. CCI 지표는 역전점을 판단합니다.
  3. 윌리엄스 %R 지표는 다시 한번 매도 시기를 확정했다.

RSI가 25보다 낮으면 과매매, 75보다 높으면 과매매. CCI가 130보다 낮으면 과매매, 130보다 높으면 과매매. Williams %R가 85보다 낮으면 과매매, 15보다 높으면 과매매.

위의 세 가지 지표가 동시에 구매 신호를 표시하면, 즉 RSI < 25, CCI < -130, Williams % R < -85, 전략은 더 많이; 판매 신호를 표시하면, 즉 RSI > 75, CCI > 130, Williams % R > -15, 전략은 마이너스.

이것은 단일 지표에서 생성되는 가짜 신호를 방지하고 신호의 신뢰성을 향상시킬 수 있습니다. 또한 단편 거래의 위험과 수익을 제어하기 위해 중지 손실과 중지 을 구성합니다.

전략적 이점

  1. 다중 지표 조합 필터 가짜 신호
    이 전략은 RSI, CCI, 윌리엄스 %R의 3개의 지표의 조합을 통해, 몇몇의 단일 지표 Below의 가짜 매매 신호를 효과적으로 필터링하여 신호의 신뢰성을 향상시킬 수 있다.

  2. 자동 정지 손해 관리 위험
    전략에는 스톱 및 스톱 손실 설정이 내장되어 있으며, 각 거래에 대해 자동으로 스톱 및 스톱 손실 가격을 설정하여 단일 거래의 손실을 효과적으로 제어하고 견딜 수 있는 범위를 초과하지 않습니다.

  3. 중·단기 거래에 적용됩니다.
    이 전략은 중·단기 거래에 더 적합하며, 지표 조합을 통해 판단하는 것이 더 명확한 중·단기 트렌드 반전이다. 단기 잡음과 중·장기 트렌드 식별 능력이 약하다.

  4. 우리는 충분한 자료를 가지고 있습니다.
    이 전략은 유로 대 달러의 45분 K 라인을 사용하며, 이는 외환 시장에서 유동성이 높고 데이터가 풍부한 품종으로, 데이터 부족으로 인한 과다 적합성의 위험을 줄일 수 있습니다.

전략적 위험

  1. 중·장기 추세를 판단하는 능력이 약하다.
    이 전략은 지표의 역전 신호에 더 의존하며, 중장기적 경향에 대한 판단과 추적 능력이 약하며, 장기적인 일방적인 상황이 발생하면 거래 수익의 공간이 제한됩니다.

  2. 단기적인 가격 변동에 빠질 수도 있습니다.
    전략은 45분 주기로, 더 높은 빈도 같은 단기 가격 변동에서 수익을 얻을 수 없습니다. 단기간에 더 큰 가격 변동이 있다면, 전략은 이러한 기회를 놓칠 수 있습니다.

  3. 체계적 위험의 영향
    이 전략은 주로 유로 대 달러 품종에 적용된다. 만약 중대한 경제 위기가 발생하면, 글로벌 외환 시장이 Below 변동이 발생하면, 전략의 거래 규칙은 무효화되어 큰 손실을 초래할 수 있다.

전략 최적화 방향

  1. 동향을 따르는 지표와 함께
    전략에 MA, Boll 등과 같은 평균 지표를 포함하여 중장기 트렌드를 판단할 수 있으며, 트렌드 방향이 명확할 때 포지션을 열면 수익률을 높일 수 있습니다.

  2. 제휴 전략의 최적화
    더 많은 역사적 데이터를 재검토하여, 최종 수익에 대한 다양한 스톱 스 변수의 영향을 평가하고, 최적의 변수 조합을 찾을 수 있다. 또한, 동적 스톱 스도 고려할 수 있다.

  3. 사용 가능한 품종을 확장
    현재 전략은 주로 EUR/USD의 종류에 적용됩니다. 우리는 이 전략을 다른 주류의 종류, 예를 들어, 파운드, 일본, 오스트레일리아 달러와 같은 종류에 적용하여 안정성과 확장성을 테스트할 수 있습니다.

요약하다

삼진 트롤러 전략은 RSI, CCI, 윌리엄스 %R의 3가지 지표의 조합을 통해 가격 반향점을 판단하고, 과매매할 때 거래 신호를 발산한다. 단일 지표에 비해, 이 조합 전략은 더 많은 가짜 신호를 필터링하여, 신호 정확도를 효과적으로 향상시킬 수 있다. 자동화된 스톱 스톱 손실 관리를 통해, 거래 위험을 통제한다.

전략 소스 코드
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI CCI Williams %R Strategy with TP and SL", overlay=true)

// Input parameters for indicators
rsi_period = input(14, title="RSI Period")
cci_period = input(20, title="CCI Period")
williams_period = input(14, title="Williams %R Period")

// Thresholds for overbought and oversold conditions
rsi_oversold = input(25, title="RSI Oversold Level")
rsi_overbought = input(75, title="RSI Overbought Level")
cci_oversold = input(-130, title="CCI Oversold Level")
cci_overbought = input(130, title="CCI Overbought Level")
williams_oversold = input(-85, title="Williams %R Oversold Level")
williams_overbought = input(-15, title="Williams %R Overbought Level")

// Take profit and stop loss levels as a percentage
take_profit_pct = input(1.2, title="Take Profit (%)") / 100
stop_loss_pct = input(0.45, title="Stop Loss (%)") / 100

// Indicator calculations
rsi = ta.rsi(close, rsi_period)
cci = ta.cci(close, cci_period)
highestHigh = ta.highest(high, williams_period)
lowestLow = ta.lowest(low, williams_period)
williamsR = (highestHigh - close) / (highestHigh - lowestLow) * -100

// Entry conditions
longCondition = rsi < rsi_oversold and cci < cci_oversold and williamsR < williams_oversold and strategy.position_size == 0
shortCondition = rsi > rsi_overbought and cci > cci_overbought and williamsR > williams_overbought and strategy.position_size == 0

// Execute strategy entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit or Stop Loss Long", "Long", limit=close * (1 + take_profit_pct), stop=close * (1 - stop_loss_pct))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit or Stop Loss Short", "Short", limit=close * (1 - take_profit_pct), stop=close * (1 + stop_loss_pct))

// Plot the signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// Plot the indicators for visualization
plot(rsi, title="RSI", color=color.blue)
plot(cci, title="CCI", color=color.purple)
plot(williamsR, title="Williams %R", color=color.orange)