Esta estrategia utiliza el índice de fuerza relativa (RSI) para determinar la condición de sobreventa del mercado. Cuando el RSI cae por debajo de un umbral de sobreventa establecido, genera una señal de compra. Al mismo tiempo, establece un stop loss y toma ganancias para controlar el riesgo y bloquear las ganancias. La estrategia solo toma posiciones largas y no corta.
Esta estrategia utiliza el indicador RSI para capturar oportunidades de reversión de sobreventa en el mercado mientras se establecen pérdidas fijas de parada y se obtienen ganancias para controlar el riesgo. La lógica de la estrategia es simple y clara, adecuada para usuarios novatos. Sin embargo, esta estrategia también tiene ciertas limitaciones, como la débil capacidad de captar tendencias y la fiabilidad de la señal debe mejorarse. Por lo tanto, en aplicaciones prácticas, podemos considerar optimizar y mejorar la estrategia desde aspectos como el juicio de tendencias, la optimización de pérdidas de parada y toma de ganancias y la combinación de indicadores para obtener un rendimiento comercial más 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")