Esta estratégia utiliza três indicadores RSI com períodos diferentes para determinar se o mercado atingiu níveis extremamente sobrecomprados ou sobrevendidos, e gera sinais de compra e venda em conformidade.
A estratégia utiliza indicadores RSI de 2 períodos, 7 períodos e 14 períodos simultaneamente.
Especificamente, quando o RSI de 2 períodos está abaixo de 10, o RSI de 7 períodos está abaixo de 20 e o RSI de 14 períodos está abaixo de 30, o mercado é considerado sobrevendido e um sinal de compra é gerado.
O código usa um parâmetro de precisão para ajustar os valores limiares de sobrecompra/supervenda do RSI. O padrão é 3, e valores mais baixos significam critérios mais rigorosos de sobrecompra/supervenda.
Quando um sinal de compra ou venda é gerado, se o preço se inverter e quebrar o preço de abertura do dia, a posição atual será fechada para obter lucro ou cortar perdas.
A utilização de uma combinação de indicadores RSI multiperíodo permite identificar com mais precisão as condições de sobrecompra/supervenda e filtrar os falsos sinais.
O ajuste minucioso dos critérios de sobrecompra/supervenda com parâmetros diferentes permite ajustar a sensibilidade da estratégia com base nas condições do mercado.
A implementação de paradas abertas de rastreamento de preços ajuda a bloquear os lucros em tempo hábil.
Os indicadores RSI são propensos a divergências que não são eficazes na identificação de inversões de tendência.
Para períodos de alta volatilidade, os parâmetros do RSI devem ser ajustados, caso contrário, podem desencadear paradas com demasiada frequência.
Três sinais RSI acionados juntos é raro, o que pode perder boas oportunidades de negociação.
Os parâmetros dos critérios de sobrecompra/supervenda devem ser ajustados e testados em diferentes mercados.
Considerar a adição de outros indicadores para confirmação, tais como bandas de Bollinger, KDJ etc., para evitar a divergência do RSI.
Otimizar automaticamente os parâmetros do RSI com base em diferentes regimes de mercado.
Ensaiar outras condições de saída da paragem, tais como paradas ATR.
Adicione filtros para evitar negociações em períodos inadequados.
Esta estratégia identifica zonas de sobrecompra/supervenda usando uma combinação de indicadores de RSI de vários períodos e implementa paradas de rastreamento de tendências. As vantagens incluem melhoria da precisão, parada oportuna; As desvantagens incluem transações perdidas, julgamentos errados do RSI. Recomenda-se testes de otimização de parâmetros, juntamente com a adição de indicadores de confirmação, para alcançar um melhor desempenho.
/*backtest start: 2023-10-25 00:00:00 end: 2023-10-28 10:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //RSI-2 fastup = rma(max(change(close), 0), 2) fastdown = rma(-min(change(close), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //RSI-7 middleup = rma(max(change(close), 0), 7) middledown = rma(-min(change(close), 0), 7) middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown)) //RSI-14 slowup = rma(max(change(close), 0), 14) slowdown = rma(-min(change(close), 0), 14) slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown)) //Signals acc = 10 - accuracy up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3) dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3) exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open) //Trading if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Top", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()