Descargar MetaTrader 5

El análisis estadístico de los movimientos del mercado y su pronóstico

20 abril 2016, 12:55
o_o
0
170

Introducción

El presente artículo contempla las amplias posibilidades del método estadístico en el marketing. Por desgracia, los traders principiantes fracasan deliberadamente a la hora de aplicar la formidable ciencia de la estadística. Mientras tanto, es lo único que usan de forma inconscientemente cuando analizan el mercado. Además, la estadística puede dar respuesta a muchas preguntas. Es posible analizar las transacciones y sus condiciones en mayor profundidad y encontrar una solución para el trading más flexible y definitiva.

De hecho, cualquier trader que conozca mínimamente los fundamentos de la escritura de asesores expertos utiliza la optimización del probador integrada. Pero, por desgracia, me temo que él o ella no siempre es completamente consciente de lo que significa el carácter formidable de la estadística a la hora de recopilar y analizar.

Planteamiento del problema

No sería erróneo sugerir que al menos el 99,9 % de los traders usan indicadores o sus combinaciones a la hora de analizar el mercado y su previsión. El proceso de "familiarización" de un trader con cualquier indicador comienza con un contacto puramente visual. Un trader analiza las lecturas del indicador relacionándolas con el gráfico del precio e intenta encontrar regularidades estables. Si no encuentra estas regularidades visuales, el trader echa a un lado el indicador. Si las relaciones estables entre las lecturas del indicador cambian y el movimiento del precio es evidente, el trabajo continúa hacia la segunda fase, que consiste en la búsqueda cuantitativa de la previsión correcta del precio y, quizás, el desarrollo de un asesor experto.
Después de un largo periodo de familiarización con un cierto indicador o su combinación, el trader comienza a interpretar sus señales sobre el principio discreto: "open up", "open down" o "no signal". Es decir, el trader restringe todo el conjunto de lecturas del indicador solo a los tratamientos inequívocos, lo que simplifica la previsión del mercado.

Por ejemplo, la Fig. 1 muestra una combinación de las medias móviles exponenciales (EMA) con los periodos 5 y 7.


Fig. 1. Un ejemplo de discretización de la señal: cruce de dos medias móviles (MA).

El indicador discreto se encuentra bajo el gráfico del precio. Por razones descriptivas no usamos "0" ni "1" sino una distinción por el color. Las señales verdes son para las compras (la EMA5 rápida cruza la EMA7 lenta hacia arriba), las señales rojas son para las ventas (la EMA5 rápida cruza la EMA7 lenta hacia abajo).


Podemos añadir otro "semáforo" verde y rojo, como una combinación de SAR y ADX (Fig. 2).

Fig. 2. La combinación de los 4 indicadores: EMA(%), EMA(7), SAR(0.02, 0.2) y ADX (14)

Como resultado de ello, tendremos señales filtradas del cruce de la EMA que, por ejemplo, permiten evitar la entrada errónea del 10 de septiembre a las 3.00. Por otro lado, podremos entrar al mercado el 7 de septiembre.
Si seguimos aumentando el número de dichos semáforos, en el sistema simplemente entrará de acuerdo con el último de los indicadores más lentos. La Fig. 3 permite ver los intervalos en los que las bandas verdes o rojas dominan en todos los indicadores que hablan sobre la previsión precisa de la dirección del movimiento. Las secciones a corto plazo simplemente caen fuera de dicho enfoque ya que uno de los indicadores no es lo suficientemente rápido para responder a este cambio.

Por supuesto, es posible inventar un MM cuando cada "semáforo" sea correspondido por su propia parte del lote y, como la posición es confirmada por los nuevos semáforos, el número de lotes crecerá con una preponderancia hacia un cierto lado, vender o comprar. O, de forma alternativa, podemos esperar a la señal de entrada/salida hasta la totalidad de las probabilidades de todos los semáforos supere un cierto umbral (como 50/50). En nuestra opinión, en el primer caso, no solo fracasaremos en la obtención de beneficios, sino que incluso nos quedaremos sin medios en una pérdida debido a las entradas/salidas falsas. Mientras tanto, en el caso segundo (alternativo), la salida y la entrada se realizará de acuerdo con el indicador no sea ni el más rápido ni el más lento. Esto significa que aún habrá entradas/salidas falsas.

Fig. 3. Superposición de semáforos, "Un día un cisne, un cangrejo de río y un lucio..."

Por tanto, por un lado, la discretización de la señal origina la creación del algoritmo de entrada/salida al mercado, pero, por otro lado, provoca consecuencias negativas, como una falsa entrada al mercado. Por desgracia, la CAUSA de una entrada falsa es IMPOSIBLE de comprender mientras se observan los valores discretos (interpretados) del indicador. Solo es posible en sus datos de ENTRADA, el conjunto de valores continuos. Debido a esto último, uno puede ver no solo la discretización, sino la intensidad y la naturaleza de estas señales, su comparabilidad histórica y su disposición relativa. Pero aquí nos encontramos con un problema. ¿Cómo podemos hacer que el ordenador "vea" y no solo responda?

Los PRINCIPALES PROBLEMAS del trabajo presente son:

1) encontrar el conjunto de valores respaldados estadísticamente (combinaciones) de indicadores que prevean el movimiento de la tendencia posterior con una alta probabilidad.

2) desarrollar ejemplos de scripts con los que un trader pueda comprobar y analizar las tendencias sugeridas sin escribir asesores expertos.

Como resultados de una solución al primer problema, también intentaremos ampliar el conjunto estándar de señales de indicadores conocidos y probar su precisión estadística.

La búsqueda de la solución puede lograrse de 3 formas, dependiendo de las relaciones causa-efecto que pretendamos encontrar:

a) a partir de los últimos valores de los indicadores hasta el análisis estadístico del futuro
b) a partir de las características de las barras futuras hasta el análisis estadístico de los últimos valores de los indicadores

c) combinar las dos formas anteriores y nacer un sistema de retroalimentación. Es decir, por ejemplo, el primer paso es determinar la dependencia entre las barras futuras y las lecturas previas de los indicadores, mientras que el segundo paso es confirmar (para la comprobación estadística) la mejor dependencia encontrada entre el indicador y la previsión de la barra.
Puede consultar a continuación el diagrama de flujo del análisis.

La implementación del primer paso se coloque en el script. Por así decirlo, el script trasladará los datos convertidos a un archivo para su análisis posterior. Esto permitirá evitar un análisis repetido y acelerará el procesamiento de los datos en general.

Para la decisión tenemos que abordar las condiciones que aplicaremos al precio analizado. Puede haber gran cantidad de variantes:

- por ejemplo, sobre la recomendación del trading basado en MACD, debemos esperar hasta que el histograma cruce la línea de señal y luego abra en consecuencia. Para dar una puntuación estadística a dicha entrada, debemos conocer el valor accesible mínimo y máximo del beneficio y la pérdida en las siguientes barras del gráfico después de la señal que ha aparecido. Por tanto, tenemos que elaborar el diagrama de dependencia entre TakeProfit, StopLoss y la probabilidad de su actuación;

- o podemos plantear un problema de otro tipo: cuál será la correlación del precio máximo y mínimo durante las siguientes 5 barras después de que el oscilador estocástico cruce la línea 80. El resultado será el soporte estadístico del cambio de la tendencia y la determinación de la probabilidad de beneficio después de dicha señal;

- o encontrar en cuántos puntos y en qué dirección cambia el precio después de 3 barras bull (bear) consecutivas (https://www.mql5.com/es/code/7262). El resultado es la determinación de la probabilidad de dirección del movimiento del precio después de dichas barras;

- o conocer el comportamiento del precio en relación con la primera proporción (00:00) de la media móvil del periodo 20 en el mismo día (H1). Intentar encontrar la relación entre la posición de la media móvil y la dirección del movimiento del precio. Encontrar la accesibilidad del beneficio y la pérdida probable;

- también nos gustaría llamar la atención sobre el hecho de que, básicamente, es posible analizar las velas. Por ejemplo, buscamos un modelo de inversión y analizamos el movimiento del precio posterior. El resultado es la confirmación y estimación de la probabilidad de beneficio en un cierto modelo de inversión.

En general, como ya se ha señalado, puede haber un gran número de enfoques para el análisis. Pero, a diferencia de los expertos, podemos ver no solo el trabajo con condiciones seriamente limitadas de la entrada y la salida, sino una visión más amplia.

Los resultados de dicha estimación estadística permite optimizar el sistema de trading con mayor rapidez y flexibilidad.


Entrena igual que luchas

Para el ejemplo más sencillo, hemos elegido el análisis de las velas y, en función de estas, hemos dado una estimación cuantitativa de uno de los modelos de inversión. Pero no solo eso, ya que esta cuestión es muy frecuente en los foros: http://forum.mql4.com/ru/3437, http://forum.mql4.com/ru/11531, http://forum.mql4.com/ru/6201 y otros.
De acuerdo con nuestras principales fuentes (¿para quién brillan las velas? bajo la dirección de V.I. Safin o las técnicas de gráficos de velas japonesas de Nison Steve), hay 15 modelos de inversión básicos. Nos decidimos por uno de los populares, el martillo.

Como referencia, el Martillo (velas blancas o negras). Se caracteriza porque su cuerpo está situado en la parte superior de la barra, la sombre superior es muy corta o no existe y la sombra inferior es el doble de larga que el cuerpo. La aparición de dicha vela en una tendencia hacia abajo es la señal del periodo final del dominio de bear en el mercado.

En la aparición de dicha vela debemos esperar el crecimiento del precio. Por tanto, para dar la estimación cuantitativa sobre la veracidad de dicha recomendación, recopilamos la siguiente información:

- el precio máximo y mínimo durante las siguientes barras Z;
- pérdida probable L en la orden TakeProfit N registrada de los puntos, para encontrar la StopLoss óptima;

- beneficio N probable en la StopLoss registrada de los puntos, para encontrar la TakeProfit óptima.

Los resultados del análisis estadístico
El muestreo se realizó entre los pares de monedas GBPUSD, EURUSD, GBPJPY para H1 y M15.
La Fig. 4 muestra la cantidad de distribuciones de precios extremos disponible en las siguientes 10 barras después de la aparición del "martillo" en GBPUSD.

Como podemos ver, hay un ligero cambio hacia el lado positivo, pero, por desgracia, no es lo suficientemente significativo para hablar con seguridad sobre la prioridad de comprar después de la aparición del "martillo".


Los resultados de los pasos segundo y tercero del análisis parecen más optimistas. Después de todo, hemos logrado encontrar la mejor proporción entre TakeProfit y StopLoss. Después de la aparición del "martillo" hubo una búsqueda del valor máximo y mínimo de la vela. Como "el martillo" tiene una connotación de apertura de la posición para la compra, la prioridad era encontrar el precio mínimo (la pérdida) y luego el máximo. Al final del artículo se encuentra el código completo del script !Bar2Csv.mq4 .

El resultado principal que se muestra en la Fig. 5 es el hecho de que la respuesta del mercado a la aparición de dicha vela en el diagrama H1 es obviamente débil. Y la tendencia descendente en la que aparece el "martillo" mantiene su movimiento inicial.

Ahora, como hemos encontrado los parámetros óptimos de la salida, podemos escribir el asesor experto primitivo y comprobar la optimización obtenida en el probador.

El beneficio obtenido ha resultado exceder, obviamente, el previsto en 700 puntos. Está relacionado con nuestra elección de la determinación de pérdida probable como prioridad. La prueba reveló que una parte de las posiciones perdedoras fueron positivas.
Para el periodo de 15 minutos, la expectativa para la relación StopLoss/TakeProfit siguió siendo la misma. Lo único es que el número de "martillos" encontrados es 2,5 veces más grande, los parámetros óptimos son TakeProfit=150, StopLoss=65 y el beneficio previsto es de 2305 puntos.
Este es el trabajo del asesor experto para M15. Como podemos ver, el beneficio también superó el valor previsto.

Para otros pares de moneda "el martillo" no demostró ser "el martillo de la suerte". Para EURUSD (H1) no hubo pasadas rentables en absoluto. Para GBPJPY las señales del "martillo" solo fueron positivas después de 2006 (habiendo sido analizadas desde 2004). No obstante, en general, el par de monedas GBPJPY dio un mayor beneficio que GBPUSD después de todo.

El paso principal de nuestra compresión es la sistematización

Ahora vamos a generalizar nuestra tarea de predicción del comportamiento del precio en relación con cualquier conjunto de valores indicativos (distintos indicadores, sus combinaciones o los modelos de inversión "japoneses" indicados anteriormente).
No vamos a tener en cuenta sofisticados métodos de apertura de posiciones (coberturas, promediación, cuadriculación) ya que estos son temas para futuros investigadores. Optaremos por una transacción simple con StopLoss y TakeProfit fijas.

Axioma 1. Para CADA barra, hay un único diagrama de accesibilidad del precio máximo y mínimo.

La línea verde en la Fig. 6 es el precio máximo alcanzado para la barra del 20 de noviembre de 2007 (EURUSD). La línea roja es el precio mínimo. Podemos ver estas dos líneas separadas en todo momento ya que los nuevos extremos son fijos.


En términos matemáticos, puede haber las siguientes claves: P(t) es la línea verde, L(t) es la línea roja, siendo "t" el número de la barra que depende del tiempo.
Luego, para TakeProfit (TP) y StopLoss (SL) fijas, podemos registrar la condición de accesibilidad de TakeProfit tP<tL (en la condición de entrada para la compra). Esto significa que P(tP)=TP, L(tP)<SL (en el momento tP se ha alcanzado el valor de TakeProfit mientras que no ha sido así para StopLoss).


Axioma 2. El análisis de cualquier señal indicativa consiste en estimar cuantitativamente el cumplimiento de la condición tP<tL. O, en otras palabras, la única condición suficiente para una transacción con éxito es ordenar las barras en las que no se cumple esta condición.

Por tanto, hemos llegado a la conclusión principal: el análisis del mercado no se realizará a partir de las señales hasta llegar a la predicción del precio, sino a partir del precio correcto hasta la recopilación de las lecturas del indicador.

Es decir, no tenemos que ahondar en el monitor para saber qué curvas del indicador son señales de compra o venta. De la otra forma, solo comprobamos la estabilidad de las lecturas del indicador y encontramos con qué frecuencia la entrada en una lectura determinada lleva a un resultado positivo.
Supongamos que hemos registrado TakeProfit (TP) y StopLoss (SL). Esto significa que tenemos valores tP y tL para cada barra i. Elegimos solo las barras en las que se cumple la condición tP<tL y creamos la primera matriz М1. Esta matriz permanece CONSTANTE para cada par de divisas al margen de los indicadores considerados. Es la CONSTANTE del par de monedas.
A continuación, definimos la segunda matriz de barras M2 en la que entramos por las señales del indicador. Ahora, como encontramos barras comunes de las matrices M1 y M2, podemos estimar el resultado de la transacción para cualquier conjunto de indicadores. Nota: en principio, esta operación puede usarse para métodos de trading como el martingale o la promediación.

Como "gratificación" del artículo, presentamos un indicador experto para una prueba breve en el historial (de barras cerradas) de su sistema de señales con TakeProfit (TP) y StopLoss (SL). La forma de funcionamiento es muy sencilla:
Vamos por la matriz M2 contando barras rentables y perdedoras a partir de la matriz M1. "IndoExpert" en el diagrama muestra las barras en las que era rentable la entrada y en las que se generaban pérdidas e indica el beneficio o las pérdidas obtenidos en el comentario. El código está repleto de comentarios, por lo que incluso un principiante en MQL lo podrá asimilar. Gracias a este indicador, cualquier principiante dejará todas las ideas para pedir a alguien que "codifique esta superrentable idea" y encuentre todo por sí mismo. Tomemos los artículos !IndEx.mq4.
Revisamos una vez más y nos vienen como anillo al dedo los axiomas y la conclusión principal.


La experiencia es el fruto de los errores en el trading

En la práctica, la matriz M2 no puede cubrir por completo todas las entradas con éxito de M1, y lo que es más, cubrirá muchas de las que obtienen pérdidas. Por tanto, si no queremos perder puntos deseables, tendremos que revisar la interpretación del indicador utilizado y ampliar/restringir sus señales.

Pero ¿qué debe hacerse si las señales requeridas no son definibles en el análisis visual? En este caso, debemos recopilar y clasificar todas las lecturas del indicador de acuerdo con todos los elementos de M1. (No es como el funcionamiento en paralelo con las redes neuronales, aunque ocurre algo similar). También recopilan y analizan las estadísticas ajustando las ponderaciones para obtener mejores resultados. Por esta razón creemos que el análisis estadístico es una alternativa adecuada). La cantidad de lecturas del indicador debe ser suficiente, por lo que es deseable que todos los experimentos se realicen en diagramas con un gran número de barras del historial (no menos de 100.000).

Al manipular los parámetros de la estimación del indicador (en TP y SL fijas) tendremos un espacio N-dimensional del diagrama de cambio del depósito (siendo N el número de parámetros de todas las señales del indicador).
Por ejemplo, los parámetros de la variación en el "martillo" no son solo la correlación entre las características gráficas del coeficiente de la barra (la sobre y el cuerpo) de relación de la sombra superior con respecto al cuerpo y la sombra inferior con respecto al cuerpo de la vela. El "martillo" está intrínsecamente colocado en la tendencia bear, lo que significa que al menos dos barras anteriores son necesarias para su identificación. Como recordaremos, en el primer ejemplo bloqueamos las correlaciones entre las sombras y el cuerpo y definimos la tendencia como el ángulo de pendiente MA5. Por tanto, obtuvimos "un punto" en el diagrama. Pero para ver todo el rango de predicción del precio, debemos dar carta blanca a estas correlaciones. Y quizás lograremos una estabilidad perfecta del sistema y un beneficio constante con un alto grado de probabilidad.


Decidimos hacer el experimento con medias móviles, que son ampliamente conocidas como material de prueba (media móvil: MA). El esquema de la investigación es el siguiente:
1. Para cada barra i establecemos un abanico de N medias móviles.
2. A través del historial desde el principio hasta la barra analizada, encontramos abanicos similares y guardamos sus números de barra.
3. A través de TP y SL en un cierto diapasón, contamos el número de barras seleccionadas rentables/perdedoras. Calculamos el totas de beneficios/pérdidas obtenidos en las entradas.
4. En el cálculo positivo del total, registramos la configuración encontrada del abanico que nos da, probablemente, un resultado positivo de entrada al mercado. Y no fallamos al estimar el resultado de entrar en la barra analizada i.
5. Luego, podemos usar el gráfico obtenido en las distintas investigaciones.

