Esta estratégia é uma estratégia de RSI multi-tempo não-repainting que vai longo apenas quando dois prazos mais altos são sobrevendidos. Eu escrevi sobre BTC/USD 1 minuto, mas a lógica deve funcionar em outros ativos também.
A camada diagonal refere-se às condições de entrada e saída espalhadas por diferentes prazos. Normalmente, os indicadores podem se tornar não lucrativos porque, nas tendências de baixa, as zonas de sobrecompra do período atual não são alcançadas. Em vez disso, as zonas de sobrecompra dos prazos mais altos são alcançadas primeiro, seguidas por um recuo.
Assim, esta estratégia é diagonalmente em camadas. Eu posso criar um script separado que troca entre diagonal-up e diagonal-down com base na tendência geral, como em períodos de tendência de alta estendida este indicador pode não piscar com tanta frequência. Isso pode ser visualizado em um gráfico de série de tempo x timeframe como uma forma
Em geral, esta é uma estratégia de negociação de tendência de baixa muito eficaz. Usando RSI de vários prazos e camadas diagonais fornece oportunidades para capturar rebotes em tendências de baixa. Não repintando também melhora a confiabilidade do sinal. Com otimização de parâmetros, adicionando filtros e uma estratégia curta, pode ser transformado em uma estratégia robusta para qualquer 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)