Movimiento de precios: Modelos matemáticos y análisis técnico
Introducción
Forex, como el mercado financiero más grande, atrae a una gran cantidad de traders que buscan beneficiarse de las fluctuaciones del tipo de cambio. Sin embargo, la volatilidad y la imprevisibilidad del mercado hacen que resulte muy difícil predecir los movimientos de precios. Por consiguiente, el desarrollo y la aplicación de modelos de pronóstico efectivos es una de las principales tareas de los traders.
A pesar de su aparente aleatoriedad, los movimientos de precios en el mercado de divisas están sujetos a ciertos patrones. No obstante, realizar previsiones eficaces sigue siendo una tarea difícil. Los modelos matemáticos basados en análisis estadístico buscan identificar estos patrones en los datos históricos y construir algoritmos formales capaces de predecir los movimientos de precios. Estos modelos (que pueden dividirse de forma aproximada en "complejos" y "muy complejos") permiten evaluar la probabilidad de varios escenarios y tomar decisiones comerciales informadas.
Por otro lado, el análisis técnico que se basa en el análisis gráfico y el uso de indicadores, ofrece un enfoque más intuitivo para la previsión. Los traders estudian los gráficos de precios, identifican los niveles de soporte y resistencia y utilizan diversos indicadores para tomar decisiones comerciales.
En este artículo analizaremos los modelos matemáticos y métodos de análisis técnico utilizados para predecir los movimientos de precios. Además, consideraremos diversos enfoques, así como sus ventajas y desventajas, y discutiremos las posibilidades de combinarlos para mejorar la eficacia de las estrategias comerciales. Una comprensión correcta del funcionamiento de los modelos matemáticos y los métodos de análisis técnico puede ayudarnos a mejorar la eficiencia de sus operaciones, reduciendo el riesgo de pérdidas y aumentando la probabilidad de realizar operaciones exitosas.
Modelos simples
Veamos una estrategia comercial con estas reglas:
- al abrirse una nueva barra, se cierra la posición abierta anteriormente y se abre una nueva;
- la dirección de la posición abierta se determina aleatoriamente.
Usted se preguntará: ¿cuál es la sorpresa, entonces? La sorpresa es que de repente me he convertido en partidario de la hipótesis del mercado eficiente. Si usted también se hace partidario de esta hipótesis, argumentará igualmente que predecir los movimientos de precios no tiene sentido, pues los precios se mueven donde y como quieren. El mercado dispone de cierta información completa, según la cual se producen cambios de precios. Los traders no disponen de dicha información y solo pueden esperar que su decisión coincida con la opinión del mercado.
Vamos a probar esta estrategia. El único parámetro configurable es el número de inicialización del generador de números aleatorios. Cambiando este parámetro podremos seleccionar la secuencia de operaciones deseada.

Como puede ver, tras 800 pasadas del optimizador no hay ni un indicio de beneficios. Este resultado puede deberse a la influencia del spread. Debido al spread, la diferencia entre los precios de apertura y cierre de las posiciones puede resultar incluso negativa. Para evitar esto, podemos cambiar a un marco temporal mayor. Sin embargo, esta transición equivaldrá a aumentar el tiempo de mantenimiento de la posición. Vamos a considerar los resultados obtenidos y a efectuar varios ajustes en la estrategia comercial:
- la dirección de la posición permanece aleatoria;
- el tiempo de mantenimiento de la posición lo establece el trader;
- la nueva posición se abre si no hay otras posiciones;
- las posiciones se cierran mediante órdenes stop.
Los valores de stop loss y take profit los hemos tomado de este artículo. El parámetro optimizado sigue siendo el mismo. Al parecer, los cambios han beneficiado la estrategia. Tenemos algunas variantes rentables.

En general, para encontrar el mejor número de inicialización, podemos utilizar el algoritmo del problema de la secretaria. Imaginemos que tenemos N opciones diferentes, entonces, el número de opciones que deberán comprobarse obligatoriamente se puede encontrar utilizando la fórmula:
![]()
En este caso, obtendremos el siguiente valor:
![]()
Luego recordamos la opción con mejor resultado y continuamos explorando las opciones restantes. Si aparece un resultado mejor que el guardado, podemos detener la búsqueda. Con una probabilidad muy alta, habremos encontrado la mejor opción entre todas las posibles.
El único inconveniente de este algoritmo es que su implementación podría llevar mucho tiempo. Sin embargo, si quiere aprovechar al máximo el potencial de esta estrategia, tendrá que utilizar este algoritmo. Simplemente hemos elegido la mejor opción después de 1000 pasadas. Los resultados parecen buenos.

