
Chiến lược này sử dụng chỉ số tương đối mạnh yếu (RSI) để đánh giá tình trạng bán tháo của thị trường, tạo ra tín hiệu mua khi RSI thấp hơn ngưỡng bán tháo được đặt, đồng thời thiết lập dừng lỗ (Stop Loss) và dừng (Take Profit) để kiểm soát rủi ro và khóa lợi nhuận. Chiến lược này chỉ làm nhiều hơn, không làm rỗng.
Chiến lược này sử dụng chỉ số RSI để nắm bắt cơ hội đảo ngược quá mức bán của thị trường, đồng thời đặt trạm dừng cố định để kiểm soát rủi ro. Lập luận của chiến lược đơn giản và rõ ràng, phù hợp cho người mới sử dụng. Tuy nhiên, chiến lược này cũng có một số hạn chế, chẳng hạn như khả năng nắm bắt xu hướng yếu, tín hiệu đáng tin cậy cần được cải thiện. Do đó, trong ứng dụng thực tế, có thể tối ưu hóa và cải thiện chiến lược để có được hiệu suất giao dịch ổn định hơn từ việc xem xét xu hướng, tối ưu hóa trạm dừng và kết hợp chỉ số.
/*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")