ZUP - ZigZag universal con Patrones de Pesavento. Primera parte

Eugeni Neumoin | 8 marzo, 2016

Introducción

Cualquier persona que se dedica a los mercados financieros creará tarde o temprano sus propios sistemas de trading. Como resultado de esta búsqueda, el autor de este artículo creó el indicador ZUP - ZigZag universal con Patrones de Pesavento. MetaQuotes Software Corp. me ha propuesto escribir un artículo sobre este indicador. Voy a intentar hacerlo. En este artículo y en los siguientes, voy a describir las características de la versión 60 (ZUP_v60) del indicador ZUP. Da la casualidad que el autor accedía a los mercados a través de centros de datos que usaban la plataforma MetaTrader 4. Los indicadores estándar incluidos en el terminal de trading no proporcionan los análisis pertinentes del mercado con la eficiencia necesaria. Prefiero arreglar mi sitio antes de buscar fortuna en otro. Por lo tanto, tenía que hacer lo necesario para ser capaz de realizar todos los análisis pertinentes del mercado mediante el Terminal de cliente MetaTrader 4, que ofrece la posibilidad de crear sus propios indicadores mediante su lenguaje de programación MQL4.

En el transcurso del año en el que comencé a desarrollar mi indicador, surgieron muchas ideas interesantes. Muchas de ellas se han implementado. El hecho de que el indicador era de código abierto y se podía acceder a él de forma gratuita facilitó la afluencia de informaciones e ideas. Esto es decisivo para el desarrollo de un indicador no comercial. En la práctica, el desarrollo de un indicador no comercial es la mejor solución.


Consideraciones teóricas

Después de una breve investigación, he decidido combinar en un sólo indicador los ZigZags con distintos algoritmos, la construcción automática de los Patrones de Pesavento y los niveles de Fibonacci de las roturas del ZigZag. Además, me ha quedado claro que es posible automatizar el dibujo de distintas herramientas gráficas, no sólo con los Patrones de Pesavento o los niveles de Fibonacci. También he organizado la búsqueda de ideas de lo que se puede implementar en este indicador universal. Me propuse como tarea revelar todas las características potenciales del ZigZag. Como resultado, era capaz de implementar el dibujo automático de las herramientas gráficas más conocidas. Se implementaron también algunas herramientas gráficas nuevas, cuyas ideas fueron propuestas por varios usuarios del foro ONIX. La lógica del indicador es sencilla:

  1. colocar las cotizaciones del símbolo seleccionado en la entrada del indicador;
  2. encontrar los máximos y mínimos del mercado en el gráfico mediante varios ZigZags;
  3. unir varias herramientas gráficas en los máximos y mínimos anteriores.

El trabajo posterior con las construcciones gráficas obtenidas implica conocer el funcionamiento de la herramienta gráfica seleccionada. En este artículo, vamos a describir los ZigZags integrados en el indicador ZUP. Veremos también algunas herramientas gráficas utilizadas en el ZUP. Se describirán con más detalle en el segundo artículo dedicado al uso de las herramientas gráficas incorporadas. Trataré de citar correctamente todas las referencias de los recursos que describen la forma de trabajar con herramientas gráficas incorporadas en el indicador. Creo que hay que estudiarlas para poder entender los conceptos básicos de las herramientas gráficas.

He leído últimamente un libro [1]. En concreto, el apartado que se titula "Los secretos de la proporción áurea". El libro nos habla de la presencia de la "Proporción áurea" en todos los fenómenos naturales. Después de este libro, leí otro [2]. Estos dos recursos me ayudaron a tener claro de qué manera tengo que desarrollar mi indicador. Mi experiencia anterior fue un poco caótica. Estos son algunos fragmentos del libro de Sokolov Yu. N.:

"¿Existen los fundamentos del universo, y si es así, cuáles son? Siempre hemos respondido claramente a esta pregunta en nuestra teoría general del ciclo que llevamos desarrollando desde 1981. Sí, los fundamentos del universo existen y es una estructura de interacción universal. Cualquier interacción -y de hecho el mundo lo es, no es nada más que la interacción de objetos materiales- se construye siguiendo un patrón universal. Este patrón es cíclico, es decir, el tiempo en él se mueve de forma circular y los cambios de cualquier parámetro se describen en forma de onda. Hemos llamado este patrón "interacción cuántica"… El estudio de la estructura de la interacción cuántica nos ha llevado a la conclusión de que todo el mundo exterior está descrito por una única ley; por la ley de la estructura cíclica de la interacción del espacio-tiempo cuántico…" [2. p.7, traducido por MetaQuotes Software Corp., 2007]

En una interacción participan dos fuerzas.

