MACD와 RSI를 기반으로 한 이중 확인 진입 전략


생성 날짜: 2024-02-18 16:24:06 마지막으로 수정됨: 2024-02-18 16:24:06
복사: 0 클릭수: 1158
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

MACD와 RSI를 기반으로 한 이중 확인 진입 전략

개요

이 전략은 MACD 지표와 RSI 지표의 조합을 사용하여 두 가지 확인 입문 메커니즘을 구현하여 수익성 및 위험 제어 사이의 균형을 이루며 중장기선에서 안정적인 수익을 창출하는 것을 목표로합니다.

전략 원칙

이 전략은 주로 MACD 지표를 사용하여 시장의 경향과 진입 시간을 판단한다. MACD 라인을 돌파하는 신호선은 구매 신호로 간주하고, MACD 라인을 넘어가는 신호선은 판매 신호로 간주한다. 또한, RSI 지표의 오버 바이 오버 세일 영역은 가짜 돌파를 필터링하기 위해 사용됩니다. MACD 구매 신호가 나타나 RSI 지표가 구매 영역에 들어가지 않았을 때, Such 전략은 구매 신호를 발산한다. 판매 신호의 판단도 비슷하다.

거래 신호의 신뢰성을 보장하기 위해, 이 전략은 거래량 판단도 추가한다. 거래량이 20일 평균 거래량보다 크면만 거래 신호를 발산한다. 이것은 시장 거래량이 부족할 때 발생하는 잘못된 신호를 피할 수 있다.

마지막으로, 전략은 K선 엔티티의 방향을 추적하고 확인하는 방법으로 사용한다. K선 엔티티의 방향이 변하면 현재 위치를 평행한다. 이것은 이익을 잠금하고 수익 회귀를 방지한다.

우위 분석

  • MACD를 사용하여 시장의 추세와 진입 시기를 판단하여 추세가 시작되는 단계에서 진입하여 수익을 얻을 수 있습니다.
  • RSI 지표는 과매매한 지점에 진입하는 것을 피하여 손실을 줄일 수 있습니다.
  • 거래량 판단은 가짜 신호를 더욱 필터링하여 수익률을 높일 수 있습니다.
  • K-선 엔티티는 손실 추적 방법을 합리적으로 사용하여 위험을 잘 제어 할 수 있습니다.

위험 분석

  • MACD 지표가 지연되어 단선 트렌드 반전을 놓칠 수 있습니다.
  • 거래량 규칙은 낮은 거래량으로 시작하는 경향을 놓칠 수 있습니다.
  • K선 상쇄 방식은 단기 파동에 의해 상쇄될 수 있습니다.

최적화 방향

  • 더 많은 필터링 지표를 추가하는 것을 고려할 수 있습니다. 예를 들어, 브린 밴드 판단은 신호 품질을 더욱 향상시킵니다.
  • 장선 수익을 고정하기 위해 궤도 상실을 추가하는 테스트가 가능합니다.
  • MACD의 파라미터 조합을 최적화하여 지표의 감수성을 높일 수 있습니다.

요약하다

이 전략은 전체적으로 안정성과 수익성 균형을 띠고 있다. MACD는 주 트렌드를 판단하고, RSI와 거래량 듀얼 필터링은 신호 품질을 향상시키고, K선 추적은 스톱 손실 제어 위험을 향상시킵니다. 이 전략은 파라미터를 최적화하고 다른 기술 지표를 추가함으로써 더욱 개선될 수 있다.

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

//@version=5
strategy("Al-Sat Sinyali ve Teyidi", overlay=true)

// MACD (Hareketli Ortalama Yakınsaklık Sapma)
[macdLine, signalLine, _] = ta.macd(close, 5, 13, 5)

// RSI (Göreceli Güç Endeksi)
rsiValue = ta.rsi(close, 14)

// Hacim
volumeAverage = ta.sma(volume, 20)

// RSI ve MACD Filtreleri
rsiOverbought = rsiValue > 70
rsiOversold = rsiValue < 30
macdBuySignal = ta.crossover(macdLine, signalLine) and not rsiOverbought
macdSellSignal = ta.crossunder(macdLine, signalLine) and not rsiOversold

// Al-Sat Stratejisi
shouldBuy = ta.crossover(close, open) and not ta.crossover(close[1], open[1]) and macdBuySignal and volume > volumeAverage
shouldSell = ta.crossunder(close, open) and not ta.crossunder(close[1], open[1]) and macdSellSignal and volume > volumeAverage

strategy.entry("Buy", strategy.long, when=shouldBuy)
strategy.entry("Sell", strategy.short, when=shouldSell)

// Teyit için bir sonraki mumu bekleme
strategy.close("Buy", when=ta.crossover(close, open))
strategy.close("Sell", when=ta.crossunder(close, open))

// Görselleştirmeyi devre dışı bırakma
plot(na)

// Al-Sat Etiketleri
plotshape(series=shouldBuy, title="Al Sinyali", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small, text="Al")
plotshape(series=shouldSell, title="Sat Sinyali", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small, text="Sat")

// Varsayımsal bir sonraki mumun kapanış fiyatını hesapla
nextBarClose = close[1]
plot(nextBarClose, color=color.blue, linewidth=2, title="Tahmin Edilen Kapanış Fiyatı")