Esta estratégia utiliza o Índice de Força Relativa (RSI) para determinar a condição de sobrevenda do mercado. Quando o RSI cai abaixo de um limite de sobrevenda definido, ele gera um sinal de compra. Ao mesmo tempo, ele define um stop loss e take profit para controlar o risco e bloquear os lucros.
Esta estratégia usa o indicador RSI para capturar oportunidades de reversão de sobrevenda no mercado, enquanto define stop loss fixos e obtém lucros para controlar o risco. A lógica da estratégia é simples e clara, adequada para usuários novatos. No entanto, esta estratégia também tem certas limitações, como fraca capacidade de entender tendências e a confiabilidade do sinal precisa ser melhorada. Portanto, em aplicações práticas, podemos considerar a otimização e melhoria da estratégia a partir de aspectos como julgamento de tendência, otimização de stop loss e take profit e combinação de indicadores para obter um desempenho comercial mais robusto.
/*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")