"La Proporción áurea es una constante de la interacción cuántica... Surge una pregunta cuando aumenta el límite de una fuerza y cae el límite de la otra fuerza. Este límite debe existir y es el resultado del siguiente razonamiento. Imaginemos que no existe dicho límite. Entonces podemos aumentar una fuerza y disminuir la otra hasta cero. El resultado es que sólo se queda una fuerza, y esto es como si no existiera interacción en absoluto. Por supuesto, esto no puede ser. Por lo tanto, se limita el aumento de una fuerza y la disminución de la otra. En nuestra opinión, se puede resolver el problema de cambio de fuerzas mediante la Proporción áurea. En los últimos años, ha resurgido entre la comunidad científica rusa el interés por estudiar el papel de la "Proporción áurea" en los distintos campos de la ciencia y tecnología. Los científicos han demostrado de manera concluyente que la "Proporción áurea" es una constante universal. Sin embargo, aún se desconoce la naturaleza de la "Proporción áurea" . Creemos que está naturaleza sólo se puede estudiar mediante la teoría general del ciclo (TGC)...". 2 [p.29, traducido por MetaQuotes Software Corp., 2007]

Cómo aplicar los principios básicos de la TGC en la investigación científica. Se define la naturaleza oscilatoria de la interacción mediante un "juego" o interacción de dos fuerzas o tendencias opuestas e interdependientes. Este "juego" es el que determina la estructura del ciclo. Por lo tanto, para aplicar la teoría general del ciclo, hay que empezar con lo más importante; con la identificación de estas fuerzas opuestas. Al estudiar distintos sistemas, estas fuerzas tendrán distintos nombres. Si consideramos que la interacción es de naturaleza inorgánica, estas fuerzas actuarán como una fuerza de acción y reacción... Una clara identificación de las fuerzas en cada estudio representa el elemento más importante para su posterior análisis. Una vez identificadas las tendencias opuestas, hay que definir dos polos de ciclos opuestos e interdependientes. Uno de los polos está compuesto del máximo de la fuerza positiva y el mínimo de la fuerza negativa. El otro polo es el opuesto al primero y está compuesto del mínimo de la fuerza positiva y el máximo de la fuerza negativa. Como se ha mencionado antes, la oscilación tiene lugar entre estos dos polos.

La siguiente etapa consiste en encontrar un parámetro que pueda detectar la masa de inercia y la velocidad de cambio de las dos fuerzas opuestas. Se puede hacer un seguimiento de la velocidad del proceso en un período de tiempo determinado, se construye un diagrama secuencial mediante el procedimiento descrito anteriormente el diagrama secuencial muestra la longitud de onda, la amplitud y la magnitud del "hueco" oscilatorio. Si es necesario, la interferencia de los ciclos contiguos en el ciclo en cuestión..." [2. p. 46, traducido por MetaQuotes Software Corp., 2007]

No voy a poner aquí las ilustraciones y fórmulas del trabajo de Sokolov [3]. Son bastante interesantes. Puede leer su trabajo si lo desea.

No es muy difícil identificar las dos fuerzas opuestas en los mercados financieros; "Alcistas" y "Bajistas". Para encontrar los polos (extremos) del ciclo en los mercados financieros, usamos el indicador ZigZag en nuestro indicador ZUP. Existen muchos algoritmos para dibujar el indicador ZigZag. En el ZUP están integrados indicadores ZigZag basados en distintos algoritmos. Es muy importante encontrar la ubicación exacta del los extremos tanto para el tiempo como el precio, es decir, tienen que estar ubicados exactamente en el máximo o mínimo de la barra de precios correspondiente. Hay que hacerlo para poder pronosticar correctamente el posterior desarrollo del ciclo. Se usan varias herramientas gráficas para el estudio de las interacciones de los polos del ciclo. Puesto que la "Proporción áurea" aparece en todos los fenómenos de la naturaleza, se hace hincapié en distintas herramientas de Fibonacci en el indicador ZUP. Las herramientas gráficas están unidas a los extremos del mercado que se han encontrado mediante el indicador ZigZag.

Las herramientas gráficas incorporadas en el ZUP pueden ser estáticas o dinámicas. Las estáticas están unidas a las roturas del ZigZag ya existentes, es decir, con las roturas que ya no van a cambiar. La dinámicas tienen su propio punto de unión ubicado en el primer segmento del ZigZag que cambia su posición todo el tiempo. Las herramientas gráficas dinámicas permiten tomar rápidamente una decisión. Si el mercado progresa, el diseño de la herramienta gráfica nos ayudará a ver la previsión de la tendencia posterior del mercado.. Si cambia el primer segmento del ZigZag, se reconstruirá automáticamente la herramienta gráfica dinámica.


Descripción de los indicadores ZigZag integrados en el ZUP

El indicador ZUP tiene muchos parámetros. El parámetro principal es el ExtIndicator. Elige al ZigZag que va a permitir identificar los extremos del mercado. Se establece el número del ExtIndicator uno tras otro, a medida que se vayan incluyendo nuevos ZigZags o modos en el ZUP. Me gustaría resaltar que sea cual sea el ZigZag, no se vuelve a calcular a cada tick. Se vuelve a calcular si:

  1. el precio cae más allá de la barra cero (el mercado se mueve por encima del máximo de la barra cero, por debajo del mínimo de la barra cero, o aparece una nueva barra cero);
  2. se transmite el historial anterior;
  3. se pone en marcha el terminal durante la transmisión del historial que había comenzado cuando estaba apagado el terminal.

Se establecen todos los estilos del indicador ZigZag mediante el parámetro ExtStyleZZ:

  1. ExtStyleZZ = true - establece el estilo de la línea del ZigZag mediante la pestaña COLORS (menú Gráficos->Lista de indicadores->ZUP_v60->Editar->Colores);
  2. ExtStyleZZ = false - se muestra el ZigZag en forma de puntos en los mínimos y máximos.

