RSI와 MACD를 지원 및 저항과 결합한 양적 거래 전략


생성 날짜: 2024-01-05 16:24:58 마지막으로 수정됨: 2024-01-05 16:24:58
복사: 1 클릭수: 1179
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI와 MACD를 지원 및 저항과 결합한 양적 거래 전략

개요

이 전략은 RSI와 MACD 지표에 기반하여 지원 저항 면과 결합하여 거래 신호를 판단한다. 이 전략은 RSI 지표가 과매매를 판단하고 MACD 지표가 다공이 경향을 판단하고 100주기 내의 최고 가격과 최저 가격과 결합하여 지원 저항 면을 그리며, 지원 근처에서 구매 신호를 생성하고, 저항 근처에서 판매 신호를 생성합니다.

전략 원칙

이 전략은 주로 RSI와 MACD 두 지표에 기초하고 있으며, RSI 지표는 과매매 상태를 판단하고, MACD 지표는 상공 트렌드 상태를 판단한다. 먼저 14 주기의 RSI 값을 계산하고, 과매선 70을 지정하고, 과매선 30을 지정한다. 그 다음에는 12 일 빠른 라인, 26 일 느린 라인의 MACD 값을 계산하고, 9 일 신호 라인을 계산한다. RSI가 30보다 낮으면 과매로 간주되며, RSI가 70보다 높으면 과매로 간주된다.

또한, 이 전략은 100주기 내의 최고 가격과 최저 가격을 계산하여 지지부진을 나타낸다. 구매 신호가 발생했을 때 가격이 지지부진에 가깝게 있어야 한다. 즉, 종결 가격이 지지부진보다 1% 높을 때 구매를 발송한다. 판매 신호가 발생했을 때 종결 가격이 저항부진보다 1% 낮을 때 판매를 발송한다.

전략적 이점

이 전략은 트렌드 분석과 과매매 판단을 결합하여 단일 지표에만 의존하여 발생하는 잘못된 신호를 방지합니다. 또한, 지지부진 지점을 마이너스 파동으로 도입하여 일반적인 지지부진 지점에 대한 반발으로 인한 잘못된 거래를 줄일 수 있습니다. MACD 빠른 라인은 RSI 지표와 결합하여 가격 움직임을 더 정확하게 판단하고 과매 과매매 상태를 판단합니다. 간단한 이동 평균 전략보다 전략은 가격의 장기적인 추세를 더 유연하게 포착 할 수 있습니다.

전략적 위험

이 전략에는 다음과 같은 몇 가지 위험이 있습니다.

  1. 전략은 역전주기가 끝난 후에 출전하는 경향이 있기 때문에 강세를 보인다면 수익의 대부분을 놓칠 수 있습니다.

  2. RSI와 MACD 파라미터를 잘못 설정하면 거래 신호 오류가 발생할 수 있습니다.

  3. 지탱 저항 검출 알고리즘이 단순하여 실제 지탱 저항 지점을 과대평가하거나 과소평가할 수 있다.

  4. 손해 방지 장치의 부재. 극단적인 경우, 손실을 효과적으로 제어 할 수 없습니다.

이러한 위험에 대해, 적응 MACD를 도입하여 RSI 파라미터를 최적화하여 다른 품종의 특성에 더 가깝게 만들 수 있습니다. 지원 저항 판단 알고리즘을 개선하고 시장 모델링 판단을 추가하는 등의 방법으로 최적화 할 수 있습니다.

전략 최적화 방향

이 전략은 다음과 같은 차원에서 최적화될 수 있습니다.

  1. 가죽 AMO 지표와 함께 이동식 상쇄를 도입하는 등

  2. MACD 변수를 실시간으로 최적화할 수 있는 적응형 MACD를 사용한다.

  3. 시장의 분류 판단을 도입하고, 더 과학적인 지지 저항점을 결정합니다.

  4. 더 많은 데이터를 결합하여 시장 상태를 판단하고, 다른 상태는 다른 파라미터를 사용합니다.

  5. 기계 학습 알고리즘을 사용하여 전략에 대한 엔드-에드 최적화

이러한 개선으로 철수율이 더 낮아지고, 전략적 안정성이 높아질 수 있다.

요약하다

이 전략은 RSI와 MACD 지표를 통합하여 과매매 상태를 판단하고, 지지 및 저항 근처에서 거래하는 경향이 좋은 추세 추적 전략에 속한다. 지지 저항 판단과 함께 위험을 줄이는 전략의 장점은 전략 신호가 안정적이며, 위험이 제어 가능하며, 중·장기 보유에 적합하다. 그러나 지표 파라미터, 지지 저항 범위와 같은 일부 파라미터는 수익 수준을 향상시키기 위해 더 이상 최적화 할 수 있습니다.

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

//@version=5
strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true)

// Input for RSI and MACD values
rsiOverbought = input(70, title="RSI Overbought Threshold")
rsiOversold = input(30, title="RSI Oversold Threshold")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")

// Calculating RSI and MACD
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)

// Support and Resistance
support = ta.lowest(100)
resistance = ta.highest(100)

// Drawing support and resistance lines
// line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1)
// line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1)

// Buy Condition: If RSI is oversold and MACD line crosses above the signal line
// Additionally, check if price is near the support line
longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01)
strategy.entry("Long", strategy.long, when=longCondition, comment="Buy")

// Sell Condition: If RSI is overbought and MACD line crosses below the signal line
// Additionally, check if price is near the resistance line
shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01)
strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell")

// Plot values on the chart for visualization
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")