Esta estratégia usa o indicador RSI para julgar as tendências do mercado e gerar sinais de negociação quando ocorrem condições de sobrecompra ou sobrevenda.
Calcule o RSI de 14 períodos e defina a linha de sobrecompra em 67 e a linha de sobrevenda em 44.
Quando o RSI cruza acima da linha de sobrecompra, um sinal de venda é gerado.
Adicione um filtro de média móvel. Os sinais de venda ocorrem apenas quando o fechamento está abaixo do MA do dia anterior; Os sinais de compra ocorrem apenas quando o fechamento está acima do MA do dia anterior.
Incorporar a lógica de captação de lucro e stop-loss. Pontos fixos ou saídas baseadas em RSI podem ser usadas.
Captura oportunidades de reversão de curto prazo utilizando os níveis de sobrecompra/supervenda do RSI.
O filtro da média móvel evita a negociação contra a tendência.
A tomada de lucro e o stop-loss controlam a perda de uma única transação.
Consegue detectar oportunidades de inversão de tendência cedo.
Ajuste os parâmetros ou combine com outros indicadores.
O stop-loss fixo pode ser demasiado largo ou demasiado estreito.
A tomada de lucro fixo pode sair muito cedo ou atingir um alvo muito pequeno.
Não consegue filtrar mercados variados, causando excesso de negociação e perdas.
Teste os parâmetros do RSI em diferentes prazos.
Ajustar os níveis de RSI sobrecomprados/supervendidos.
Tente diferentes médias móveis ou outros filtros.
Teste os objetivos/paradas de lucro fixos versus os objetivos/paradas de lucro dinâmicos.
Otimizar os valores de lucro/paragem para se adequar à volatilidade do mercado.
Adicione filtros para evitar surpresas em mercados variados.
Considere a confluência de vários intervalos de tempo para melhorar a qualidade do sinal.
Esta estratégia opera reversões usando RSI combinado com médias móveis e lógica de lucro / stop-loss. Tem como objetivo capturar voltas de curto prazo no mercado. A otimização adicional de parâmetros e filtros adicionais podem melhorar a lucratividade, reduzindo os riscos. É adequado para investidores que são sensíveis a movimentos de curto prazo e buscam negociação frequente.
/*backtest start: 2022-09-21 00:00:00 end: 2023-09-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //© профешинил хомячело //@version = 4 strategy("RSI Strategy Professional Хомячело", overlay=false) length = input( 14 ) overSold = input( 44 ) overBought = input( 67 ) price = open rsi = rsi(price, length) band1 = hline(overSold, "overSold12", color=#C0C0C0) band0 = hline(overBought, "overBought12", color=#C0C0C0) plot(rsi, "RSI", color=color.red) fill(band1, band0, color=color.black, transp=90, title="Background") src = close a = sma(src, 1) aaa = strategy.opentrades + 1 n = input(defval = 0.0576923077, title = "AvgPrice - n") //n = 0.0576923077 buysignal = crossover(rsi, overSold) and (a < (strategy.position_avg_price - n) or strategy.opentrades == 0) sellsignal = crossunder(rsi, overBought) and (a > (strategy.position_avg_price + n) or strategy.opentrades == 0) // crossover(rsi, overSold) // crossunder(rsi, overBought) if (not na(rsi)) if(buysignal) strategy.entry("LONG", strategy.long, comment = tostring(a) + "\n(" + tostring(aaa) + ")") n += 1000 if(sellsignal) strategy.entry("SHORT", strategy.short, comment = tostring(a) + "\n(" + tostring(aaa) + ")") n += 1000 //лонги орні if(rsi < 15 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n)) strategy.entry("LONG", strategy.long, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ЛОНГ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)") if(rsi < 20 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n)) strategy.entry("LONG", strategy.long, comment = "ЛОНГ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)") //шорти орні if(rsi > 85 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n)) strategy.entry("SHORT", strategy.short, comment = "ЙОБАНИЙ НАСРАВ ТА БЕРИ ШОРТ НА ВСЬО ШО Є НАХУЙ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)") if(rsi > 80 and strategy.opentrades != 5 and a < (strategy.position_avg_price - n)) strategy.entry("SHORT", strategy.short, comment = "ШОРТ НА ВСЮ КОТЛЄТУ\n" + tostring(a) + "\n(" + tostring(aaa) + "!!!)") //стоп-лосс і ціль //rsi rsion = input(defval = false, title = "Тейк-профіт по RSI") rcl = input(defval = 73.0, title = "RSI тейк по лонгу") rcs = input(defval = 44.0, title = "RSI тейк по шорту") possize = input(defval = 250.0, title = "Маржа") posp = input(defval = 3.0, title = "Плече") //tick ut = input(defval = false, title = "Тейк-профіт") tar = input(defval = 4500.0, title = "Тейк-профіт у тіках") us = input(defval = false, title = "Стоп-лосс") stop = input(defval = 0.0, title = "Стоп-лосс у тіках") tar:=tar/syminfo.mintick stop:=stop/syminfo.mintick if(ut==true and us==false) strategy.exit(id="LX", from_entry = "LONG", profit = tar, comment = "ТейкL") strategy.exit(id="SX", from_entry = "SHORT", profit = tar, comment = "ТейкS") if(us==true and ut==false) strategy.exit(id="LX", from_entry = "LONG", loss = stop, comment = "СтопL") strategy.exit(id="SX", from_entry = "SHORT", loss = stop, comment = "СтопS") if(ut==true and us==true) strategy.exit(id="LX", from_entry = "LONG", profit = tar, loss = stop, comment ="Тейк/СтопL") strategy.exit(id="SX", from_entry = "SHORT", profit = tar, loss = stop, comment ="Тейк/СтопS") //закриття по rsi if(rsion == 1 ) pr = round(((a / strategy.position_avg_price - 1) * possize * posp), 2) ppr = round(((a / strategy.position_avg_price - 1) * 100 * posp), 2) spr = round((1 - (a / strategy.position_avg_price)) * possize * posp, 2) sppr = round((100 - (a / strategy.position_avg_price * 100)) * posp, 2) if(rsi > rcl) strategy.close(id="LONG", comment = "LT\n" + tostring(ppr) + "%\n" + tostring(pr) + "$\n" + tostring(a)) if(rsi < rcs) strategy.close(id="SHORT", comment = "ST\n" + tostring(sppr) + "%\n" + tostring(spr) + "$\n" + tostring(a))