
La estrategia Ehlers-Tripo Batworth-Filter para la cuantificación de tendencias cruzadas es un método de análisis técnico basado en la teoría de procesamiento de señales, que aplica el algoritmo de las ondas de Batworth de John Ehlers a los datos de los mercados financieros. La estrategia utiliza el filtro para suavizar las fluctuaciones de los precios, identificar las tendencias potenciales del mercado y generar señales de negociación utilizando el punto de cruce entre el valor de las ondas y el valor de activación.
El núcleo de la estrategia de comercio cuantitativo de tendencias cruzadas del filtro de Bartwors de Ehlers Tripolar reside en su modelo matemático único. El filtro de Bartwors es un filtro de baja permeabilidad ampliamente utilizado en el campo del procesamiento de señales, cuya principal característica es la respuesta de amplitud con la máxima planitud en la banda de transmisión. En los mercados financieros, esta característica le permite filtrar eficazmente las fluctuaciones de precios a corto plazo y retener información de tendencias a largo plazo.
La implementación de la estrategia se basa principalmente en los siguientes pasos:
Cálculo del filtroAprobado:calculateButterworthFilterLa función calcula el valor de la onda de filtro de Bartwoth en el triángulo. Utiliza una fórmula matemática para convertir los datos de precios originales en valores de filtro suaves y los valores de desencadenamiento correspondientes. El cálculo de la onda de filtro involucra operaciones matemáticas complejas, incluidas la función exponencial, la función triangular y el cálculo recursivo.
Generación de señalesLa estrategia genera señales de comercio de dos maneras principales:
Ejecución de la operaciónEjecutar las operaciones correspondientes según la señal generada:
En el código, la estrategia se utilizastrategy.entryystrategy.closeLas funciones ejecutan operaciones de transacción y pasanplotshapeLa función visualiza el punto de la señal de negociación en el gráfico.
La estrategia de comercio de tendencias cruzadas de los filtros Batworth de Ehlers Tripolar tiene varias ventajas significativas:
Fuertes capacidades de filtración de ruidoEl filtro de Bat-Worth tripóreo tiene una excelente capacidad de suavización de señales que filtran eficazmente las fluctuaciones y falsas señales de corto plazo del mercado, lo que hace que sea más fácil para los comerciantes identificar la verdadera tendencia del mercado. Este filtro de alta eficiencia se logra a través de un coeficiente calculado con precisión en el código (coef1 a coef4).
Identificar las tendencias con precisiónLa intersección del filtro y la línea de disparo proporciona una clara señal de cambio de tendencia, lo que permite a los operadores capturar los puntos de cambio en la tendencia del mercado a tiempo.ta.crossoveryta.crossunderLas funciones y las estrategias para identificar con precisión estos cruces clave.
Intuición visualLa estrategia utiliza líneas y áreas de relleno de diferentes colores en el gráfico para mostrar intuitivamente la relación entre el valor de la onda y el valor de la activación, lo que ayuda a los comerciantes a juzgar rápidamente el estado actual del mercado. El amarillo representa una tendencia alcista y el púrpura una tendencia bajista.
Flexible y ajustable: La estrategia ofrece la opción de introducir precios personalizados y parámetros de ciclo, lo que permite a los operadores ajustar los parámetros de la estrategia en función de diferentes entornos de mercado y preferencias personales.
Sistema de intercambio completoLa estrategia no solo incluye un mecanismo de generación de señales, sino que también integra una lógica de negociación completa, que incluye reglas de entrada y salida, lo que la convierte en un sistema de negociación disponible de forma independiente.
Visualización de señalesAprobado:plotshapeLas funciones y estrategias marcan los puntos de las señales de compra y venta en los gráficos, lo que permite a los operadores conocer de forma intuitiva el rendimiento de las señales históricas, lo que facilita la evaluación y optimización de las estrategias.
A pesar de las ventajas de la estrategia de comercio cuantitativo de tendencias cruzadas del filtro Batworth tripolar de Ehlers, existen algunos riesgos potenciales:
Riesgo de retraso: Como un indicador de filtro, la estrategia inevitablemente tiene cierta latencia. Aunque el filtro de Bartholomew de tres polos tiene una menor latencia en comparación con la media móvil simple, en un mercado que cambia rápidamente, la señal puede aparecer después del punto de entrada ideal. Para reducir este riesgo, se puede considerar la reducción de los parámetros de ciclo, pero esto también puede causar una señal demasiado sensible.
Riesgo de señales falsasEn un mercado convulso o en un entorno de mercado sin una tendencia obvia, las estrategias pueden generar más falsas señales, lo que lleva a la pérdida de operaciones frecuentes y de comisiones innecesarias. Se puede reducir el riesgo de falsas señales agregando condiciones de filtrado adicionales o combinando con otros indicadores para confirmar.
Sensibilidad de los parámetrosLa estrategia de rendimiento depende en gran medida de la elección de los parámetros de ciclo. Diferentes entornos de mercado pueden requerir diferentes configuraciones de parámetros, y la elección errónea de parámetros puede conducir a un mal desempeño de la estrategia. Se recomienda la optimización de los parámetros en diferentes entornos de mercado a través de la retroalimentación histórica.
Riesgo de un solo indicador: La dependencia de un solo indicador para tomar decisiones comerciales puede conducir a un mal desempeño en ciertos entornos de mercado específicos. Se recomienda que la estrategia se utilice como parte del sistema de negociación, en combinación con otros indicadores o métodos para un juicio integral.
Riesgo sistémicoEn condiciones extremas de mercado, como una gran volatilidad o agotamiento de la liquidez, cualquier indicador técnico basado en datos históricos puede fallar. Se recomienda establecer medidas de control de riesgo adecuadas, como órdenes de pérdidas y gestión del tamaño de la posición.
Basado en un análisis en profundidad de la estrategia de comercio de tendencias cruzadas de Ehlers-Barthworth, se presentan algunas posibles direcciones de optimización:
Diseño de parámetros adaptativos: La estrategia actual utiliza parámetros de ciclo fijos, se puede considerar la posibilidad de implementar un mecanismo de parámetros de adaptación, para ajustar automáticamente los parámetros de ciclo en función de la volatilidad del mercado. Por ejemplo, se puede ajustar dinámicamente los parámetros de ciclo calculando la amplitud real media de los precios (ATR), utilizando períodos más cortos en mercados de alta volatilidad y períodos más largos en mercados de baja volatilidad.
Confirmación de varios ciclos: Introducir el cálculo del filtro de varios períodos de tiempo, que requiere la confirmación de la coherencia de la señal en diferentes períodos de tiempo, para reducir la falsa señal. Se puede agregar el siguiente código:
[butterLong, triggerLong] = calculateButterworthFilter(priceInput, periodInput * 2)
longConfirmation = butter > trigger and butterLong > triggerLong
Aumentar las mediciones auxiliares: Integración de otros indicadores técnicos como filtros de señal, como el índice de fuerza relativa ((RSI), el indicador aleatorio ((Stochastic) o el indicador de volumen de transacción, ejecutando operaciones solo si se confirma el indicador auxiliar.
Mejora de la gestión de riesgosLa estrategia incluye un mecanismo dinámico de stop-loss y stop-loss, que ajusta automáticamente la distancia de stop-loss en función de la volatilidad del mercado. Al mismo tiempo, se puede realizar un cálculo del tamaño de la posición basado en los principios de gestión de fondos.
Optimización de la detección dispersa: El código actual menciona la detección de dispersión, pero la implementación real no se ha desarrollado en detalle. Se pueden perfeccionar los algoritmos de detección de dispersión, especialmente la identificación de dispersiones ocultas, para mejorar aún más la calidad de la señal.
El filtro del entorno del mercadoPor ejemplo, se puede usar un indicador de tendencia de largo período para determinar si el mercado actual es un mercado de tendencia o un mercado de crisis, y ajustar la estrategia de negociación de acuerdo con eso.
Aprendizaje automáticoConsidere la introducción de métodos de aprendizaje automático, como algoritmos de clasificación o aprendizaje de refuerzo, para optimizar la selección de parámetros y el proceso de generación de señales y mejorar la adaptabilidad de las estrategias.
La estrategia de comercio de Ehlers-Tripoyer para la cuantificación de tendencias cruzadas de filtros de Batworth combina la teoría del procesamiento de señales con el análisis técnico para proporcionar un método científico y sistemático de identificación de tendencias en el mercado. La estrategia reduce el ruido del mercado con algoritmos avanzados de filtración y captura los puntos clave de cambio en las tendencias de precios, proporcionando una base objetiva y cuantificable para las decisiones de comercio.
Las ventajas centrales de la estrategia residen en su poderosa capacidad de filtrado de ruido y su precisa función de identificación de tendencias, lo que la hace sobresalir en entornos de mercado con una tendencia evidente. Al mismo tiempo, la estrategia satisface las necesidades personalizadas de diferentes operadores al proporcionar señales de negociación visibles y opciones de ajuste de parámetros flexibles.
Sin embargo, al igual que todos los indicadores técnicos, la estrategia también enfrenta desafíos como el retraso, las falsas señales y la sensibilidad de los parámetros. La solidez y la adaptabilidad de la estrategia se pueden mejorar aún más mediante la implementación de medidas de optimización como el diseño de parámetros adaptativos, la confirmación de múltiples ciclos y la integración de indicadores auxiliares.
Finalmente, la estrategia de comercio cuantitativa de tendencias cruzadas de Ehlers-Bartholomew ofrece a los comerciantes cuantitativos una herramienta de comercio basada en una sólida base matemática que puede usarse como un sistema de comercio independiente o como parte de una estrategia de comercio más compleja, proporcionando información de referencia valiosa para la toma de decisiones comerciales. A través de la optimización y el perfeccionamiento continuos, se espera que la estrategia logre un rendimiento de comercio estable y sostenible en una variedad de entornos de mercado.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-12 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Ehlers Three Pole Butterworth Filter Strategy", overlay=true)
// 输入参数
priceInput = input(hl2, title='Price')
periodInput = input(15, title='Period')
// Function to calculate Ehlers Three Pole Butterworth Filter
calculateButterworthFilter(price, period) =>
a1 = 0.00
b1 = 0.00
c1 = 0.00
coef1 = 0.00
coef2 = 0.00
coef3 = 0.00
coef4 = 0.00
butter = 0.00
trigger = 0.00
pi = 2 * math.asin(1)
a1 := math.exp(-3.14159 / period)
b1 := 2 * a1 * math.cos(1.738 * pi / period)
c1 := a1 * a1
coef2 := b1 + c1
coef3 := -(c1 + b1 * c1)
coef4 := c1 * c1
coef1 := (1 - b1 + c1) * (1 - c1) / 8
butter := coef1 * (price + 3 * nz(price[1]) + 3 * nz(price[2]) + nz(price[3])) + coef2 * nz(butter[1]) + coef3 * nz(butter[2]) + coef4 * nz(butter[3])
butter := bar_index < 4 ? price : butter
trigger := nz(butter[1])
[butter, trigger]
// Calculate filter values
[butter, trigger] = calculateButterworthFilter(priceInput, periodInput)
// 绘制滤波器线
plotButter = plot(butter, 'Butter', color=color.new(color.yellow, 0), linewidth=3)
plotTrigger = plot(trigger, 'Butter Lag', color=color.new(color.fuchsia, 0), linewidth=3)
fill(plotButter, plotTrigger, color=butter > trigger ? color.yellow : color.fuchsia, transp=40)
// 定义交易信号
longCondition = ta.crossover(butter, trigger)
exitLongCondition = ta.crossunder(butter, trigger)
shortCondition = ta.crossunder(butter, trigger)
exitShortCondition = ta.crossover(butter, trigger)
// 执行交易
if (longCondition)
strategy.entry("Buy", strategy.long)
if (exitLongCondition)
strategy.close("Buy")
if (shortCondition)
strategy.entry("Short", strategy.short)
if (exitShortCondition)
strategy.close("Short")
// 绘制交易信号
plotshape(longCondition, "Buy Signal", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(exitLongCondition, "Exit Long Signal", shape.triangledown, location.abovebar, color=color.red, size=size.small)
plotshape(shortCondition, "Short Signal", shape.triangledown, location.abovebar, color=color.orange, size=size.small)
plotshape(exitShortCondition, "Exit Short Signal", shape.triangleup, location.belowbar, color=color.blue, size=size.small)