Hasta ahora hemos elegido el tipo de posición a abrir de forma aleatoria. ¿Qué ocurriría si hay algunos patrones en los movimientos de precios que pueden ayudar en esta elección? Vamos a intentar utilizar un método de pronóstico ingenuo. Dicho pronóstico se puede formular de la siguiente manera: lo que ha sido, será. Pero basta con mirar cualquier gráfico para comprender que este método no funciona. Bien, vamos entonces a cambiar un poco este método de pronóstico; el próximo precio será el mismo que el actual más un error:
![]()
Con este enfoque, el factor principal que influye en el pronóstico no será el precio, sino el error. Nosotros usamos el término “error” debido a la elección del modelo de previsión. Pero podemos sustituir esto por "incremento de precio". El término ha cambiado, pero la esencia sigue siendo la misma. Veamos las estadísticas de estos incrementos.

De forma similar a la distribución de Laplace. Al estudiar series temporales financieras, muchos investigadores intentan explicar los resultados obtenidos usando distribuciones clásicas. Este enfoque es muy cómodo. Las propiedades de estas distribuciones ya nos son conocidas, por lo que no resulta difícil modelar series temporales utilizando estas. Aunque no todo es tan sencillo. Las distribuciones clásicas son abstracciones matemáticas que, en la realidad, se encuentran poco menos que nunca.
Para un trader, la distribución de valores de precios reales resulta importante. Estas distribuciones se denominan "empíricas", y se obtienen a partir de observaciones, no de suposiciones teóricas. Así pues, tenemos una distribución empírica de incrementos de precios. Ahora descartaremos un tercio de los incrementos más pequeños y más grandes. Entonces tendremos un canal con el cual podremos predecir el valor del precio futuro.

Tenga en cuenta que solo necesitamos el precio actual para realizar un pronóstico. Este modelo se puede hacer más flexible, pero para lograrlo deberemos introducir complicaciones notables. Si el tema le interesa, por favor, escriba en los comentarios. Mientras tanto, vamos a pasar a modelos más complejos.
Tendencia lineal
A todos los traders les encantan las tendencias, especialmente si las direcciones de la posición y la tendencia coinciden. La tendencia lineal se define mediante una fórmula simple:
![]()
Esta ecuación usa el tiempo como variable independiente. La empresa MetaQuotes sugiere contar el tiempo partiendo del 1 de enero de 1970. ¿Pero qué pasaría si estuvieran equivocados? ¿Tal vez deberíamos haber comenzado a contar el tiempo desde el 29 de febrero? Vamos a intentar ahora eliminar esta deficiencia y encontrar el inicio más preciso del tiempo.
Las ecuaciones de tendencia lineal para dos barras consecutivas tienen el aspecto siguiente:
![]()
![]()
Ahora deberemos encontrar las diferencias entre estas ecuaciones:
![]()
Si simplificamos esta ecuación, obtenemos la expresión siguiente:
![]()
La diferencia de tiempo se puede expresar más cómodamente como el número de barras entre lecturas de precios. Entonces la fórmula se hace aún más sencilla:
![]()
Tenga en cuenta que uno de los parámetros de tendencia y el tiempo ya no son necesarios, mientras que el valor del próximo precio se puede obtener sumando el precio actual y la velocidad de la tendencia. Después de las simplificaciones, comienzan las dificultades. Podemos determinar los parámetros de tendencia usando, por ejemplo, el método de mínimos cuadrados. Pero podemos utilizar otro enfoque.
Supongamos que ya conocemos la velocidad de la tendencia. Luego, cuando aparezca un nuevo precio, ajustaremos la velocidad de la tendencia según la siguiente regla: el error de pronóstico y el cambio en la velocidad de la tendencia deberán tender a cero. Esta regla se puede formular de otra manera: la velocidad de la tendencia debe ser estable durante un periodo de tiempo bastante largo. Como fórmula se verá así:
![]()
Así, obtenemos la siguiente fórmula para calcular el valor actualizado de la velocidad de tendencia:
![]()
Para reconocer la presencia de una tendencia, debe darse un movimiento de precios direccional a lo largo de varias barras. En este caso, obtenemos varias ecuaciones de la forma:
![]()
Si combinamos estas ecuaciones en una, la velocidad de la tendencia se medirá en relación al valor medio de los precios, que se puede obtener utilizando la SMA. La fórmula de velocidad de tendencia, a su vez, tomará su forma final:
![]()
El indicador construido utilizando esta fórmula tendrá el aspecto siguiente.

Podemos crear una estrategia comercial sencilla basada en este indicador. La apertura y el cierre de posiciones se producirán cuando cambie el signo de los valores del indicador.

