Стратегия двойного подтверждения 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ı")


Больше