El primer ZigZag

ExtIndicator = 0 permite trabajar con el ZigZag estándar incluido en el Terminal de cliente MetaTrader 4 antes del verano 2006. Se modifica este ZigZag ligeramente. Las ideas para su modificación fueron tomadas del artículo publicado por Nikolay Kositsin: El recuento múltiple de la barra cero en algunos indicadores. He utilizado también mis propios trabajos. A continuación se muestran los parámetros para configurar este ZigZag :

  1. minBars coincide con el ExtDepth del ZigZag incluido en MetaTrader 4;
  2. ExtDeviation coincide con el ExtDeviation;
  3. ExtBackstep coincide con el ExtBackstep.

El segundo ZigZag

ExtIndicator = 1 permite trabajar con el ZigZag de Alex (Canal automático).

El algoritmo

Se calcula el valor promedio de la primera barra. A continuación se calcula el precio promedio condicional de una barra. Se detecta la dirección de la tendencia mediante el desplazamiento del precio promedio condicional de la barra. Se produce un cambio de tendencia cuando se desvía el precio promedio condicional por un valor determinado en puntos minSize o en porcentajes minPercent.

Parámetros:

  1. minSize - filtro del número de puntos, determina el número de puntos;
  2. minPercent - filtro del porcentaje, proporciona el porcentaje, por ejemplo, 0.5.

Si utiliza el porcentaje, establezca el valor deseado considerando minSize = 0.

El tercer ZigZag

ExtIndicator = 2 permite trabajar con ZigZag Ensign. ZigZag Ensign es un nombre condicional. He desarrollado esta versión del ZigZag después de haber observado el funcionamiento del indicador Ensign, construido a partir de los Patrones de Pesavento. Hay una breve descripción de los principios de implementación de este indicador en el sitio web de Ensign Software.

Pueden haber ligeras diferencias entre el algoritmo del indicador en Ensign y en ZUP.

El algoritmo

Se compara el mínimo y máximo de la primera barra con los mínimos y máximos de las siguientes barras. Si aparece una barra con un mínimo y máximo superior/inferior a los de la primera barra, se determina la dirección de la tendencia. Si el mínimo y el máximo son superiores a los de la primera barra, se trata de una tendencia alcista. Si son inferiores, se trata de una tendencia bajista. Se describe a continuación el algoritmo para el mercado alcista (tendencia alcista). Para un mercado bajista (tendencia bajista), es al revés. Se ha determinado que la tendencia es alcista. Se almacena el valor máximo de la barra en la variable hlast. Si el máximo de la siguiente barra está por encima del máximo de la barra anterior, la tendencia sigue siendo alcista. Se almacena el nuevo valor máximo de la barra (hlast). Si los máximos son iguales, se considera que la tendencia no ha cambiado. La tendencia sigue siendo alcista. Si el máximo de la siguiente barra es inferior al máximo de la barra anterior (hlast), tenemos varias opciones:

  1. Se omiten los minBars de las barras. Para cada uno de estos minBars de las barras, el máximo debe ser inferior al máximo de la última barra (hlast), a partir del cual se empieza la cuenta de minBars. Si el precio excede al máximo de la última barra (hlast) al menos en una barra, se considera que la tendencia será alcista, incluyendo esta barra. Se empiezan a calcular los minBars de las barras a partir de la siguiente barra. A continuación comienza el análisis de las barras empezando por la barra número minBars + 1. Si hlast – Low[minBars + 1] > minSize, la tendencia pasa a ser bajista. Es decir, si el mínimo de la barra número minBars + 1 o cualquier barra posterior se desvía de hlast por un valor superior a minSize, la tendencia cambia y pasa a ser bajista. En este caso, se cuenta la barra número minBars + 1 a partir del último máximo (hlast) en dirección de la barra cero.
  2. Si se cierra cualquier minBars por debajo del último mínimo, la tendencia cambia y se vuelve bajista también, sin esperar a que aparezca la barra número minBars + 1. Se dibujan los cambios de tendencia y el segmento del ZigZag después del cierre de la barra en la que se ha producido el cambio de tendencia.

Parámetros

minBars, minSize – los nombres son los mismos que en Ensign.

El ZigZag de Alex y el ZigZag Ensign no tienen las desventajas del ZigZag estándar: no se sobrecarga el procesador, sólo se calcula la última barra, no se producen picos sucesivos, se pueden predecir los últimos mínimos y máximos. Además, el último máximo sólo pude aumentar y el último mínimo sólo puede disminuir. Son los indicadores de tendencia. Por otra parte, hay que escoger los parámetros para el ZigZag de Alex y el ZigZag Ensign en distintos períodos de tiempo. La selección de los parámetros es necesaria para identificar la estructura de onda correcta en distintos períodos de tiempo. Y para el ZigZag con ExtIndicator = 0, se pueden aplicar los mismos parámetros en distintos períodos de tiempo.

El cuarto ZigZag

ExtIndicator = 3 - permite trabajar con ZigZag Ensign con una pequeña modificación del algoritmo. En este caso, sólo se debe especificar el valor de minBars. Se ignorará el valor de minSize especificado en la ventana del indicador. El valor de minSize es variable y es igual al tamaño (desde el mínimo al máximo) de la barra en la que finaliza el último segmento del indicador ZigZag. Se calcula el nuevo valor de minSize al volver a dibujar el último segmento del indicador ZigZag.

El quinto ZigZag

ExtIndicator = 4 permite trabajar con el ZigZag de Tauber. Tauber es un miembro del foro ONIX. Voy a describirlo aquí, por cortesía del autor:

"He utilizado MetaTrader como base (ZigZag incluido en el Terminal de cliente MetaTrader 4; nota de nen). El algoritmo es recursivo, corto y lógicamente claro:

  1. se busca el máximo global entre todas las barras;
  2. se dividen las barras restantes en dos partes, a la derecha y a la izquierda de la barra máxima;
  3. se busca el mínimo global de ambas partes;
  4. cada mitad se divide en dos partes otra vez, y así sucesivamente.

El proceso está controlado del mismo modo que en ZigZag, pero sólo mediante un parámetro, el porcentaje o la diferencia en pips." (traducido por MetaQuotes Software Corp., 2007)

Algunas menciones más:

"El algoritmo es recursivo; la función que encuentra el máximo llama a la función que encuentra el mínimo y viceversa. Dividiendo de este modo el gráfico en fractales cada vez más pequeños. El proceso se detiene cuando la diferencia de precio entre el próximo máximo/mínimo y el mínimo/máximo más cercano se hace más pequeña que minSize. La principal diferencia es que el resultado depende únicamente de un parámetro, el minSize, que es precisamente la definición clásica del ZigZag y proporciona la ubicación exacta de todos los picos importantes."

El sexto ZigZag

ExtIndicator = 5 permite trabajar con un ZigZag que simula las oscilaciones de Gann (Gann Swings). Es un indicador de tendencia.

El algoritmo

Se proporciona una descripción detallada sobre cómo construir las oscilaciones de Gann en la referencia [4]. Algunos de los indicadores más conocidos para la construcción de las oscilaciones de Gann fueron creados mediante el algoritmo descrito por el autor de este libro. La descripción es muy detallada y se podría hasta decir aburrida. No obstante, surgen muchas preguntas cuando tratamos de seguir la descripción y construir el indicador. Hay algunas combinaciones de velas que son difíciles de analizar. La construcción de las oscilaciones también es difícil. Puede interpretar la situación actual de distintas maneras. Esto, quizás, explica algunas diferencias con el algoritmo descrito en el libro para la implementación de las oscilaciones de Gann en los indicadores.

En nuestro caso hay dos diferencias: Están ambas relacionadas con el procesamiento de la barra externa. La barra externa es un barra que tiene un Máximo superior y un Mínimo inferior a los de la barra anterior. El libro de antes menciona que hay que construir el Máximo y el Mínimo en una barra externa. Pero es imposible trabajar en un indicador ZUP con un ZigZag que tenga tanto el máximo y el mínimo en la misma barra. Además, se menciona en la descripción que el máximo y el mínimo tienen que alternarse siguiendo una secuencia determinada. Debe ir primero el extremo de la barra externa más cercano a la apertura de la vela. Se puede hacer esto en tiempo real. Pero cuando se trata del historial, la interpretación empieza a ser "libre". Por lo tanto, la construcción de las oscilaciones en tiempo real puede ser un poco distinta a la construcción en el mismo período de tiempo pero después de un tiempo y en función de los datos del historial. Es decir, donde había un máximo en tiempo real, podemos tener un mínimo si construimos las oscilaciones a partir de los datos del historial y en el mismo período de tiempo. Para evitar cualquier ambigüedad, la tendencia seguirá siendo aquella que ha prevalecido antes de la llegada de la barra externa. Sin embargo, puesto que la tendencia debe cambiar en la barra externa, según la descripción, consideremos para la tendencia principal intermedia y para las tendencias de orden mayor que la barra externa es como la barra a partir de la cual se empiezan a contar las barras para detectar una posible tendencia posterior. Esta es la principal diferencia. En comparación con otros indicadores para la construcción de oscilaciones de Gann, esta diferencia afecta muy poco a la detección de las oscilaciones. Las oscilaciones "pequeñas" de la barra externa no desempeñan ningún papel en todo el conjunto. En algunos casos, el indicador descubre algunas oscilaciones omitidas por otros indicadores en intervalos importantes de los datos del historial.

La segunda diferencia es insignificante. En algunos casos, esta diferencia ayuda a identificar las oscilaciones en los períodos planos del historial de cotizaciones. Es bastante difícil describir esta diferencia con un lenguaje sencillo y dentro del contexto de este artículo, así que no lo voy a hacer. He seguido, por así decirlo, la estela de otros programadores que han implementado las oscilaciones en sus indicadores. He procesado la barra externa de modo que se parezca a las implementaciones en otros indicadores. Sin embargo, no he estudiado sus implementaciones en otros indicadores. Tampoco he visto los códigos de otros indicadores. Es difícil leer el código de otras personas. Sólo he visto la imagen que genera el otro indicador.

Parámetros

minBars marca la tendencia:

  1. minBars = 0 - tendencia pequeña - tendencia de una barra;
  2. minBars = 1 - tendencia intermedia - tendencia de dos barras;
  3. minBars = 2 - tendencia principal - tendencia de tres barras;
  4. minBars > 2 - tendencia de orden mayor.


El modo DT

El modo DT fue utilizado primero por klot en su indicador llamado DT-ZigZag.mq4. En este modo, el período de tiempo actual del gráfico mostrará un ZigZag construido en un período de tiempo más largo. El algoritmo de construcción en el indicador ZUP es distinto al que ha desarrollado klot. Sólo se ha utilizado su idea.

En el modo DT se usan los ZigZags externos. Los ZigZags externos tienen algoritmos de construcción distintos. Debe utilizar los ZigZags proporcionados en las últimas versiones disponibles de ZUP:

  1. ExtIndicator = 6 - el modo DT con el indicador externo ZigZag_new_nen3.mq4. Su algoritmo coincide con el de ZigZag en el modo ExtIndicator = 0;
  2. ExtIndicator = 7 - el modo DT con el inidcador externo DT_ZZ.mq4. DT_ZZ.mq4 fue desarrollado por klot;
  3. ExtIndicator = 8 - el modo DT con el indicador externo CZigZag.mq4. CZigZag. mq4 fue desarrollado por Candid;
  4. ExtIndicator = 10 - el modo DT con oscilaciones de Gann y el indicador externo Swing_ZZ. mq4. Su algoritmo coincide con el de ZigZag en el modo ExtIndicator = 5.

Durante la instalación del indicador ZUP, hay que copiar cuatro ZigZags externos en la carpeta de los indicadores personalizados del terminal de cliente.

Parámetros

GrossPeriod - la duración en minutos del período de tiempo en el que se basa el dibujo del ZigZag en el modo DT. GrossPeriod puede tomar los siguientes valores: 5-15-30-60-240-1440-10080-43200 con períodos de tiempo de M5-M15-M30-H1-H4-D1-W1-MN, respectivamente. Para todos los modos DT, GrossPeriod establece el período de tiempo más largo y que proporciona los datos para construir el ZigZag en el período de tiempo actual. Además de GrossPeriod, se utilizan los parámetros minBars, ExtDeviation y ExtBackstep para configurar el ZigZag:

  1. ExtIndicator = 7, se establece el ZigZag mediante los valores de minBars solamente;
  2. ExtIndicator = 8, se establece el ZigZag mediante los valores de minBars y ExtDeviation;
  3. ExtIndicator = 10, se establece el ZigZag mediante los valores de minBars solamente.

Dibujo del gráfico

El siguiente gráfico muestra un dibujo ilustrativo de un ZigZag en un período de tiempo de 4 horas (H4) mediante los datos del período de tiempo diario (D1). Los puntos rojos se encuentran en los mínimos y máximos de las velas del período de tiempo de 4 horas (H4) y que proceden de las velas del período de tiempo diario (D1). Los puntos de rotura del ZigZag se dibujaron en las velas del período de tiempo diario (D1) correspondiente. Los seis puntos rojos corresponden a las seis velas del período de tiempo de 4 horas (H4).

Hay situaciones en las que resulta imposible encontrar velas con el máximo y mínimo en un período de tiempo más corto para el correspondiente máximo y mínimo en el período de tiempo más largo. Entonces se dibujarán los puntos de rotura de los ZigZags a partir del valor del precio tomado del período de tiempo más largo. Puesto que no hay velas con el mismo precio en períodos de tiempo más cortos, la secuencia de puntos se "quedará en el aire", además de los puntos de rotura del ZigZag. Aquí podemos utilizar ZigZagHighLow para elegir el punto al cual podemos unir las herramientas; Patrones de Pesavento, horquilla de Andrew, y así sucesivamente:

  1. ZigZagHighLow = true - se unen las herramientas a los mínimos y máximos de las barras en un período de tiempo más corto;
  2. ZigZagHighLow = false - se unen las herramientas a los puntos de rotura del ZigZag, es decir, a los mínimos y máximos de las barras en un período de tiempo más largo.

Consideremos el dibujo ilustrativo de varios ZigZags en distintos períodos de tiempo. En el gráfico hay dos ZUP_v60 con ExtIndicator = 6. Podemos seleccionar el color y el diámetro de los puntos en la pestaña Colores, el número es el 5. GrossPeriod = 10080 para el primer indicador. El color de los puntos es rojo (Red) y el diámetro es 5. El color de las líneas del ZigZag es marrón (Maroon), se elige en la pestaña Colores de la ventana de parámetros del indicador, el número es el 0. El número de puntos rojos es 16. Hay 16 velas de H4 (4 horas) en un vela W1 (semanal). GrossPeriod = 1440 para el segundo indicador. El color de los puntos es verde oscuro (DarkGreen) y el diámetro es 1. El color de las líneas del ZigZag es azul celeste (Aqua). El número de velas verde oscuras es 6. Hay 6 velas de H1 (1 horas) en un vela D1 (1 día).

