이중 확인 MACD 및 RSI 전략

저자:차오장, 날짜: 2024-02-18 16:24:06
태그:

img

전반적인 설명

이 전략은 MACD 지표와 RSI 지표를 결합하여 중장기간에 안정적인 수익을 목표로 수익성과 위험 통제를 균형있게 하는 입시 신호에 대한 이중 확인 메커니즘을 구현합니다.

전략 논리

이 전략은 주로 MACD 지표를 사용하여 시장 추세와 입점 지점을 결정합니다. 신호 라인의 위의 MACD 라인 크로스오버는 구매 신호로 간주되며 신호 라인의 아래에 있는 MACD 라인 크로스오버는 판매 신호로 간주됩니다. 또한, RSI 지표의 과잉 구매 영역은 거짓 브레이크오프를 필터링하는 데 사용됩니다. 이 전략은 MACD 구매 신호가 발생하고 RSI 지표가 과잉 구매 구역에 진입하지 않았을 때만 구매 신호를 발산합니다. 판매 신호의 판단은 비슷합니다.

거래 신호의 신뢰성을 보장하기 위해, 이 전략은 또한 거래량 분석을 포함합니다. 거래량이 20일 평균 거래량보다 크면만 전략이 거래 신호를 발행합니다. 이것은 시장이 거래량이 충분하지 않을 때 잘못된 신호를 피합니다.

마지막으로, 전략은 또한 촛불 몸의 방향을 추적 및 확인하는 방법으로 사용합니다. 촛불 몸의 방향이 변경되면 현재 포지션을 닫습니다. 이것은 이익을 잠그고 수익 재발전을 방지합니다.

이점 분석

  • MACD는 시장 추세와 입구 지점을 판단하여 더 큰 수익 잠재력을 위해 추세의 시작에 진입 할 수 있습니다.
  • RSI는 과잉 구매/ 과잉 판매 수준에서 진입을 피하고 손실을 줄입니다.
  • 부피 분석은 잘못된 신호를 더 잘 필터링하여 수익성을 높여줍니다.
  • 촛불 추적 중지 합리적으로 위험을 제어

위험 분석

  • MACD는 후진 능력을 가지고 있으며 단기 트렌드 반전을 놓칠 수 있습니다.
  • 부피 규칙은 낮은 부피로 인해 유발되는 경향을 놓칠 수 있습니다.
  • 촛불 중지 단기 스파이크에 의해 중지 될 수 있습니다

최적화 방향

  • 신호 품질을 더 향상시키기 위해 볼링거 밴드 같은 더 많은 필터링 지표를 추가하는 것을 고려하십시오.
  • 장기적인 이익을 확보하기 위해 철도 정류장을 추가하는 테스트
  • 지표 감수성을 높이기 위해 MACD 매개 변수 조합을 최적화하십시오.

요약

전체적으로 이 전략은 안정성과 수익성을 균형 잡는다. MACD는 주요 트렌드를 판단하고, RSI와 볼륨은 신호 품질을 향상시키기 위해 이중 필터링을 제공하며, 촛불 추적은 위험을 통제한다. 전략은 매개 변수 최적화와 추가적인 기술적 인 지표를 통합함으로써 더욱 향상될 수 있다. 특히 과도한 복잡성을 피하고 단순성과 안정성을 유지하는 것이 매우 중요하다.


/*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ı")


더 많은