Esta es una estrategia de negociación a corto plazo que utiliza el indicador ADX para filtrar las señales de ruptura. Se corta cuando el precio se rompe por encima de la banda superior de Bollinger y ADX está cayendo, y se hace largo cuando el precio se rompe por debajo de la banda inferior de Bollinger y ADX está subiendo. La estrategia también establece stop loss y take profit automáticamente para la negociación totalmente automatizada.
El núcleo de esta estrategia es el uso de bandas de Bollinger para señales de ruptura. Las bandas superior e inferior de las bandas de Bollinger representan dos desviaciones estándar del precio, por lo que las rupturas generalmente implican que el precio está entrando en una tendencia fuerte. Además, el indicador ADX se introduce aquí como un filtro para evitar falsas rupturas.
Específicamente, esta estrategia calcula Bandas de Bollinger utilizando 33 períodos de precios de cierre. La banda media es un promedio móvil simple de 33 períodos, y las bandas superior/inferior se colocan a dos desviaciones estándar por encima/por debajo de la banda media. La estrategia señala corto cuando el precio cierra por debajo de la banda superior y el ADX de 8 períodos está por debajo del ADX de 15 períodos. Señala largo cuando el precio cierra por encima de la banda inferior y el ADX de 8 períodos está por encima del ADX de 15 períodos. Las salidas se establecen en 800 puntos de ganancia y 400 puntos de stop loss.
Como estrategia de ruptura que incorpora filtros de tendencia e impulso, tiene varias ventajas:
También hay algunos riesgos con esta estrategia:
Para mitigar estos riesgos, podemos ajustar el parámetro BB para reducir las bandas, ajustar los períodos ADX para evitar el filtrado excesivo y reducir la stop loss para controlar la pérdida de una sola operación.
Hay espacio para una mayor optimización:
En conclusión, esta es una estrategia de ruptura simple y práctica con filtro. Identificar tendencias con BB y filtrar señales con ADX ayuda a evitar el ruido durante los períodos de rango y capturar oportunidades de tendencia hasta cierto punto.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hizbullah XAUUSD Sniper", overlay=true) Price = close Length = input(33) Mult = input(2) Basis = sma(Price, Length) StdDev = Mult * stdev(Price, Length) Upper = Basis + StdDev Lower = Basis - StdDev ADX_Length = input(4) TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) SmoothedTrueRange = sma(TrueRange, ADX_Length) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedDirectionalMovementPlus = sma(DirectionalMovementPlus, ADX_Length) SmoothedDirectionalMovementMinus = sma(DirectionalMovementMinus, ADX_Length) DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus)*100 SmoothedADX1 = ema(DX, input(8)) SmoothedADX2 = ema(DX, input(15)) Condition1 = crossunder(Price, Upper) and SmoothedADX1 < SmoothedADX2 Take_Profit = input(800) Stop_Loss = input(400) strategy.entry("ShortEntry", true, when = Condition1) strategy.exit("ShortExit", "ShortEntry", profit = Take_Profit, loss = Stop_Loss)