
A estratégia usa o índice de força e fraqueza relativa (RSI) para julgar o estado de sobrevenda do mercado, gerando um sinal de compra quando o RSI está abaixo do limiar de sobrevenda definido, ao mesmo tempo em que configura um stop loss (Stop Loss) e um stop loss (Take Profit) para controlar o risco e bloquear os lucros. A estratégia só faz mais, não fica vazia.
A estratégia de capturar a oportunidade de reviravolta de venda de mercado através do indicador RSI, ao mesmo tempo em que a fixação de stop-loss para controlar o risco. A lógica da estratégia é simples e clara, adequado para o uso de novatos. Mas a estratégia também tem algumas limitações, como a capacidade de captura de tendência fraca, a fiabilidade do sinal precisa ser melhorada, etc. Portanto, na aplicação prática, pode considerar o julgamento de tendência, otimizar o stop-loss, a combinação de indicadores, etc.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estratégia com RSI (Apenas Compras)", overlay=true)
// Parâmetros de entrada
rsiLength = input.int(14, title="Período do RSI")
oversold = input.int(30, title="Nível de Sobrevenda (RSI)")
stopLossPercent = input.float(2.0, title="Stop Loss (%)")
takeProfitPercent = input.float(5.0, title="Take Profit (%)")
// Cálculo do RSI
rsi = ta.rsi(close, rsiLength)
// Sinal de Compra
buySignal = ta.crossover(rsi, oversold)
// Plotando o sinal de compra
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Compra", text="Buy")
// Variáveis para Stop Loss e Take Profit
var float longStop = na
var float longTake = na
// Entrando na posição de compra
if (buySignal)
entryPrice = close
longStop := entryPrice * (1 - stopLossPercent / 100)
longTake := entryPrice * (1 + takeProfitPercent / 100)
strategy.entry("Compra", strategy.long)
label.new(x=bar_index, y=low, text="Compra", style=label.style_label_up, color=color.green)
// Gerenciamento de Stop Loss e Take Profit
if (strategy.position_size > 0)
if (close <= longStop)
strategy.close("Compra", comment="Stop Loss")
label.new(x=bar_index, y=low, text="Stop Loss", style=label.style_label_down, color=color.red)
if (close >= longTake)
strategy.close("Compra", comment="Take Profit")
label.new(x=bar_index, y=high, text="Take Profit", style=label.style_label_up, color=color.green)
// Plotando as linhas de Stop Loss e Take Profit
plot(longStop, color=color.red, linewidth=1, title="Stop Loss Long")
plot(longTake, color=color.green, linewidth=1, title="Take Profit Long")