Стратегия пересечения скользящих средних RSI


Дата создания: 2023-11-07 15:35:58 Последнее изменение: 2023-11-07 15:35:58
Копировать: 0 Количество просмотров: 1004
1
Подписаться
1617
Подписчики

Стратегия пересечения скользящих средних RSI

Обзор

RSI Average Line Crossover - это стратегия, применяемая к криптовалютным операциям. Эта стратегия применяет движущуюся среднюю к RSI и посылает сигналы покупки и продажи в зависимости от того, пересекается ли RSI с ее движущейся средней.

Стратегический принцип

Сначала стратегия рассчитывает RSI. RSI основан на колебаниях цен в течение определенного периода времени и отражает их силу. RSI больше 70 - это зона сверхпокупок, а меньше 30 - зона сверхпродажи.

Затем стратегия применяет скользящие средние на основе показателя RSI. Скользящие средние могут фильтровать случайные колебания и определять направление тенденции. Здесь устанавливается скользящее среднее RSI на 10 циклов.

Когда RSI пересекает свою скользящую среднюю, это рассматривается как сигнал к покупке; когда RSI пересекает свою скользящую среднюю ниже, это рассматривается как сигнал к продаже.

В коде сначала рассчитывается RSI на циклы length. Затем рассчитывается движущаяся средняя RSI на 10 циклов ma. Когда ma пересекает rsi, покупают; когда ma пересекает rsi, продают.

Кроме того, в коде изображены линейные схемы rsi, ma, а также столбиковые схемы rsi-ma. Нарисована разделительная линия rsi=70, rsi=30 и соответствующая сигнальная стрелка на графике при покупке и продаже.

Анализ преимуществ стратегии

  • Индекс RSI позволяет определять перекуп и перепродажу, а скользящие средние фильтруют случайные колебания, которые в сочетании помогают обнаружить точки перехода в тренд.
  • RSI Average Line Cross - это более зрелая стратегия, которая позволяет отфильтровывать ложные сигналы.
  • Код стратегии является простым, понятным и понятным. Картографические функции полностью выполнены, и торговые сигналы можно четко наблюдать.
  • Эта стратегия лучше всего подходит для криптовалют с более заметными тенденциями.

Анализ стратегических рисков

  • Неправильные циклические параметры, используемые RSI и движущейся средней, могут привести к созданию слишком много ошибочных сигналов.
  • Одно лишь пересечение показателей не позволит полностью избежать подтасовки.
  • Требуется оптимизация управления позициями.
  • “Однако, поскольку криптовалютные рынки сильно колеблются, следует быть бдительным в отношении риска потерь”.

В зависимости от риска можно скорректировать параметры, оптимизировать эффективность показателя, соответствующим образом сократить позиции, установить стоп-линию и фильтровать сигналы в сочетании с анализом тенденций.

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

  • Оптимальное сочетание RSI и средней линии, которое можно изучить при различных периодах
  • Можно увеличить позиции при сильной тенденции, уменьшить позиции при неясной тенденции
  • Можно установить динамический стоп, чтобы отслеживать тренд
  • Другие индикаторы могут быть исследованы в сочетании с RSI для создания новых торговых сигналов
  • Модели машинного обучения, основанные на этой стратегии, могут быть исследованы для повышения успеваемости стратегии.

Подвести итог

RSI равнолинейная кросс стратегия сочетает в себе преимущества трендового индикатора и фильтрующего индикатора, является относительно зрелой и надежной. Логика стратегии проста и понятна, а реализация кода более целостна, и в целом является лучшей стратегией торговли криптовалютой. Но любая стратегия имеет места, где требуется оптимизация, требующая постоянного тестирования и корректировки, а также поддерживаемая трендовым суждением, для достижения лучшей стратегии.

Исходный код стратегии
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI w MA Strategy", shorttitle="RSI w MA Strategy", overlay=false, initial_capital=10000, currency='USD',process_orders_on_close=true)

//TIME FRAME AND BACKGROUND CONTROL/////////////////////////////////////////////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(01, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2022, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   color.teal : na
//bgcolor(testPeriodBackgroundColor, transp=50)
testPeriod() => true
////////////////////////////////////////////////////////////////////////////////

src = close, len = input(27, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
window = input(10, "RSI MA Window")
ma = sma(rsi,window)
plot(rsi, color=color.orange)
colorr= ma > rsi ? color.red : color.green
plot(ma,color=colorr)
band1 = hline(70)
band0 = hline(30)
fill(band1, band0, color=color.purple, transp=90)
diff = rsi - ma

plot(diff,style= plot.style_columns,transp=50,color = colorr)

plotshape(crossunder(rsi,ma)?rsi:na,title="top",style=shape.triangledown,location=location.absolute,size=size.tiny,color=color.red,transp=0)
plotshape(crossover(rsi,ma)?rsi:na,title="bottom",style=shape.triangleup,location=location.absolute,size=size.tiny,color=color.lime,transp=0)

buySignal = crossover(rsi,ma)
sellSignal = crossunder(rsi,ma)

//TRADE CONTROL/////////////////////////////////////////////////////////////////
if testPeriod()
    if buySignal
        strategy.close("Short", qty_percent = 100, comment = "Close Short")
        strategy.entry("Long", strategy.long, qty=.1)

    if sellSignal
        strategy.close("Long", qty_percent = 100, comment = "Close Long")
        strategy.entry("Short", strategy.short, qty=.1)

////////////////////////////////////////////////////////////////////////////////