Los que estén interesados en el propio código, puede verlo en el pie del artículo en OptimMA.mq4. Aquí puede consultar un informe detallado de la investigación realizada.

1. La tabla de los datos obtenidos y analizados posteriormente, aparece a continuación:

  • Bar - el número de la barra analizada
  • Time - la hora de la barra analizada
  • Fans - cuántos abanicos idénticos se han encontrado Вееров
  • TP – el valor de TakeProfit en puntos
  • nTP – el número de órdenes TakeProfit elegidas entre todos los abanicos idénticos encontrados
  • SL – el valor de StopLoss en puntos
  • nSL – el número de órdenes StopLoss elegidas entre todos los abanicos idénticos encontrados
  • Profit - el total de todos los beneficios y pérdidas de abanicos idénticos
  • Retribución esperada - relación nTP / (nTP+nSL)
  • Profitable - si la barra analizada es rentable cuando es usada al entrar al mercado con TP y SL
  • Bar profit – el beneficio/pérdida obtenidos en la barra analizada como resultado de entrar al mercado con TP y SL en esta barra.


2. Limitación de la muestra
Pensamos que es razonable ordenar en una primera fase las barras que no cumplan algunos requisitos.

  • - Fans (abanicos) >10. La situación es que hay barras cuyos abanicos son prácticamente solitarios y se encuentran en el gráfico solo algunas veces (incluso los hay que no se repiten en absoluto). Aunque pueden obtenerse beneficios de ellos, decidimos no entrar en ellos debido a la falta de datos históricos
  • - Retribución esperada>80%. Esto debe originar un incremento de la rentabilidad general de las entradas. En un análisis posterior se encontró que el 100 % de la retribución esperada (cuando no hay entradas perdedoras durante el historial) es también no deseable, ya que el parámetro "beneficio" en esta situación es principalmente negativo
  • - Profit>0.


3. Análisis.
Se analizó el gráfico mediante los siguientes diagramas:
а) dependencia de Bar Profit en nTP en la sección "Profit"
b) dependencia de Bar Profit en nSL en la sección "Profit"
c) dependencia de Bar Profit en Expectation en la sección "Profit"
Todos los diagramas tienen variantes
de acuerdo
el beneficio total obtenido y el número de barras. Para ellos también se crean diagramas normalizados.

