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.
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
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)