В процессе загрузки ресурсов... загрузка...

Стратегия сочетания RSI и MA

Автор:Чао Чжан, Дата: 2024-05-28 17:34:11
Тэги:РСИМ.А.ЕМАSMAHMAWMASTOCHRSI

img

Обзор

Эта стратегия объединяет индикатор RSI с скользящими средними (MA) для генерации торговых сигналов. RSI используется для определения того, является ли рынок перекупленным или перепроданным, а MA используется для определения ценовых тенденций. Сигнал покупки генерируется, когда RSI перекуплен, а цена выше MA; сигнал продажи генерируется, когда RSI перепродан или когда MA производит кросс смерти. Кроме того, стратегия вводит индикатор Stochastic RSI (StochRSI) в качестве вспомогательного суждения, и на графике будет отмечен запрос, когда StochRSI генерирует сигнал.

Принцип стратегии

  1. Для определения того, является ли рынок перекупленным (> 70) или перепроданным (< 30), рассчитывается значение индикатора RSI.
  2. Вычислить MA пользовательского периода, включая четыре типа: EMA, SMA, HMA и WMA, и определить, следует ли отображать их на графике на основе параметров.
  3. Когда RSI перекуплен и цена закрытия выше, чем MA, генерируется сигнал покупки; когда RSI перепродан или MA создает смертельный крест, генерируется сигнал продажи.
  4. Введите индикатор StochRSI в качестве вспомогательного суждения. Когда StochRSI перекуплен (> 70) или перепродан (< 30), на графике будет помечен запрос, но фактический торговый сигнал не будет генерироваться.

Преимущества стратегии

  1. Органическое сочетание двух классических индикаторов, RSI и MA, позволяет лучше улавливать движения тренда и возможности перекупа/перепродажи.
  2. Тип разрешения и параметры могут быть свободно установлены с высокой гибкостью и могут быть скорректированы в соответствии с различными характеристиками рынка.
  3. Введение показателя StochRSI в качестве вспомогательного суждения обеспечивает более широкую ориентацию для принятия решений о торговле.
  4. Логика кода ясна и читаема, легко понятна и вторичная разработка.

Стратегические риски

  1. Как RSI, так и MA являются отстающими индикаторами и могут генерировать более вводящие в заблуждение сигналы на ранних стадиях изменения тренда.
  2. Неправильное настройка параметров может привести к тому, что сигналы будут генерироваться слишком рано или слишком поздно, что повлияет на общую отдачу.
  3. Отсутствие стоп-лосса и управления позициями может привести к большему риску, когда рынок резко колеблется.

Направления оптимизации стратегии

  1. Внедрить больше ведущих индикаторов, таких как волатильность, чтобы заранее предсказать изменения тренда.
  2. Фильтр сигналов покупки и продажи, например, требует, чтобы RSI и MA соответствовали определенным условиям одновременно для генерации сигналов, с целью повышения точности сигналов.
  3. Добавить в стратегию модули стоп-лосса и управления позициями для контроля риска одной сделки и общего риска.
  4. Оптимизация параметров стратегии для поиска наилучшей комбинации параметров.
  5. Подумайте о добавлении различных циклов или нескольких сортов, чтобы полностью использовать связь между различными сортами или циклами.

Резюме

Сочетая два классических индикатора RSI и MA, эта стратегия может улавливать движения тренда и возможности перекупленности/перепроданности. В то же время она вводит индикатор StochRSI в качестве вспомогательного суждения, и общая идея проста и ясна. Однако стратегия также имеет некоторые недостатки, такие как отсутствие мер контроля риска и необходимость улучшения точности сигнала. В будущем стратегия может быть улучшена путем введения большего количества индикаторов, оптимизации правил сигнала, добавления модулей контроля риска и т. Д., Чтобы получить более надежную отдачу.


/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Strategy with Customizable MA and StochRSI Alert", overlay=true)

// กำหนดค่า RSI สำหรับการเปิดสัญญาณซื้อและขาย
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")

// เลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
maType = input.string("EMA", title="MA Type", options=["EMA", "SMA", "HMA", "WMA"])

// กำหนดค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShortLength = input(12, title="MA Short Length")
maLongLength = input(26, title="MA Long Length")

// เลือกการแสดงผลของเส้นค่าเฉลี่ยเคลื่อนที่
showShortMA = input(true, title="Show Short Moving Average")
showLongMA = input(true, title="Show Long Moving Average")

// ฟังก์ชันสำหรับเลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
f_ma(src, length, type) =>
    switch type
        "SMA" => ta.sma(src, length)
        "EMA" => ta.ema(src, length)
        "HMA" => ta.hma(src, length)
        "WMA" => ta.wma(src, length)

// คำนวณค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShort = showShortMA ? f_ma(close, maShortLength, maType) : na
maLong = showLongMA ? f_ma(close, maLongLength, maType) : na

// คำนวณค่า RSI
rsiValue = ta.rsi(close, 14)

// สร้างสัญญาณซื้อและขาย
buySignal = (rsiValue > rsiOverbought and ((showShortMA and showLongMA and close > maShort and maShort > maLong) or (showShortMA and not showLongMA and close > maShort) or (showLongMA and not showShortMA and close > maLong)))
sellSignal = (showShortMA and showLongMA and ta.crossover(maLong, maShort)) or (showShortMA and not showLongMA and ta.crossover(maShort, close)) or (showLongMA and not showShortMA and ta.crossover(maLong, close))

// แสดงค่าเส้นค่าเฉลี่ยเคลื่อนที่บนกราฟ
plot(maShort, color=color.red, title="MA Short")
plot(maLong, color=color.green, title="MA Long")

// คำนวณค่า Stochastic RSI
smoothK = 3
smoothD = 3
RSIlen = 14
STOlen = 14
SRsrc = close
OSlevel = 30
OBlevel = 70

rsi1 = ta.rsi(SRsrc, RSIlen)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, STOlen), smoothK)
d = ta.sma(k, smoothD)

stochRSIOverbought = OBlevel
stochRSIOversold = OSlevel

stochRSIBuyAlert = ta.crossover(k, stochRSIOversold)
stochRSISellAlert = ta.crossunder(k, stochRSIOverbought)

// สร้างคำสั่งซื้อและขายเมื่อมีสัญญาณจาก RSI และ MA เท่านั้น
if (buySignal)
    strategy.entry("Buy", strategy.long)
if (sellSignal)
    strategy.close("Buy")

// แสดงสัญญาณเตือนจาก Stochastic RSI บนกราฟ
plotshape(series=stochRSIBuyAlert, location=location.belowbar, color=color.green, style=shape.labelup, title="StochRSI Buy Alert")
plotshape(series=stochRSISellAlert, location=location.abovebar, color=color.red, style=shape.labeldown, title="StochRSI Sell Alert")

// แสดงสัญญาณซื้อและขายจาก RSI และ MA บนกราฟ
plotshape(series=buySignal, location=location.top, color=color.green, style=shape.triangleup, title="RSI>70")
plotshape(series=sellSignal, location=location.top, color=color.red, style=shape.triangledown, title="MA crossoverDown")


Связанные

Больше