Tenemos ciertos resultados, pero el indicador en sí requiere estudio y perfeccionamiento mayores. El cambio en la velocidad de la tendencia también puede estar sujeto a su propia tendencia. Y también es necesario destacar dichas tendencias. La suma de estas (si realmente existen) nos permitirá obtener señales más precisas.
Un paseo por el gráfico
Uno de los modelos interesantes está relacionado con el paseo aleatorio. Si el movimiento del precio es aleatorio, entonces la distancia recorrida por el precio y el tiempo están relacionados entre sí de la forma siguiente:
![]()
Supongamos que el exponente de tiempo puede ser cualquiera. Es decir, el movimiento del precio está sujeto a la siguiente regularidad:
![]()
Veamos un algoritmo que se puede usar para calcular el exponente de tiempo y el coeficiente de proporcionalidad. Primero, debemos establecer el periodo del indicador N. En este caso, el tiempo es algo simple: se trata de un número entero no negativo que comienza desde 1 hasta N. Pero los caminos recorridos requieren algunos ajustes. La distancia recorrida por un precio se puede calcular sumando los valores absolutos de las diferencias entre dos precios consecutivos:
![]()
En este caso, la distancia recorrida debe calcularse desde el pasado hacia el futuro, sumando los nuevos valores con los anteriores. Debería parecerse a lo siguiente:
![]()
![]()
Ahora necesitamos normalizar las distancias obtenidas. Para ello, todos los valores deberán dividirse por la distancia más pequeña recorrida R[N-1].
![]()
Así pues, no medimos la distancia real, sino la relativa. Ya queda muy poco por hacer: solo necesitamos aplicar logaritmos a los números obtenidos. Además, deberemos aplicar logaritmos tanto a los recorridos como al tiempo.
![]()
![]()
Tenga en cuenta que los logaritmos de los valores de distancia y tiempo más antiguos son iguales a 0, y no afectan de ninguna forma los cálculos posteriores. Considerando esto, el exponente y el coeficiente de proporcionalidad se pueden encontrar usando las fórmulas:
![]()
![]()
Ahora veamos cómo cambia el exponente a lo largo de la historia.

Este parámetro se puede usar para juzgar la naturaleza del movimiento de precios. Si está cerca de 0, esto indicará un cambio de precio débil, es decir, un movimiento lateral. Para una tendencia lineal, este indicador es igual a 1. El exponente varía en un rango muy amplio, desde 0 hasta aproximadamente 2,5. Por ello, los indicadores que priorizan los valores de precios recientes adquieren importancia. Estos indicadores incluyen las conocidas EMA y LWMA.
Nosotros intentaremos escribir un indicador cuyos pesos se determinan utilizando números figurados. Supongamos que L es el nivel de un número. Entonces, el n-ésimo número figurado se puede calcular utilizando la fórmula:
![]()
Los números resultantes serán los coeficientes de peso del indicador. Un indicador de este tipo reaccionará a los cambios de precios más rápidamente que LWMA, pero su "memoria" es más larga que la de la EMA, por lo que suavizará mejor las series temporales.

Vamos a probar este indicador usando una estrategia simple que genera señales cuando el precio cruza la línea del indicador.

Los resultados de las pruebas no son nada impresionantes. Pero debemos recordar que se puede construir una gran cantidad de indicadores usando como base números figurados, cada uno de los cuales responderá a su propia tendencia. Y si las señales de cada indicador se procesan por separado, los resultados pueden resultar gratamente sorprendentes.
Conclusión
En este artículo, hemos analizado varios enfoques para describir y pronosticar los movimientos de precios en el mercado Forex. Incluso una estrategia sencilla basada en la elección aleatoria de la dirección de una posición puede resultar rentable si se optimizan adecuadamente parámetros como el tiempo de mantenimiento de la posición y los niveles de stop-loss y take-profit. Esto resalta la importancia de la gestión de riesgos y la adaptación a las condiciones del mercado.
La variedad de enfoques para pronosticar los movimientos de precios de Forex resalta la importancia de elegir un modelo apropiado según las condiciones específicas del mercado y los objetivos del trader. Una mayor investigación y desarrollo en esta área podría redundar en la creación de modelos de pronóstico aún más efectivos y fiables, permitiendo a los traders tomar decisiones más informadas y aumentar su rentabilidad.
En la redacción del presente artículo se han utilizado los siguientes programas:
| Nombre | Tipo | Control |
|---|---|---|
| EA Picky Bride | experto |
|
| Error | script |
|
| Price Increments | indicador |
|
| Trend | indicador |
|
| EA Trend | experto | |
| Wandering | indicador |
|
| Figurative Numbers | indicador |
|
| EA Figurative Numbers | experto |
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/18086
Advertencia: todos los derechos de estos materiales pertenecen a MetaQuotes Ltd. Queda totalmente prohibido el copiado total o parcial.
Este artículo ha sido escrito por un usuario del sitio web y refleja su punto de vista personal. MetaQuotes Ltd. no se responsabiliza de la exactitud de la información ofrecida, ni de las posibles consecuencias del uso de las soluciones, estrategias o recomendaciones descritas.
Redes neuronales en el trading: Generalización de series temporales sin vinculación a datos (Mamba4Cast)
Características del Wizard MQL5 que debe conocer (Parte 58): Aprendizaje por refuerzo (DDPG) con patrones de media móvil y oscilador estocástico
Particularidades del trabajo con números del tipo double en MQL4
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 6): Reglas de negociación autoadaptativas (II)
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso