
La estrategia de cuantificación de patrones de gráficos multidimensionales es un sistema de negociación basado en la identificación de formas gráficas clásicas en el análisis técnico, que se centra principalmente en la identificación y el comercio de formas inversas como cabeza, hombros, tope / fondo y doble tope / fondo. La estrategia define e identifica de manera programada estas formas clave que aparecen en el mercado, en combinación con el indicador ATR (Rango promedio real) para establecer niveles de stop loss y stop loss, lo que constituye un marco de negociación completo. La estrategia se centra en capturar los puntos clave de cambio en las tendencias del mercado, especialmente cuando se forman ciertas formas estructurales de precios, que a menudo indican que el mercado está a punto de cambiar de arriba a abajo o de baja a arriba.
El principio central de la estrategia gira en torno a la identificación de tres formas de gráficos principales:
Identificación de la forma de la cabeza y los hombrosIdentificación: mediante la comparación continua de los puntos altos de los precios. La estrategia detecta si un punto alto central (la cabeza) es más alto que los puntos altos a ambos lados (los hombros), para satisfacerhigh[1] > high[2] && high[1] > high[0] && high[1] > high[3] && high[1] > high[4] && high[0] < high[2] && high[0] < high[3]Cuando se determina que la posición de un mercado está en la cima de la tendencia, se determina que la posición está en la cima de la tendencia. Esta forma suele indicar el final de la tendencia alcista y el comienzo de una posible tendencia descendente.
Identificación de formas de doble cúpula: Utiliza una lógica similar a la de la cima, pero se centra más en dos alturas cercanas. Cuando se forman dos alturas cercanas y hay un punto bajo evidente en el medio, se considera una forma de doble cima, que también es una señal de inversión bajista.
Identificación de formas de doble fondoEn contraste con el doble tope, se determina mediante la identificación de dos bajos precios cercanos y un punto alto en el medio.low[1] < low[2] && low[1] < low[0] && low[1] < low[3] && low[1] < low[4] && low[0] > low[2] && low[0] > low[3]Cuando se determina que la condición es de doble fundamento, esto suele ser una señal de reversión de la luz.
La generación de señales de negociación se basa en la identificación de formas combinadas con el comportamiento de los precios:
doubleBottomPattern && close > open)doubleTopPattern && close < open)La gestión de riesgos se realiza mediante el indicador ATR (Average True Range):
stopLoss = atrValue * 1.5)takeProfit = atrValue * 3)Este diseño permite que las estrategias se adapten a la volatilidad de los diferentes mercados, ofreciendo un alto nivel de pérdidas en los mercados de alta volatilidad, mientras que en los mercados de baja volatilidad ofrecen un nivel de pérdidas relativamente más bajo.
Basado en el análisis técnico clásicoLa estrategia se basa en el análisis de formas gráficas ampliamente reconocidas y aplicadas, que han demostrado cierta eficacia en diversos entornos de mercado, con una gran cantidad de datos históricos verificados.
La adaptación a la gestión de riesgosLa estrategia permite ajustar automáticamente los parámetros de gestión de riesgo en función de la volatilidad real del mercado, evitando el riesgo excesivo o el exceso de conservadurismo que pueden generar los parámetros de stop loss de puntos fijos.
Reglas claras de entrada y salidaLa estrategia ofrece condiciones claras de entrada (confirmación de forma + confirmación de precio) y salida (parada / parada basada en ATR) que ayudan a los operadores a mantener la disciplina y reducir las transacciones emocionales.
Señales de negociación visualesAprobado:plotshapeLa función muestra el reconocimiento de formas y las señales de negociación de forma intuitiva en el gráfico, lo que permite al comerciante monitorear y analizar el rendimiento de la estrategia en tiempo real.
La flexibilidad y adaptabilidad: Aunque la implementación actual se centra principalmente en algunos tipos específicos de formas de gráficos, el marco de la política permite una fácil expansión para incluir más tipos diferentes de identificación de formas, como triángulos, banderas, arcos, etc.
Tratamiento simplificado de la identificación de formas: La lógica de identificación de formas actual es relativamente simplificada, y solo se basa en la comparación de varios puntos de precio, lo que puede no capturar una estructura de mercado más compleja, lo que lleva a algunos juicios erróneos. Por ejemplo, la lógica de determinación de cabeza, hombro y cabeza es la misma, lo que puede conducir a una clasificación errónea.
Falta de confirmación de las entregasEn el análisis técnico tradicional, las formas gráficas a menudo requieren la confirmación de la combinación de la cantidad de transacciones, y las estrategias actuales no incluyen el factor de la cantidad de transacciones, lo que puede conducir a un juicio de la efectividad de las formas no suficientemente completo.
El riesgo de un multiplicador ATR fijoAunque el uso de ATR permite que el stop/stop se adapte a la volatilidad, los parámetros fijos de 1.5x y 3x pueden no ser aplicables a todos los entornos de mercado, especialmente en situaciones extremas o inesperadas.
No hay un marco de tiempo: La estrategia no tiene en cuenta las diferencias de identificación de formas en diferentes marcos de tiempo, lo que puede conducir a la generación de demasiadas señales falsas en marcos de tiempo más cortos o a la pérdida de oportunidades de negociación importantes en marcos de tiempo más largos.
Falta de filtro de tendencias: La estrategia no tiene un mecanismo de filtración de tendencias, lo que puede provocar señales de inversión frecuentes en mercados de fuerte tendencia, lo que genera una serie de operaciones perdedoras.
Mejoras en los algoritmos de reconocimiento de formas:
Análisis de tráfico integrado:
Optimización de las estrategias de gestión de riesgos:
Añadir filtro de tendencias:
Análisis de marcos de tiempo múltiples:
Añadir indicadores de confirmación complementarios:
La estrategia de cuantificación de modelos de gráficos multidimensionales es un sistema de negociación basado en el formato clásico de gráficos de análisis técnico para capturar posibles puntos de inflexión de tendencias mediante la identificación programada de estructuras de mercado como la cima/bottom y la cima/bottom. La estrategia, combinada con el indicador ATR para la gestión de riesgos, ofrece un marco de negociación relativamente completo. La principal ventaja de la estrategia reside en que se basa en una teoría de análisis técnico ampliamente validada, con reglas de negociación claras y mecanismos de gestión de riesgos adaptados.
Para mejorar la solidez y el rendimiento de la estrategia, se recomienda optimizar desde la mejora de los algoritmos de identificación de patrones, la integración de análisis de volumen de negocios, la optimización de las estrategias de gestión de riesgos, el aumento de los filtros de tendencias, la implementación de análisis de múltiples marcos de tiempo y el aumento de los indicadores de confirmación auxiliares. A través de estas mejoras, la estrategia espera mejorar significativamente la calidad de las señales de negociación y la rentabilidad general, al tiempo que mantiene sus ventajas en el análisis de patrones basados en gráficos clásicos.
En última instancia, cualquier estrategia de negociación debe ser probada y validada en el laboratorio, y en la aplicación real, los parámetros deben ajustarse de manera adecuada, combinando los cambios en el entorno del mercado, las características de la variedad de transacciones y la capacidad de asumir el riesgo de las personas para lograr un efecto óptimo de negociación.
/*backtest
start: 2024-02-28 00:00:00
end: 2025-02-26 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Chart Pattern Strategy - Head and Shoulders / Double Top/Bottom", overlay=true)
// Function to detect a simple Head and Shoulders pattern
isHeadAndShoulders() =>
high[1] > high[2] and high[1] > high[0] and high[1] > high[3] and high[1] > high[4] and high[0] < high[2] and high[0] < high[3]
// Function to detect a Double Top pattern
isDoubleTop() =>
high[1] > high[2] and high[1] > high[0] and high[1] > high[3] and high[1] > high[4] and high[0] < high[2] and high[0] < high[3]
// Function to detect a Double Bottom pattern
isDoubleBottom() =>
low[1] < low[2] and low[1] < low[0] and low[1] < low[3] and low[1] < low[4] and low[0] > low[2] and low[0] > low[3]
// Detecting Head and Shoulders, Double Top, and Double Bottom Patterns
headAndShouldersPattern = isHeadAndShoulders()
doubleTopPattern = isDoubleTop()
doubleBottomPattern = isDoubleBottom()
// Plotting Head and Shoulders, Double Top, and Double Bottom detections
plotshape(headAndShouldersPattern, title="Head and Shoulders", location=location.abovebar, color=color.red, style=shape.labelup, text="HS")
plotshape(doubleTopPattern, title="Double Top", location=location.abovebar, color=color.red, style=shape.labelup, text="DT")
plotshape(doubleBottomPattern, title="Double Bottom", location=location.belowbar, color=color.green, style=shape.labeldown, text="DB")
// Entry logic for Buy and Sell signals
longSignal = doubleBottomPattern and close > open
shortSignal = doubleTopPattern and close < open
// Take profit and stop loss based on ATR for simplicity
atrLength = input.int(14, title="ATR Length")
atrValue = ta.atr(atrLength)
stopLoss = atrValue * 1.5 // Stop loss 1.5 ATR
takeProfit = atrValue * 3 // Take profit 3 ATR
// Plot buy and sell signals
plotshape(longSignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Executing trades based on conditions
if (longSignal)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=close - stopLoss, limit=close + takeProfit)
if (shortSignal)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=close + stopLoss, limit=close - takeProfit)