La estrategia de ruptura de impulso se basa en el concepto propuesto por Richard Bookstaber en 1984 de que una vez que hay un gran movimiento volátil, el mercado tiende a seguirlo. Por lo tanto, utiliza el ATR para medir la volatilidad y emite órdenes cuando el cambio actual en el precio de cierre supera el umbral calculado multiplicando el ATR por una constante configurable.
La estrategia primero calcula el indicador ATR para medir la volatilidad del mercado. Luego calcula el valor absoluto del cambio de precio de cierre diario. Cuando el cambio de precio de cierre excede el valor de ATR en varios múltiplos, se generan señales comerciales. Específicamente, si el precio de cierre aumenta más que el tren superior ATR, vaya largo; si el precio de cierre cae más que el tren superior ATR, vaya corto.
La estrategia utiliza el indicador ATR para determinar dinámicamente el umbral de ruptura. Cuando la volatilidad del mercado aumenta, el umbral aumentará para reducir las operaciones erróneas. Cuando la volatilidad del mercado disminuye, el umbral disminuirá para capturar las oportunidades de ruptura de manera oportuna.
Considere combinar otros indicadores para seleccionar oportunidades de negociación para mejorar la eficiencia. También seleccione parámetros óptimos basados en las características del producto. Utilice técnicas como Martingale para controlar la frecuencia de negociación.
La estrategia de ruptura de impulso es simple y directa, generando señales comerciales de las rupturas. La estrategia de stop loss ATR le permite adaptarse a la volatilidad del mercado. La estrategia se basa en la optimización de parámetros para obtener resultados decentes. Pero también hay algunos problemas como la falta de rupturas iniciales, el comercio frecuente, etc. Se necesitan mejoras adicionales al combinarse con otras técnicas para obtener ganancias estables en mercados complejos. En general, la estrategia de ruptura de impulso tiene una lógica clara y vale la pena investigar y aplicar más.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © EduardoMattje //@version=5 strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true, initial_capital=20000) // Inputs var averageLength = input.int(14, "Average length", 2) var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1) // Calculations atr = ta.atr(averageLength) * multiplier closingChange = ta.change(close, 1) atrPenetration(int signal) => res = closingChange * signal > atr[1] longCondition = atrPenetration(1) shortCondition = atrPenetration(-1) // Order calls if (longCondition) strategy.entry(strategy.direction.long, strategy.long) if (shortCondition) strategy.entry(strategy.direction.short, strategy.short) // Visuals plot(atr, "ATR", color.white, 2) plot(math.abs(closingChange), "Absolute close change", color.red)