Para superponer los resultados de varios indicadores, como se muestra en el ejemplo anterior (los puntos de color verde oscuro están superpuestos a los rojos), hay que mantener el orden al añadir los indicadores ZUP al gráfico. En primer lugar, se añade el indicador con los puntos rojos. Y después el verde oscuro. Una característica importante de este método: Si cambiamos el período de tiempo del gráfico por el conjunto de indicadores proporcionados (4 horas para el semanal), el indicador con los puntos de color verde oscuro no se mostrará en el gráfico. El indicador con los puntos de color verde oscuro toma los datos del período de tiempo diario. El período de tiempo diario es más corto en comparación con el semanal. En el modo DT, se construye el ZigZag en un período de tiempo más corto a partir de los datos tomados de uno más largo. Por lo tanto, no se msotrará el ZigZag de un período de tiempo más corto (diario) en el período semanal. Al cambiar a un período de tiempo más largo que el diario, no se mostrarán los datos del período de tiempo diario. A continuación se muestran los indicadores del ejemplo anterior en un gráfico diario. El número de puntos ha cambiado. Hay 5 puntos rojos ahora, ya que el número de velas diarias en la vela semanal es 5. Y hay 1 punto verde oscuro ahora.

Los puntos rojos y los de color verde oscuro ayudan a definir el período temporal, cuyos datos se usaron para construir el ZigZag correspondiente. Para que se entienda mejor, se pueden hacer todos los dibujos de un mismo período de tiempo con los mismos colores. Los puntos para distintos períodos de tiempo pueden ser de distintos colores predefinidos, sobre todo en el modo DT

Cabe señalar otro aspecto importante. Al utilizar el modo DT con un período de tiempo GrossPeriod, la profundidad del historial tiene que ser superior a la del período de tiempo de trabajo. Si no es así, el dibujo del ZigZag será erróneo cuando está en un período de tiempo más pequeño en el historial más profundo que con GrossPeriod. Además, cuando se trabaja en el modo DT, la omisión de cotizaciones en distintos períodos de tiempo hará que el dibujo del ZigZag sea erróneo. Si se ha construido el ZigZag erróneamente en el modo DT, por ejemplo, la construcción de dos mínimos y dos máximos uno por uno, hay que comprobar las cotizaciones del período de tiempo actual y las de GrossPeriod por si se han omitido algunas barras. Si se han omitido barras, hay que eliminar el historial de los periodos de tiempo correspondientes desde C:\Program Files\MetaTrader\history\xxx\ y recargar el historial.


ZigZag en el indicador RSI

ExtIndicator = 9 es un modo de funcionamiento en una ventana debajo del gráfico que contiene RSI. Se ha desarrollado una versión especial de ZUP, es ZUP_RSI_v48, donde este modo participa en la construcción del ZigZag con los datos del RSI. Se usa ExtIndicator = 9 únicamente en ZUP_RSI_v48. Esta versión no utiliza las características introducidas en la versión 48 y en las versiones posteriores. Después de unir la versión 48 al gráfico, hay que cambiar el período de tiempo para que el sistema inicie el dibujo de las herramientas gráficas. Se dibuja el ZigZag en el RSI mediante un algoritmo de tendencia. A continuación se muestra el ejemplo del dibujo del ZUPRSI_v48 en el modo ExtIndicator = 9 en el gráfico del ejemplo anterior. Anticipándome un poco, diría que el ZUP_RSI_v48 ayudó a mostrar los Patrones de Pesavento y la horquilla de Andrew estática en el gráfico.

Parámetros utilizados en el modo ExtIndicator=9 (algunos conceptos que aparecen más abajo en la descripción de esta versión se explicarán en el segundo artículo):

  1. minBars - RSI Period - período del promedia para calcular el índice;
  2. Price - selección del precio, en el cual se dibujará el RSI en el modo RSI:

    0 - PRICE_CLOSE - precio de cierre;

    1 - PRICE_OPEN - precio de apertura;

    2 - PRICE_HIGH - el precio máximo;

    3 - PRICE_LOW - el precio mínimo;

    4 - PRICE_MEDIAN - el precio medio, (high+low)/2;

    5 - PRICE_TYPICAL - el precio típico, (high+low+close)/3;

    6 - PRICE_WEIGHTED - el precio ponderado de cierre, (high+low+close+close)/4;

  3. minPercent - especifica después de cuántos "puntos del indicador RSI" aparecerá el nuevo segmento del ZigZag.

Las limitaciones de este modo:

  1. Sólo se puede mostrar un indicador. El segundo indicador y todas las siguientes copias del indicador no funcionan correctamente.
  2. No he especificado con precisión los niveles 100 % y 0 %. Este es el motivo por el cual no coinciden los picos y valles del ZigZag con los del RSI. Se mostrara el ZigZag en toda la altura de la ventana. Al cambiar la escala del gráfico, se cambiará también la escala del ZigZag.
  3. En esta versión, no he corregido la visualización de la horquilla de Andrew para ciertas velas. Esto no es tan efectivo para este modo.

Todas las otras herramientas de ZUP funcionan en este modo, incluso contar las barras en el segmento del ZigZag, cuyo estudio es muy interesante. Funcionan también todos los modos establecidos por ExtIndicator. Se muestra el indicador ZigZag con todas sus herramientas en una ventana debajo del gráfico, no en la ventana del gráfico. Posiblemente, existen algunos fallos en esta versión. Es bastante difícil probar el indicador en un modo tan poco convencional. Esta versión está diseñada para experimentar.


