sábado, 8 de marzo de 2014

Harmonic trading II. Desmontando el patrón AB=CD. Uso de Excel para identificar patrones

El mundo recompensa antes las apariencias de mérito que al mérito mismo. François de La Rochefoucauld

Intermedio

Parece sorprendente que exista tan poca literatura científica o al menos cierta investigación basada en la evidencia acerca de determinadas afirmaciones acerca de estrategias de trading.
Existe multitud de programas capaces de buscar patrones que se repiten y encontrar formas de encontrar maneras de batir al mercado: redes neuronales, algoritmos genéticos, etc. Algunos de ellos están disponibles para el pequeño inversor por módicos precios aunque dudo que los que realmente funcionen estén disponibles para el pequeño inversor. Recordemos la base del principio de los mercados eficientes: si una estrategia provechosa, que haya localizado una ineficiencia en el mercado, cuando se hace pública, rápidamente esta ineficiencia desaparece por la cantidad de agentes que quieren aprovecharse de ella.
A veces no es necesario disponer de tan sofisticados programas. Con un sencillo Excel es posible realizar pequeñas investigaciones acerca del mercado que nos den una valiosa información.
Para comenzar he utilizado datos históricos del GBPUSD 15 min de periodo entre 07/08/11 hasta 28/02/14. No hay ninguna razón particular por esta selección. Es descargable aquí. Son obtenidos a partir de los datos históricos de Metaquotes, con la plataforma MT4.
He utilizado este indicador Xlab_ZZ y este otro out_hist, disponibles libremente en la web para obtener los datos históricos de los valores de zigzag.
El indicador zigzag simplemente conecta los máximos y los mínimos más significativos de un conjunto de precios. Es frecuentemente usado para identificar patrones. He aquí un ejemplo.
indicador zigzag
El uso de máximos y mínimos locales sirve a la identificación de patrones
A menudo se utiliza el indicador ZigZag en asesores expertos, aunque se debería tener cuidado con él. Es el clásico indicador que repinta, no sólo el último valor (que es algo lógico) si no valores ya determinados previamente. Es preferible el indicador personalizado Xlab_ZZ, más respetuso con valores anteriores.
Con el indicador out_hist es posible crear un archivo csv con los datos históricos de cualquier indicador. Desde Excel podemos importar esos datos para convertirlos en formato xls más práctico.
Mi intención es encontrar la frecuencia de patrones ABCD y averiguar si por ejemplo los establecidos por Harmonic Trading aparecen más frecuentemente que otros o encontrar patrones nuevos.
Con el archivo de datos, creamos una columna con todos los valores zigzags sin los valores intermedios. Obviaremos para simplificar los cálculos el número de barras entre máximos y mínimos.
Con esos valores, es sencillo calcular los retrocesos y proyecciones de los cuatro últimos zigzags. Si por ejemplo tenemos una columna A1, A2, A3, A4 con los cuatro últimos zigzags, los retrocesos y proyecciones de esos valores los ponemos en B3 y B4. 
B3=ABS((A3-A2)/(A1-A2))  y
B4=ABS((A4-A3)/(A2-A3))
y arrastramos la columna B hacia abajo hasta acabar los valores en A.
Con esto tenemos todos los retrocesos y proyecciones de los últimos 4 zigzags. Se debe destacar dos cosas. Una es que sólo miramos 4 zigzags consecutivos, sin tener en cuenta patrones con zigzag intermedios. No creo que esto influya en la conclusión final. Lo otro a destacar es que la proyección de cuatro zigzags es igual al retroceso de los cuatro zigzgas siguientes. En el ejemplo anterior B4 es la proyección del patrón A1A2A3A4. El siguiente patrón es A2A3A4A5 (a esto se le llama sliding window, muy usado en redes neuronales), su retroceso es otra vez B4 y su proyección es B5, y así sucesivamente.
En la columna C colocamos los mismos valores que B pero sustituyendo los valores DIV/0! por 99999. Esto se produce cuando en el patron ABCD, los valores B y C son iguales, el retroceso es cero y da como proyección infinito.
Ahora queremos conocer la frecuencia de cuáles son los retrocesos/proyecciones más frecuentes. Para ello en la columna D ponemos el rango en el que queremos subdividir los valores. He elegido de 0 a 20 a intervalos de 0,1. En la columna E usamos la fórmula Frecuencia() de Excel. 
Hacemos el gráfico de frecuencias.
frecuencia retrocesos

Éste es el resultado. Por lo visto sorprendentemente no aparece como más frecuente ningún valor relacionado con fibonacci, sino que es más bien una curva de frecuencias con cola hasta el infinito y cuyo máximo es el número 0,8, como retroceso/proyección más frecuente. El cálculo realizado puede descargarse aquí.
Ahora queremos saber la proyección y el retroceso del patrón más frecuente. Obviando el número de barras entre máximos y mínimos, toda la información del patrón está definido por su retroceso en C y su proyección en D. Esto se puede codificar multiplicando por 10 esos valores (para eliminar la coma decimal), uniéndolos con la función Concatenar de Excel y con una separación mediante una letra, por ejemplo la Z.
Según esta codificación, el patrón 6Z16, corresponde al patrón harmónico de retroceso 0,6 y proyección 1,6. Todo esto se hace de una sola vez en Excel con esta función en la columna F.
=CONCATENAR(REDONDEAR(C5*10;0);"Z";REDONDEAR(C6*10;0))
teniendo los retrocesos y proyecciones en la columna C.
Con la función Contar.Si , podemos calcular la frecuencia de los patrones en columna G mejor que con la función Frecuencia ya que los patrones son valores alfanuméricos. Copiamos y pegamos sólo los valores de los patrones en F y frecuencia en G a la Hoja2. Eliminamos los repetidos y pasamos de 14515 patrones a sólo 2170. Ordenamos por frecuencia y vemos el gráfico.

Frecuencia de los patrones

Los primeros puestos están copados por unos cuantos patrones y luego van disminuyendo de forma exponencial. Veamos los primeros puestos.

patrón

frecuencia
absoluta
8Z10
85
9Z9
83
10Z8
82
7Z9
82
8Z9
81
5Z10
80
9Z6
77
6Z10
75
9Z11
75
11Z6
74
10Z9
74
10Z10
73
11Z7
72
7Z11
72
6Z11
71
9Z10
71
6Z9
70
7Z8
70
11Z8
70

 Los datos completos se pueden descargar aquí.
Vemos que los más frecuentes son 8Z10 9Z9 y 10Z8. Todos alrededor de 8 y 9 en el retroceso y proyección. Estos corresponden a patrones 0,8/0,9. El patrón armónico 0,618/1,618 (6Z16) está con sólo una frecuencia de 29, lejos de los primeros puestos.
¿Qué forma tiene nuestro patrón 8Z10 (0,8/1,0) o 9Z9 (0,9/0,9)?
Patrones más frecuentes
8Z10 y 9Z9
Conclusión
Podemos dar varias explicaciones acerca de estos patrones. Una, la más evidente es que son los patrones habituales de un mercado en rango, en el que C y D toman valores parecidos a A y B. Esto significa que el mercado en rango es más predecible que el de tendencia, con mayor número de patrones. La otra explicación menos evidente es que efectivamente A y B forman soportes y resistencias que el precio no suelen sobrepasar. Los patrones con valores 11 (9Z11 por ejemplo con frecuencia 75) son menos probables que los de valores 8 o 9.

Por último anotar que los patrones armónicos no tienen una mayor frecuencia que el correspondiente a sus patrones más semejantes. Esto no quiere decir que sean más o menos provechosos, pero sí igual de frecuentes.
Quiero destacar un patrón anómalo en su frecuencia, el 5Z10 (frecuencia 80), mayor que el 10Z10 (frecuencia 73) del mercado en rango o el de su semejante 10Z5 (frecuencia 43) . No encuentro una explicación satisfactoria. Tal vez sea una ineficiencia a explotar. Lo dejo para futuras investigaciones:
5Z10
¿5Z10, posible ineficiencia del mercado?








3 comentarios:

  1. Thank You Very Much. This Article Is Great In Explaining The Importance Of Trade245 Login

    ResponderEliminar
  2. Visit usd-to-canadia Login To View Your Personal Area Where You Can Manage Your Trading Accounts, Set Up Your Watchlist, And Track Your Recent Trades.

    ResponderEliminar