Стратегия Multi-Time Frame Diagonal Stacked RSI


Дата создания: 2023-09-28 16:12:25 Последнее изменение: 2023-09-28 16:12:25
Копировать: 2 Количество просмотров: 735
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия является непереписывающейся стратегией RSI в нескольких временных рамках и выступает только в случае перепродажи в двух более высоких временных рамках. Я пишу это на 1-минутной линии BTC/USD, но логика может быть применена к другим активам.

Принципы

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

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

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

  • Использование нескольких временных рамок RSI повышает надежность торговых сигналов
  • Вход в конусный слой позволяет получить больше возможностей в падении
  • Не перерисовывается индикатор, сигнал надежен
  • Конфигурируемые параметры RSI и пределы перекупа и перепродажи для различных рынков
  • Рассматривайте стоимость сделки, стремитесь к стабильной прибыли, а не к высокой частоте торгов

Риски и решения

  • RSI легко создает ложные сигналы, можно соответствующим образом изменить параметры или добавить фильтрующие условия
  • Складывание уголков увеличивает сложность входа, может уменьшить количество сложных временных рамок
  • Если вы делаете больше, вы должны взять на себя риски, и вы можете подумать о том, чтобы сбалансировать это.
  • Использование фиксированного стоп-лосса для контроля одиночных убытков

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

  • Повышение оценки тренда, использование конусного сложения при понижении тренда, использование конусного сложения при повышении тренда
  • Оптимизируйте RSI, чтобы найти оптимальную комбинацию параметров
  • Повышение качества сигнала с помощью фильтрации Volume, MA и других показателей
  • Добавление дисконтных стратегий, чтобы они приносили прибыль на всех рынках
  • Оптимизация стратегии остановки убытков, снижение отступлений

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("MTF Layered RSI - Bitcoin Bot [wbburgin]",overlay=false, pyramiding = 20, initial_capital=10000)

length = input.int(7,"RSI Length")
tf2 = input.timeframe("3",title="HT 1")
tf3 = input.timeframe("5",title="HT 2")
ob = input.int(80,"Overbought Level")
os = input.int(20,"Oversold Level")

rsi = ta.rsi(close,length)
rsi2 = request.security(syminfo.tickerid, tf2, rsi[1], barmerge.gaps_off, lookahead=barmerge.lookahead_on)
rsi3 = request.security(syminfo.tickerid, tf3, rsi[1], barmerge.gaps_off, lookahead=barmerge.lookahead_on)

plot(rsi,color=color.yellow,title="RSI Current TF")
plot(rsi2,color=color.new(color.yellow,50),title="RSI HT1")
plot(rsi3,color=color.new(color.yellow,75),title="RSI HT2")

lm=hline(os,title="Oversold")
hm=hline(ob,title="Overbought")

fill(hm,lm,color=color.new(color.blue,95))

htCross = (ta.crossover(rsi2,os) and rsi3>os and rsi>os) or (ta.crossover(rsi3,os) and rsi2>os and rsi>os)
buySig = (ta.crossover(rsi,os) and rsi2 < os and rsi3 < os) or htCross
sellSig = ta.crossunder(rsi,ob)

if buySig
    strategy.entry("Long",strategy.long)
if sellSig
    strategy.close("Long")

plotshape(buySig,title="Buysig",style=shape.triangleup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(sellSig,title="Sellsig",style=shape.triangledown,location=location.top,color=color.red,size=size.tiny)