Búsqueda de los Patrones de Gartley

ExtIndicator = 11 incluye ExtIndicator = 0 en el modo activo de exploración para la búsqueda de Patrones de Gartley. El modo activo de exploración que se utiliza para la búsqueda de Patrones de Gartley hace un uso intensivo del procesador. Cuando hay fuertes movimientos en el mercado, es posible que se cuelgue el terminal durante un tiempo determinado. Al finalizar los cálculos del bucle, vuelve a funcionar. La exploración activa busca en minBars (Depth). Se dibuja un ZigZag para cada valor de minBars (Depth). Después se hace una búsqueda de Patrones de Gartley en el ZigZag dibujado. Se repite esta operación en para todo el espectro de valores de minBars (Depth), de minDepth a maxDepth hasta que se encuentre un patrón de Gartley. El indicador usa los siguientes parámetros:

  1. ExtGartleyOnOff - permite mostrar los Patrones de Gartley para todos los modos, excepto ExtIndicaotr = 11. Por lo tanto, si se dibuja un patrón para el modo seleccionado, será encontrado. No se hará ninguna búsqueda en los parámetros del ZigZag. Se hace una búsqueda de Patrones de Gartley únicamente en el ZigZag dibujado. Estos parámetros no se aplican al modo ExtIndicator = 11;
  2. maxDepth - establece el valor máximo del parámetro Depth del ZigZag que va a abarcar la exploración activa para la búsqueda de Patrones de Gartley. Hay que usar este parámetro con menos frecuencia para reducir la carga del procesador. Sin embargo, un valor demasiado pequeño no permitirá encontrar algunos patrones, así que hay que escogerlo experimentando.
  3. minDepth - establece el valor mínimo de Depth para la búsqueda de Patrones de Gartley;
  4. DirectionOfSearchMaxMin - establece la dirección de la búsqueda en Depth:

    false - de minDepth a maxDepth;
    true - de maxDepth a minDepth.

    Es mejor usar "true": Se detectarán primero los Patrones de Gartley "más grandes" En algunos casos, se forman varios patrones en el "área de trabajo". Es decir, coinciden D puntos de los patrones o están muy cerca. Se detiene la búsqueda en la exploración activa nada más se encuentra el primer patrón. Esto permite elegir qué patrón se encontrará primero: el más pequeño o el más grande.

  5. maxBarToD - establece el número máximo de barras desde la barra cero hasta el punto D del patrón. Si no se encuentra ningún patrón en esta área después de este número de barras, no se llevarán a cabo más búsquedas de patrones. Es importante en el trading que el punto D se encuentre en las barras cercanas a la barra cero. Si está muy lejos de la barra cero, el patrón encontrado puede no ser relevante para el trading.
  6. ExtDeltaGartley - establece la tolerancia de desviación del precio a partir de los valores recomendados de retroceso del patrón. Por defecto, es de 0.09 a 9 %.
  7. ExtCD - el valor del segmento CD del patrón en relación al segmento BC, después del cual se inicia el análisis del patrón;
  8. ExtColorPatterns - color de los triángulos del patrón.

Para ver qué patrón se ha encontrado, hay que habilitar infoTF. En la segunda línea de comentarios, se muestra el nombre y el tipo (alcista o bajista) del patrón que va a aparecer. Se usa el algoritmo de la exploración activa para buscar patrones. Si se encuentra un patrón, se dibujará un ZigZag con los siguientes parámetros:

  1. Depth - el valor en el cual se ha encontrado el patrón en el ZigZag dibujado;
  2. ExtDeviation y ExtBackstep - los parámetros establecidos en la ventana del indicador.

El patrón encontrado actúa como si calibrara el ZigZag con el valor encontrado. Si no se encuentra ningún patrón, se construirá un ZigZag con los siguientes parámetros:

En los nombres de los triángulos que colorean el patrón, podemos ver el valor de ExtIndicator, los parámetros del ZigZag para el ExtIndicator correspondiente y el número de barras hasta el punto D. Se puede acceder al triángulo mediante sus propiedades. Al abrir las propiedades del triángulo veremos el nombre del objeto gráfico, por ejemplo, *Triangl2_ExtIndicator=0_11/5/3_14, donde:

  1. * - establece el número del ZUP;
  2. Triangl2 - el triángulo rectángulo del patrón;
  3. ExtIndicator=0 - el ZigZag en el cual se ha dibujado el patrón;
  4. 11/5/3 - minBars=11, ExtDeviation=5, ExtBackstep = 3;
  5. 14 - el número de barras hasta el punto D del patrón.

Es posible que hayan fuertes movimientos en el mercado después de encontrar un patrón. En este caso el patrón se "pierde". Esto quiero decir que se ha vuelto a dibujar el ZigZag en el cual se ha encontrado el patrón. Para reconstruir el patrón "perdido", podemos cambiar a un período de tiempo más corto. Hay más velas en un período de tiempo más corto y el ZigZag será capaz de "capturar" el patrón perdido.

Un modelo bajista de un patrón de Gartley

Un modelo alcista de un patrón de Gartley

Si construimos todos los retrocesos con claridad, tal y como lo ha descrito Scott Carney (Patrones de precios armónicos), el punto D del patrón estará dentro del rango. El rango surge del hecho que se pueda encontrar el punto D mediante varios retrocesos: el BD y el XD (el retroceso XD es igual a la relación entre AD y XA, XD = AD / XA). Estos retrocesos no convergen a menudo. Se desprende de esta ambigüedad que el algoritmo del dibujo de las "mariposas" tiene que ser "masivo". El algoritmo debe tener en cuenta todos los retrocesos masivos admisibles De ahí el nombre del algoritmo "masivo" (bulk).

Cuando se construye la mariposa a partir de un algoritmo "masivo", se inicia un ajuste más preciso mediante los Patrones de Pesavento y las herramientas dinámicas/estáticas de Fibonacci para determinar las condiciones del trading. El indicador ZUP encuentra una formación espacio temporal a la que llama "Patrones de Gartley". Tenemos entonces que trabajar con esta formación para determinar las condiciones del trading. Para determinar los puntos de entrada en el mercado, hay que usar algunos filtros. Se pueden usar como filtros las combinaciones de velas, las líneas de tendencia u otros indicadores. A continuación se muestra un ejemplo con el dibujo en el modo ExtIndicator = 11:

Con esto, concluimos la descripción de los indicadores ZigZag integrados en el ZUP_v60.


Conclusión

Este artículo proporciona una breve descripción de las ideas en las que se basa el indicador ZUP o ZigZag universal con Patrones de Pesavento. Describe también los indicadores ZigZag integrados en el ZUP. Según el autor, los principales algoritmos del dibujo del ZigZag se llevan a cabo en el ZUP. Esto permite al trader seleccionar el algoritmo que más le interese. Todas las herramientas gráficas integradas que incluye el artículo se añadirán automáticamente al ZigZag seleccionado. Es posible que se incorporen más adelante los ZigZags basados en otros algoritmos.

Se puede encontrar el conjunto de indicadores ZUP_v60 y AUP_RSI_v48 en los archivos zip adjuntos al artículo. Se han eliminado algunos errores en el la versión del indicador del archivo. La versión ZUP_v60 cargada inicialmente en el foro de ONIX contiene algunos errores. El indicador es bastante complejo. No descarto que puedan haber algunos dibujos erróneos en algunas situaciones en el mercado. Se pueden producir errores de dibujo por varias razones:

  1. errores en el código del indicador;
  2. falta de precisión debida a las características especiales de unir herramientas gráficas a las barras en MetaTrader 4. En particular, cuando en algunos casos, simplemente no se pueden construir los canales de Fibonacci correctamente;
  3. si se construye la herramienta gráfica mediante ZUP en un período de tiempo determinado y se guarda en el gráfico, a menudo modifica sus propias características al cambiar a otro período de tiempo en MetaTrader 4. Por lo tanto, es posible que la herramienta gráfica aparezca mal dibujada. En mi segundo artículo, voy a proponer al equipo de desarrolladores de MetaTrader 4 algunos cambios para esta característica. Sin embargo, si no se guarda la herramienta gráfica en el gráfico, pero se usa con el ZUP, no se mostrará ningún dibujo erróneo al cambiar a otro período de tiempo. Se puede conseguir esto calculando de nuevo los puntos de unión de las herramientas gráficas.

Se puede corregir el primer tipo de errores a medida que se vayan detectando. Espero eliminar el segundo y tercer tipo de errores con la ayuda de los desarrolladores del Terminal de cliente. Se describirán las herramientas gráficas y los indicadores integrados en el ZUP en el siguiente artículo


Referencias bibliográficas

  1. Stakhov, A., Sluchenkova, A., Scherbakov I. Kod da Vinci i ryadi Fibonacci (El código Da Vinci y las series de Fibonacci). San Petersburgo, Editorial "Piter", 2007.
  2. Sokolov, Yu.N. Obschaya teoriya tsikla ili edinaya teoriya fizicheskikh vzaimodeystviy (Teoría general del ciclo o la teoría unificada de las interacciones físicas). Trabajo publicado por la Universidad Técnica del Estado del Cáucaso Norte. Stavropol, 2003 (versión en inglés en http://www.ncstu.info/content/_docs/pdf/cycles/goldbook/06e.pdf).
  3. Sokolov, Yu.N. Obschaya teoriya tsikla (Teoría general del ciclo).
  4. Hyerczyk, James A. Pattern, Price & Time: Using Gann Theory in Trading Systems (El modelo, el precio y el tiempo: Aplicación de la teoría de Gann en los sistemas de trading). - John Wiley & Sons, Inc. 1998. 300 p.
  5. Carney, Scott M. The Harmonic Trader (El trader armónico). 1999. 305 p.
  6. Pesavento, Larry. Fibonacci Ratios with Pattern Recognition (Ratios de Fibonacci con reconocimiento de patrones). Editorial Steven Shapiro. - Traders Press Inc. 1997
  7. Pesavento, Larry. Profitable Patterns for Stock Trading (Patrones rentables para el trading bursátil). - Traders Press Inc. 1999.