4. Informe
Se analizó el diagrama M5 para GBPUSD para 125.000 barras del historial (434 días).



Rango TP y SL 20..120 puntos
El número de medias móviles en el abanico 40
El paso del abanico 3 periodos
El número de barras únicas encontradas que cumplen las condiciones 1153
El número de condiciones adecuadas encontradas 48259
Transacciones rentables 991
Transacciones perdedoras 391
Rentabilidad esperada 71,71%.
Pérdida obtenida 1.172.705 puntos
Beneficio obtenido 1.571.420 puntos
Beneficio total 398715



Diagrama 1. Dependencia del beneficio (rojo)/pérdida (azul) total en nTP.

Diagrama 2. Relación de beneficios y pérdidas totales dependiendo de nTP. Los valores inferiores a 1 indican beneficios. El diagrama muestra que para nTP=24, 42, 44 las pérdidas superan al beneficio. Para el resto de casos permaneció en torno a 0,6.

Diagrama 3. Normalización total del beneficio. El valor de 50 % indica que el beneficio (rojo) es igual a la pérdida (azul).

Las demás dependencias que pueden verse en al gráfico GBPUSD_5_fan.xls no son menos interesantes.

Como ya se ha señalado, esta es solo una de las innumerables oportunidades del análisis estadístico, por lo que no debe dudar en aventurarse. Le deseamos éxito y un gran beneficio.


Atención: Le recomendamos encarecidamente que se familiarice con el principio del cálculo antes de trasladar un script o un indicador al gráfico. Debido al procesamiento de grandes cantidades de datos, puede haber una parada de algunos segundos en el funcionamiento del terminal.

Nota final:
si quiere compartir sus mejores prácticas y/o dejarnos sus comentarios, es mejor que cree un hilo en el foro.

Traducción del ruso hecha por MetaQuotes Software Corp.
Artículo original: https://www.mql5.com/ru/articles/1536

Archivos adjuntos |
5IndoExp.mq4 (6.22 KB)
Bar2Csv.mq4 (2.27 KB)
files.zip (1701.43 KB)
OptimMA.mq4 (10.75 KB)
Indicadores de prueba de asesores expertos no de trading Indicadores de prueba de asesores expertos no de trading

Todos los indicadores pueden dividirse en dos grupos: indicadores estáticos, cuya visualización, una vez mostrada, siempre es la misma en el historial y no cambia con nuevas cotizaciones entrantes, y los indicadores dinámicos, que visualizan su estado en el momento actual solo y se redibujan completamente cuando llega un nuevo precio. La eficiencia de un indicador estático es directamente visible en el gráfico. Pero ¿cómo podemos comprobar si un indicador dinámico funciona correctamente? Esta es la pregunta a la que está dedicado el artículo.

Integración del terminal de cliente de MetaTrader 4 con MS SQL Server Integración del terminal de cliente de MetaTrader 4 con MS SQL Server

El artículo proporciona un ejemplo de integración del terminal de cliente de MetaTrader 4 con MS SQL Server usando una dll. Se adjuntan los códigos fuente en C++ y en MQL4 y un proyecto listo para usar y compilado de Visual C++ 6.0 SP5.

Notas de aficionado: ZigZag Notas de aficionado: ZigZag

Seguramente, un iluso que pensara operar cerca de los extremos visitaría cada aprendiz de trader cuando es viera una polilínea "enigmática" por primera vez. Es tan simple, ciertamente. Este es el máximo. Y este es el mínimo. Una bonita imagen en el historial. ¿Y qué ocurre en la práctica? Se dibuja un rayo. Parecerá que este es el pico. Es el momento de vender. Y ahora vamos hacia abajo. Pero, demonios, no es así. El precio se mueve traicioneramente hacia abajo. ¡Sooo! Es una nimiedad, no un indicador. Y nos deshacemos de él.

Cambiar los parámetros externos de los programas de MQL4 sin reiniciar Cambiar los parámetros externos de los programas de MQL4 sin reiniciar

El artículo describe un método para cambiar los parámetros externos de los programas de MQL4 sobre la marcha, sin reiniciar.