
A estratégia é um sistema de inversão de negociação de intervalos dinâmicos baseado no RSI, que captura os pontos de inflexão do mercado, definindo intervalos de sobrevenda e venda ajustáveis, combinados com parâmetros de sensibilidade de convergência/difusão. A estratégia utiliza um número fixo de contratos para negociar e opera em um período de tempo de retracção específico. O núcleo do modelo é identificar o estado de sobrevenda e venda do mercado através das mudanças dinâmicas no RSI e negociar inversamente no momento apropriado.
A estratégia usa o indicador RSI de 14 ciclos como indicador central, definindo 80 e 30 como níveis de referência para o sobre-compra e o sobre-venda. A capacidade de regulação dinâmica é aumentada com base na estratégia RSI tradicional, através da introdução do parâmetro de sensibilidade de convergência/difusão (configurado para 3.0).
Trata-se de uma estratégia de reversão de intervalos dinâmicos baseada no RSI, que permite um sistema de negociação relativamente completo através de configurações de parâmetros flexíveis e regras de negociação claras. A principal vantagem da estratégia reside na sua capacidade de regulação dinâmica e no controle de risco claro, mas também requer atenção aos riscos potenciais em mercados de turbulência e de tendência.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI Options Strategy", overlay=true)
// RSI settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(80, title="Overbought Level")
rsiOversold = input(30, title="Oversold Level")
rsiSource = input(close, title="RSI Source")
rsi = ta.rsi(rsiSource, rsiLength)
// Convergence/Divergence Input
convergenceLevel = input(3.0, title="Convergence/Divergence Sensitivity")
// Order size (5 contracts)
contracts = 10
// Date Range for Backtesting
startDate = timestamp("2024-09-10 00:00")
endDate = timestamp("2024-11-09 23:59")
// Limit trades to the backtesting period
inDateRange = true
// RSI buy/sell conditions with convergence/divergence sensitivity
buySignalOverbought = ta.crossover(rsi, rsiOverbought - convergenceLevel)
sellSignalOversold = ta.crossunder(rsi, rsiOversold + convergenceLevel)
buySignalOversold = ta.crossunder(rsi, rsiOversold - convergenceLevel)
sellSignalOverbought = ta.crossover(rsi, rsiOverbought + convergenceLevel)
// Execute trades only within the specified date range
if (inDateRange)
// Buy when RSI crosses above 80 (overbought)
if (buySignalOverbought)
strategy.entry("Buy Overbought", strategy.long, qty=contracts)
// Sell when RSI crosses below 30 (oversold)
if (sellSignalOversold)
strategy.close("Buy Overbought")
// Buy when RSI crosses below 30 (oversold)
if (buySignalOversold)
strategy.entry("Buy Oversold", strategy.long, qty=contracts)
// Sell when RSI crosses above 80 (overbought)
if (sellSignalOverbought)
strategy.close("Buy Oversold")
// Plot the RSI for visualization
plot(rsi, color=color.blue, title="RSI")
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)