
Descripción general
Esta estrategia es un sistema de comercio de baja retracción cuantificada que combina un filtro de rango (Range Filter) y un rango real promedio (ATR). Identifica la dirección de la tendencia a través del filtro de rango, y al mismo tiempo utiliza ATR para ajustar dinámicamente el tamaño de la posición y establecer el stop loss para controlar el riesgo. La estrategia requiere que el precio rompa dos períodos consecutivos en el filtro de rango para confirmar la tendencia, y este mecanismo de doble confirmación reduce efectivamente los falsos brechas.
Principio de estrategia
El principio central de esta estrategia es la combinación de la identificación de tendencias de los filtros de rango con el sistema de gestión de riesgos ATR:
Cálculo de los filtros de rango:
- Primero se calcula el promedio móvil simple (SMA) del precio como línea central.
- Luego se calcula el promedio móvil de los valores absolutos de la diferencia entre el precio y esa línea central, como un rango de fluctuación
- La línea central + el rango de fluctuación
- Baja línea = línea central - rango de fluctuación
Condiciones para la confirmación de la tendencia:
- Tendencia al alza: los precios han terminado por encima de la vía en dos períodos consecutivos
- Tendencia a la baja: los precios han terminado por debajo de la línea baja en dos períodos consecutivos
- Este mecanismo de doble confirmación reduce las señales falsas
Posiciones dinámicas en ATR:
- Utilizando el ATR para medir la volatilidad actual del mercado
- Formula para calcular las posiciones: (capital en cuenta * porcentaje de riesgo) / (valor de ATR * puntos)
- La mayor volatilidad del mercado, menor la posición; la menor volatilidad, mayor la posición
Cesación de pérdidas de ATR:
- El stop loss multihead está configurado como: precio actual - (ATR * multiplicado)
- El stop loss de la cabeza vacía está configurado como: precio actual + (ATR * multiplicado)
- A medida que el precio se mueve en la dirección favorable, la línea de parada también se mueve, bloqueando las ganancias
Ventajas estratégicas
La adaptabilidad:
- El filtro de rango se adapta automáticamente a las características de fluctuación de diferentes períodos de mercado
- El mecanismo de ajuste de posición ATR permite que las estrategias se adapten automáticamente a diferentes entornos de volatilidad
El control de riesgos es excelente.:
- Porcentaje de riesgo fijo por transacción (el 1% por defecto)
- El tamaño de las posiciones se ajusta a las fluctuaciones del mercado
- El mecanismo de seguimiento de pérdidas bloquea los beneficios y limita las pérdidas
La calidad de la señal es alta:
- El mecanismo de doble confirmación ((dos brechas de ciclo consecutivas) reduce las señales falsas
- El filtro de rango es eficaz para filtrar el ruido del mercado y identificar las tendencias reales
Características de baja retracción:
- El trailing stop limita el máximo de pérdidas en una sola operación
- La configuración conservadora de los parámetros de riesgo (riesgo del 1%) redujo la retirada general
- Las posiciones dinámicas se reducen automáticamente durante la alta volatilidad, reduciendo el riesgo
Transparencia y personalización:
- Los parámetros de la estrategia son claros y la lógica es clara
- Los parámetros se pueden ajustar según los diferentes mercados y las preferencias de riesgo personales
Riesgo estratégico
El mercado horizontal no está funcionando bien:
- En un mercado de liquidación sin tendencia, pueden producirse frecuentes falsas brechas
- Solución: puede agregar filtros de tendencia adicionales o aumentar el número de ciclos de confirmación
El riesgo de una rápida reversión:
- El stop loss de seguimiento puede no estar disponible en el momento de una reversión súbita de una tendencia fuerte.
- Solución: puede combinarse con un indicador de aumento de la volatilidad o una reducción de la distancia de detención de la cola
Sensibilidad de los parámetros:
- El ciclo de filtro de rango y la selección de los múltiplos de ATR tienen un gran impacto en el rendimiento de la estrategia
- Solución: hacer un buen historial para encontrar una combinación de parámetros sólida
Riesgo de pérdidas continuas:
- Incluso cuando el riesgo de cada operación está bien controlado, las operaciones consecutivas con pérdidas pueden provocar un retiro mayor
- Solución: establecer un límite de pérdidas máximas consecutivas o agregar un filtro de entorno de mercado
Punto de deslizamiento y efecto de las comisiones:
- En el caso de las operaciones en vivo, los puntos de deslizamiento y las comisiones pueden afectar significativamente el rendimiento de la estrategia.
- Solución: Incorporar una tarifa razonable y una estimación de puntos de desliz en el retroceso para mantener un margen de beneficio suficiente
Dirección de optimización de la estrategia
Añadir un filtro de entorno de mercado:
- Se pueden introducir indicadores de volatilidad (como el ancho de banda de Bollinger) para identificar el estado del mercado
- Suspender el comercio o ajustar los parámetros en un mercado de baja volatilidad o de liquidación
- Esto puede reducir las señales falsas en los mercados horizontales y mejorar la ganancia general.
Ciclo de filtro de rango optimizado:
- Considere el uso de ciclos de adaptación en lugar de ciclos fijos
- Se puede ajustar automáticamente el rango del filtro en función de la volatilidad del mercado
- Esto hará que la estrategia se adapte mejor a las diferentes fases del mercado.
Introducción de la confirmación de múltiples marcos de tiempo:
- Aumentar las condiciones de confirmación de tendencias en un marco de tiempo más alto
- Comercializa solo en la dirección de la tendencia principal y evita el comercio contracorriente.
- Esto mejorará significativamente la calidad de la señal y la tasa de éxito.
Ajuste dinámico de los múltiplos de ATR:
- ATR multiplicado por un parón de pérdidas ajustado dinámicamente en función de las características de fluctuación del mercado
- En mercados de baja volatilidad se usan menores multiplicadores, en mercados de alta volatilidad se usan mayores multiplicadores
- Esto aumentará la eficacia y la flexibilidad de la detención de pérdidas.
Mecanismos de exclusión basados en el tiempo:
- Establecer un límite máximo de tiempo de tenencia de la posición
- Si el precio no se mueve en la dirección esperada durante un tiempo determinado, se impone una posición cerrada.
- Esto evita que el dinero se quede atrapado en transacciones no válidas durante mucho tiempo.
Resumir
La estrategia de filtro de rango de doble confirmación combinada con el sistema ATR de posiciones dinámicas y de seguimiento de pérdidas es una estrategia de negociación cuantitativa que se centra en el control del riesgo. Identifica la dirección de la tendencia a través del filtro de rango, requiere dos brechas consecutivas para confirmar la señal, usa ATR para ajustar dinámicamente el tamaño de la posición y establecer el seguimiento de pérdidas, controlando eficazmente el riesgo de cada operación dentro de un porcentaje predeterminado. La principal ventaja de la estrategia reside en la fuerte adaptabilidad y la excelente capacidad de control del riesgo, especialmente adecuada para mercados con grandes fluctuaciones pero con una tendencia evidente.
Código Fuente de la Estrategia
/*backtest
start: 2025-02-01 00:00:00
end: 2025-05-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Range Filter + ATR Strategy (Low Drawdown)", overlay=true,
pyramiding=0, default_qty_type=strategy.percent_of_equity,
default_qty_value=100, commission_type=strategy.commission.percent,
commission_value=0.1, initial_capital=10000)
// Input parameters
rangePeriod = input.int(14, title="Range Filter Period")
atrPeriod = input.int(14, title="ATR Period")
riskPercent = input.float(1.0, title="Risk % per Trade", minval=0.1, maxval=5)
useATRSizing = input(true, title="Use ATR Position Sizing")
trailATR = input(1.5, title="Trailing Stop ATR Multiple")
// Calculate Range Filter
src = close
smooth = ta.sma(src, rangePeriod)
filter = ta.sma(math.abs(src - smooth), rangePeriod)
upper = smooth + filter
lower = smooth - filter
// Calculate ATR
atr = ta.atr(atrPeriod)
// Trend direction
upTrend = src > upper and src[1] > upper[1]
downTrend = src < lower and src[1] < lower[1]
// Position sizing based on ATR
atrPositionSize = (strategy.equity * riskPercent/100) / (atr * syminfo.pointvalue)
// Strategy logic
if (upTrend)
strategy.entry("Long", strategy.long, qty=useATRSizing ? atrPositionSize : na)
if (downTrend)
strategy.entry("Short", strategy.short, qty=useATRSizing ? atrPositionSize : na)
// Corrected trailing stop using trail_offset instead of trail_points
if (strategy.position_size > 0)
strategy.exit("Long Exit", "Long", trail_price=na, trail_offset=trailATR * atr)
if (strategy.position_size < 0)
strategy.exit("Short Exit", "Short", trail_price=na, trail_offset=trailATR * atr)
// Plotting
plot(upper, color=color.green, title="Upper Range")
plot(lower, color=color.red, title="Lower Range")
plot(smooth, color=color.blue, title="Smooth Line")