Esta estrategia utiliza indicadores RSI duales para identificar condiciones de sobrecompra y sobreventa, combinados con rupturas de la banda de Bollinger para generar señales comerciales. Pertenece a la categoría de estrategia de seguimiento de tendencias. El objetivo es mejorar la confiabilidad de la señal mediante la combinación de múltiples indicadores y obtener ganancias de tendencias obvias.
La estrategia emplea dos RSI con diferentes marcos de tiempo para juzgar el estado de sobrecompra / sobreventa a corto y largo plazo. Las señales comerciales solo se generan cuando ambos RSI alcanzan los valores de umbral simultáneamente. Esto evita señales falsas de un solo RSI.
Las bandas de Bollinger también se utilizan para identificar las rupturas de precios. Sólo cuando se cumplen las condiciones del RSI y el precio rompe la banda superior/inferior de la banda de Boll se generará una señal comercial. La confirmación de la ruptura ayuda a evitar señales en mercados no tendentes.
Por último, los MAs rápidos y lentos se comprueban para determinar la dirección de la tendencia.
El uso combinado de múltiples indicadores ayuda a filtrar las señales falsas, solo se negocian tendencias obvias.
El principal riesgo es no identificar rápidamente las reversiones de tendencia. Las reversiones en forma de V agudas pueden conducir a pérdidas significativas sin un stop loss oportuno.
Añadir estrategias de stop loss para salir rápidamente en las reversiones.
Incorporar otros filtros como el volumen para evitar falsos brotes.
Optimice los parámetros para encontrar la mejor combinación.
Añadir modelos de aprendizaje automático para identificar mejor los regímenes de mercado.
Mejorar la gestión del riesgo, incluido el tamaño de las posiciones y el control de pérdidas.
Esta estrategia combina el doble RSI y las bandas de Bollinger para beneficiarse de las tendencias a corto plazo. Si bien es simple y sencilla, existen limitaciones como señales de reversión retardadas.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 04:00:00 period: 2m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD) // === GENERAL INPUTS === // RSI 1 RSIlength = input(10,title="RSI") RSIoverSold = input(65,title="OSold") RSIoverBought = input(35,title="OBought") price = close vrsi = rsi(price, RSIlength) // RSI 2 RSIlength2 = input(6,title="RSI2") RSIoverSold2 = input(65,title="OSold2") RSIoverBought2 = input(35,title="OBought2") price2 = close vrsi2 = rsi(price2, RSIlength2) //Bollinger Bands source = close Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50) basis = sma(source, Bollinger) dev = Desv * stdev(source, Bollinger) upper = basis + dev lower = basis - dev plot(basis, color=red, title="BB ma") p1 = plot(upper, color=blue, title="BBajo") p2 = plot(lower, color=blue, title="BAlto") fill(p1, p2) //Media movil short = input(3, minval=1, title="Media corta") long = input(10, minval=1, title="Media larga") src = close plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida") plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta") // === STRATEGY - LONG POSITION EXECUTION === enterLong() => vrsi < 30 and vrsi2 < 27 and cross(lower, price) exitLong() => short < long strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in // === STRATEGY - SHORT POSITION EXECUTION === enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price) strategy.entry(id = "Short", long = false, when = enterShort()) // Definición señales de compra buy_signals = vrsi < 30 and vrsi2 < 27 and cross(lower, price) // Definición señales de venta sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price) // Dibuja las señales de compra venta en franjas de color b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na bgcolor(b_color) // Dibuja las señales de compra venta coloreando las velas barcolor(buy_signals ? white : sell_signals ? white : na) plot(vrsi, color=white, linewidth=1) plot(vrsi, color=white, linewidth=2) // Crea alarmas usables desde el desplegable para poder enviar mails a haas alertcondition(buy_signals, title='Buy-Signal', message='compra') alertcondition(sell_signals, title='Sell-Signal', message='vende')