
La estrategia de oscilación de doble horquilla RSI es una estrategia de negociación cuantitativa que utiliza el indicador RSI junto con la señal de horquilla de oro de la línea media para decidir si se compra o se vende. La estrategia utiliza el indicador RSI para determinar si el mercado está sobrevalorado o infravalorado, y en combinación con la tendencia de la línea de equilibrio, para emitir una operación al mismo tiempo que el indicador RSI muestra un fenómeno de sobreventa y sobreventa. Esto puede filtrar eficazmente las señales falsas y mejorar la estabilidad de la estrategia.
La estrategia se basa principalmente en el uso de una combinación de indicadores RSI y líneas medias. En primer lugar, se calcula el RSI de un determinado período y se establece una línea de sobreventa y sobreventa. En segundo lugar, se calcula la media rápida y la media lenta.
La mayor ventaja de esta estrategia es que se puede usar el indicador RSI para determinar el fenómeno de sobreventa y sobreventa al mismo tiempo que la línea media para determinar la dirección de la tendencia, lo que evita los falsos saltos. Además, el uso combinado del RSI y el canal BOLL puede filtrar aún más el ruido y hacer que las señales de negociación sean más precisas.
Los riesgos de esta estrategia pueden ser: frecuencia de operación demasiado alta, fácil de almacenar; configuración incorrecta de los parámetros puede reducir la precisión de la señal. Además, en situaciones de convulsión, también puede haber pérdidas.
Se puede considerar ajustar el RSI o el parámetro de la línea media para adaptarse a diferentes períodos; combinar señales de filtración con otros indicadores; establecer paradas de pérdidas para controlar el riesgo; optimizar la gestión de posiciones en cada operación.
La estrategia de oscilación de la horquilla de oro de la línea media RSI es una estrategia de comercio de línea corta más estable y confiable en general. A través de la combinación de la optimización de los parámetros y el control del riesgo, se puede obtener una mejor tasa de rendimiento. La estrategia es fácil de entender y implementar, muy adecuada para los principiantes en el aprendizaje y la aplicación de comercio cuantitativo.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI slowma Ismael", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Definir la longitud del RSI
rsi_length = input(title='RSI Length', defval=14)
//media
Fast = input(title='Fast', defval=7)
slow = input(title='Slow', defval=2)
// Definir los niveles de sobrecompra y sobreventa del RSI
rsi_overbought = input(title='RSI Overbought Level', defval=72)
rsi_oversold = input(title='RSI Oversold Level', defval=29)
// Definir la longitud y la desviación estándar de las Bandas de Bollinger
bb_length = input(title="Bollinger Bands Length", defval=14)
bb_stddev = input(title="Bollinger Bands StdDev", defval=2)
// Calcular RSI
rsi_value = ta.rsi(close, rsi_length)
// Calcular Bandas de Bollinger
bb_upper = ta.sma(rsi_value, bb_length) + bb_stddev* ta.stdev(rsi_value, bb_length)
bb_lower = ta.sma(rsi_value, bb_length) - bb_stddev * ta.stdev(rsi_value, bb_length)
//media movil adelantada
fastMA = ta.sma(rsi_value, Fast)
slowMA = ta.sma(rsi_value, slow)
// Definir la señal de compra y venta
buy_signal = (ta.crossover(rsi_value, slowMA) and rsi_value < bb_lower and rsi_value < rsi_oversold) or (rsi_value < bb_lower and rsi_value < rsi_oversold)
sell_signal = (ta.crossunder(rsi_value, slowMA) and rsi_value > bb_upper and rsi_value > rsi_overbought) or (rsi_value > bb_upper and rsi_value > rsi_overbought)
// Configurar las condiciones de entrada y salida del mercado
if buy_signal
strategy.entry("Buy", strategy.long)
if sell_signal
strategy.close("Buy")
// Configurar el stop loss y el take profit
stop_loss = input.float(title='Stop Loss (%)', step=0.01, defval=3)
take_profit = input.float(title='Take Profit (%)', step=0.01, defval=8)
strategy.exit("Exit Long", "Buy", stop=close - close * stop_loss / 100, limit=close + close * take_profit / 100)
// Configurar la visualización del gráfico
plot(slowMA, title='RSISMA', color=color.rgb(75, 243, 33), linewidth=1)
plot(fastMA, title='RSIFMA', color=color.rgb(75, 243, 33), linewidth=1)
plot(rsi_value, title='RSI', color=color.purple, linewidth=1)
// Marcar las zonas de sobrecompra y sobreventa en el grafico del RSI
hl= hline(rsi_overbought, title='Overbought', color=color.purple, linestyle=hline.style_dotted, linewidth=1)
hll= hline(rsi_oversold, title='Oversold', color=color.purple, linestyle=hline.style_dotted, linewidth=1)
fill(hl,hll, color= color.new(color.purple, 91))
bbfill = plot(bb_upper, title='Bollinger Bands up', color=color.blue, linewidth=1)
bbfill1= plot(bb_lower, title='Bollinger Bands down', color=color.blue, linewidth=1)
fill(bbfill,bbfill1, color= color.new(#2bb5ec, 91))