
Trata-se de uma estratégia de negociação dinâmica baseada em um indicador relativamente forte (RSI) combinado com um mecanismo de parada de perda flexível. A estratégia é usada principalmente para negociar em áreas de sobrevenda do mercado e obter ganhos por meio da captura de oportunidades de rebote nos preços. O núcleo da estratégia é identificar potenciais estados de sobrevenda através do indicador RSI e usar o percentual de parada de perda para controlar o risco após a construção de uma posição, juntamente com a ruptura do pico anterior como um sinal de conclusão de lucro.
A estratégia funciona com base nos seguintes elementos-chave:
Trata-se de uma estratégia de negociação bem concebida, que combina o julgamento de oversold RSI e o mecanismo de parada de perdas, obtendo um bom equilíbrio entre o controle de risco e a captação de oportunidades de lucro. A estratégia é altamente ajustável e adequada para melhorar o desempenho através da otimização de parâmetros em diferentes ambientes de mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Strategy with Adjustable RSI and Stop-Loss", overlay=false,
default_qty_type=strategy.fixed, default_qty_value=2,
initial_capital=10000, pyramiding=2,
commission_type=strategy.commission.percent, commission_value=0.05,
slippage=1)
// Input fields for RSI parameters
rsi_length = input.int(8, title="RSI Length", minval=1)
rsi_threshold = input.float(28, title="RSI Threshold", minval=1, maxval=50)
// Input for Stop-Loss percentage
stop_loss_percent = input.float(5, title="Stop-Loss Percentage", minval=0.1, maxval=100)
// Calculate the RSI
rsi = ta.rsi(close, rsi_length)
// Condition for buying: RSI below the defined threshold
buyCondition = rsi < rsi_threshold
// Condition for selling: Close price higher than yesterday's high
sellCondition = close > ta.highest(high, 1)[1]
// Calculate the Stop-Loss level based on the entry price
var float stop_loss_level = na
if (buyCondition)
stop_loss_level := close * (1 - stop_loss_percent / 100)
strategy.entry("Long", strategy.long)
// Create Stop-Loss order
strategy.exit("Stop-Loss", from_entry="Long", stop=stop_loss_level)
// Selling signal
if (sellCondition)
strategy.close("Long")
// Optional: Plot the RSI for visualization
plot(rsi, title="RSI", color=color.blue)
hline(rsi_threshold, "RSI Threshold", color=color.red)