Estrategia de RSI con múltiples marcos de tiempo en capas diagonales

El autor:¿ Qué pasa?, Fecha: 2023-09-28 16:12:25
Las etiquetas:

Resumen general

Esta estrategia es una estrategia de RSI de múltiples marcos de tiempo que no se repinta y que solo dura cuando dos marcos de tiempo más altos están sobrevendidos. Lo escribí en BTC/USD 1 minuto, pero la lógica también debería funcionar en otros activos. Está diseñada para ser rentable cuando el activo está en una tendencia bajista.

Principio

Las estrategias de capas diagonales se refieren a las condiciones de entrada y salida distribuidas en diferentes marcos de tiempo. Normalmente, los indicadores pueden volverse no rentables porque en las tendencias bajistas, las zonas de sobrecompra del marco de tiempo actual no se alcanzan.

Por lo tanto, esta estrategia está en capas diagonales. Puedo crear un script separado que cambia entre diagonal arriba y diagonal abajo basado en la tendencia general, ya que en períodos de tendencia alcista extendidos este indicador puede no parpadear con tanta frecuencia. Esto se puede visualizar en un gráfico de serie temporal x marco de tiempo como una forma X. Algo a considerar...

Ventajas

  • Utiliza indicadores RSI en múltiples marcos de tiempo, mejorando la fiabilidad de la señal
  • Las capas diagonales ofrecen más oportunidades en tendencias a la baja
  • Los indicadores que no se pintan dan señales confiables.
  • Los parámetros del RSI y los niveles de sobrecompra/sobreventa configurables se adaptan a los diferentes mercados
  • Considera los costos de negociación, apunta a obtener ganancias constantes sobre las operaciones de alta frecuencia

Riesgos y soluciones

  • RSI propenso a señales falsas, ajustar parámetros o añadir filtros
  • Las capas diagonales aumentan la dificultad de entrada, reducen los plazos de capas
  • Solo largo, expuesto al riesgo direccional, considerar el equilibrio largo/cort
  • Utilice el stop loss fijo para controlar la pérdida por operación

Direcciones de optimización

  • Añadir la detección de tendencias, utilizar diagonal en capas en tendencias bajistas, diagonal en tendencias alcistas
  • Optimice los parámetros del RSI para encontrar la mejor combinación
  • Añadir filtros de volumen, MA, etc. para mejorar la calidad de la señal
  • Añadir estrategia corta para que la estrategia pueda ganar en todos los mercados
  • Optimizar el stop loss para reducir la reducción

Resumen de las actividades

En general, esta es una estrategia de negociación de tendencia bajista muy efectiva. El uso de RSI de varios marcos de tiempo y la capa diagonal proporciona oportunidades para atrapar rebotes en tendencias bajistas. No repintar también mejora la confiabilidad de la señal. Con la optimización de parámetros, la adición de filtros y una estrategia corta, se puede convertir en una estrategia robusta para cualquier mercado.


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

Más.