Este artículo presenta una estrategia de negociación cuantitativa para ir largo basada en el índice de fuerza relativa (RSI) y el trailing stop. La estrategia utiliza el indicador RSI para determinar las condiciones de mercado sobrecompradas y sobrevendidas, ingresando posiciones largas cuando el mercado está sobrevendido y cerrando posiciones cuando está sobrecomprado. Al mismo tiempo, la estrategia emplea un trailing stop basado en el porcentaje para controlar el riesgo. Esta es una estrategia clásica de seguimiento de tendencias diseñada para capturar tendencias alcistas en mercados fuertes.
El núcleo de esta estrategia es el índice de fuerza relativa (RSI). El RSI es un oscilador de impulso utilizado para medir la magnitud de los cambios de precios durante un período de tiempo.
RS = Average gain over N days / Average loss over N days
RSI = 100 - 100 / (1 + RS)
donde N es el período de tiempo para calcular el RSI, generalmente fijado en 14.
La lógica de la estrategia es la siguiente:
La estrategia intenta entrar en posiciones al comienzo de una transición del mercado de bajista a alcista, y salir al final de un mercado alcista, con el fin de capturar la tendencia alcista principal.
Este artículo presenta una estrategia de trading cuantitativa para ir largo basada en el RSI y los trailing stops. La estrategia utiliza señales de sobrecompra y sobreventa del RSI para entrar y salir de posiciones, mientras que utiliza trailing stops basados en porcentajes para controlar el riesgo. Esta es una estrategia de seguimiento de tendencias simple y práctica adecuada para que los principiantes la aprendan. Sin embargo, también tiene algunas limitaciones, como un bajo rendimiento en mercados de rango y falta de flexibilidad en la gestión de stop loss y posición. Para abordar estas deficiencias, podemos optimizar la estrategia en aspectos como filtrar tendencias, gestión de stop loss dinámicos, gestión de posiciones y cobertura de long-short, con el fin de obtener rendimientos más robustos.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("RSI Strategy (Long)", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = ta.rsi(price, length) co = ta.crossover(vrsi, overSold) cu = ta.crossunder(vrsi, overBought) // *** Signals *** enter_long = ta.crossover(vrsi, overSold) enter_short = ta.crossunder(vrsi, overBought) close_long = ta.crossunder(vrsi, overBought) close_short = ta.crossunder(vrsi, overBought) // *** Risk management *** entry_price = close percent_diff = input(5) stop_loss_price_long = (1 - percent_diff / 100.) * entry_price stop_loss_price_short = (1 + percent_diff / 100.) * entry_price // *** Positions *** if enter_long and strategy.position_size == 0 strategy.entry("Long", strategy.long) strategy.exit("SL Long", "Long", stop = stop_loss_price_long) if enter_short and strategy.position_size == 0 strategy.entry("Short", strategy.short, qty=.001) strategy.exit("SL short", "Short", stop = stop_loss_price_short) if close_long strategy.close("Long", "Exit Long") if close_short strategy.close("Short", "Exit Short")