
La estrategia es un sistema de trading inverso de rango dinámico basado en el RSI, que captura el punto de inflexión del mercado mediante el establecimiento de un rango de sobreventa y sobreventa ajustable, combinado con parámetros de sensibilidad de convergencia/difusión. La estrategia utiliza un número fijo de contratos para operar y funciona en un rango de tiempo de retracción específico. El núcleo del modelo consiste en identificar el estado de sobreventa y sobreventa del mercado a través de los cambios dinámicos en el RSI y invertir el comercio en el momento adecuado.
La estrategia utiliza el indicador RSI de 14 ciclos como indicador central, y establece 80 y 30 como niveles de referencia para las sobrecompras y sobreventa. Mediante la introducción de parámetros de sensibilidad de convergencia/difusión (establecidos en 3.0) se aumenta la capacidad de regulación dinámica sobre la base de la estrategia RSI tradicional.
Se trata de una estrategia de inversión de rango dinámico basada en el indicador RSI, que logra un sistema de negociación relativamente completo a través de una configuración de parámetros flexible y reglas de negociación claras. La principal ventaja de la estrategia reside en su capacidad de ajuste dinámico y un control de riesgo claro, pero al mismo tiempo se debe tener en cuenta el riesgo potencial en mercados convulsivos y tendenciales.
/*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)