Стратегия РСИ с многочасовым диагональным слоем

Автор:Чао Чжан, Дата: 2023-09-28 16:12:25
Тэги:

Обзор

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

Принцип

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

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

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

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

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

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

Руководство по оптимизации

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

Резюме

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


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

Больше