Predicción en el trading y modelos de Grey
Introducción
Los mercados financieros actuales se caracterizan por su elevada volatilidad y dinamismo, por lo que una predicción precisa y oportuna desempeña un papel muy importante a la hora de tomar decisiones de trading. Cualquier tráder se esfuerza por desarrollar y aplicar métodos de predicción que le permitan anticipar las futuras fluctuaciones de los precios y maximizar las ganancias.
El análisis técnico ofrece muy diversos métodos de predicción. Sin embargo, muchos métodos de predicción tienen sus limitaciones. Por ejemplo, el enfoque estadístico de la predicción requiere un gran volumen de datos históricos. Otros enfoques solo funcionan bien con series temporales estacionarias, etc.En este sentido, está aumentando el interés por los métodos de predicción capaces de funcionar con información limitada e incompleta. Uno de estos enfoques son los modelos Grey (GM), que pueden resultar muy útiles en situaciones en las que los datos son limitados, poco fiables o contienen mucho ruido. Este tipo de situaciones se da con bastante frecuencia en los mercados financieros. En este artículo analizaremos los fundamentos de los modelos GM y sus posibilidades de aplicación para la predicción de series temporales financieras.
Modelo clásico GM(1,1)
Los modelos Grey se pueden aplicar para resolver problemas muy diversos. Con los modelos GM podemos analizar una serie temporal, suavizarla o identificar las principales tendencias en la evolución de los precios. Pero este modelo también se puede utilizar para la predicción. La principal ventaja del enfoque GM radica en que no impone ninguna restricción respecto a la estacionariedad de la serie temporal. Por ejemplo, la media móvil simple (SMA) mostrará todas sus ventajas si la serie temporal es estacionaria y sus valores siguen una distribución normal. Sin embargo, si la serie temporal no es estacionaria (en pocas palabras, si hay una tendencia), la media móvil simple (SMA) quedará irremediablemente rezagada. Para los modelos GM, estos requisitos no son relevantes y pueden manejar cualquier serie temporal. Bueno, o al menos eso se supone. Los requisitos para los modelos GM son sencillos y fáciles de cumplir:
- La longitud de la serie temporal debe ser de al menos 4;
- Los valores de la serie temporal deben ser estrictamente positivos y estar registrados a intervalos de tiempo iguales, sin omisiones.
La construcción de cualquier modelo GM comienza con la aplicación de la operación generadora acumulada (AGO). La esencia de esta operación es muy sencilla: hay que sumar el valor actual de la serie temporal con todos los valores que lo preceden. En adelante, llamaré a esta serie temporal serie Grey (GS). Tomemos, por ejemplo, 5 precios. En ese caso, la operación AGO aplicada a esos valores tendrá el aspecto siguiente:

Esta operación tiene dos objetivos principales. En primer lugar, reducimos el impacto del ruido. En segundo lugar, la nueva serie temporal se vuelve más predecible: es estrictamente creciente y puede tener, por ejemplo, este aspecto:

Una vez que hayamos obtenido los valores de la nueva serie temporal, podemos proceder a construir el modelo GM(1,1). En esta notación, el primer número indica el orden de la ecuación diferencial, y el segundo, el número de series Grey (GS) procesadas. El modelo GM(1,1) se describe mediante una ecuación diferencial lineal.
![]()
Para resolver esta ecuación, necesitaremos algún sistema de cálculo simbólico. Yo utilizo Maple. Primero escribimos la ecuación original, luego establecemos la condición inicial a partir de la cual se buscará la solución y obtenemos el resultado. En Maple, todas estas operaciones tendrán este aspecto:
de:=diff(x(t),t)+a*x(t)=b; #ecuación original cond:=x(1)=X[1]; #condición inicial dsolve({de,cond},x(t)); #solución de la ecuación

Así hemos obtenido la dependencia de la variación de la serie Grey (GS) con respecto al tiempo. Tenga en cuenta que el índice t tiene carácter temporal y aumenta del pasado hacia el futuro, empezando por 1. A partir de esta ecuación podemos obtener la misma relación para la variación del precio:
![]()
En Maple, la solución de esta ecuación se verá así:
eq:=price[t]=(b+(a*X[1]-b)*exp(-a*t))/a-(b+(a*X[1]-b)*exp(-a*(t-1)))/a;#diferencia entre dos valores consecutivos de GS simplify(eq);#simplificamos el resultado

Simplifiquemos un poco el resultado a mano y la fórmula adoptará su forma definitiva.
![]()
De esta fórmula se desprende que, conociendo los parámetros a y b, podemos estimar los valores del precio. En otras palabras, suavizar la serie temporal original. Para estimar estos parámetros, debemos tomar la ecuación diferencial y llevarla a una forma discreta. Para ello, utilizaremos la siguiente transformación:
![]()
Tras esta transformación, obtendremos una versión discreta.
![]()
Los coeficientes de esta ecuación pueden estimarse fácilmente mediante el método de mínimos cuadrados (MC). Y aquí es donde empieza lo más interesante. Podemos obtener una estimación suavizada de los valores de la serie Grey (GS). Este tipo de suavizado tiene un interés meramente académico; en la práctica, tiene poca utilidad.

O también podemos suavizar directamente la serie temporal original.

Ahora estamos listos para dar el siguiente paso. Recuerde que la fórmula para calcular los valores del precio no impone ninguna restricción al avance del tiempo. Es decir, podemos seguir construyendo una nueva serie temporal hacia el futuro todo lo que queramos. En ese caso, obtendremos una predicción del movimiento del precio. Por supuesto, esta predicción se basa en la hipótesis de que las características de la serie temporal original se mantendrán inalteradas. Haré una predicción para las próximas 5 observaciones.

Como puede ver, este modelo funciona bien con las tendencias lineales. Pero, debido a ello, puede pasar por alto otros movimientos importantes del precio. Intentemos aplicar modelos GM más complejos y veamos cómo se comportan.
Modificaciones del modelo GM(1,1)
La modificación más sencilla del modelo GM(1,1) clásico se denomina Rolling GM (RGM). La idea de esta modificación es muy sencilla. Tenemos que tomar los valores de varios modelos GM con diferentes periodos y calcular su media. Gracias a este enfoque, podemos obtener una estimación más suave de los valores del precio. La predicción también será más suave. Construyamos un modelo RGM compuesto por varios modelos GM(1,1) con periodos de 4 a 24. Así es como se ve en el gráfico:

El modelo RGM también se puede modificar. La idea principal de esta modificación es asignar a cada modelo GM su propio peso. Además, estos pesos pueden ser fijos o depender del error de predicción. El primer caso es bastante trivial. Puede asignar los pesos en función de sus propios criterios. Y luego obtener la suma ponderada.
![]()
Si los pesos dependen del error de predicción, obtendrá una variante adaptativa de Rolling GM (RGM). En este caso, el peso de cada modelo GM se puede determinar de la siguiente manera. En primer lugar, calculamos el error de predicción para cada modelo GM por separado:
![]()
El coeficiente de ponderación del modelo GM dependerá de este error: cuanto mayor sea el error, menor será el peso:
![]()
De este modo, RGM dará prioridad únicamente a aquellas tendencias que se ajusten con mayor precisión al movimiento del precio. En consecuencia, también puede mejorar la calidad de la predicción.
Otra forma de hacer más complejo el enfoque consiste en el preprocesamiento de la serie temporal original. Por ejemplo, en lugar de los precios, podemos utilizar los valores de la media móvil simple (SMA). En ese caso, el modelo GM(1,1) dará resultados más suavizados. En la práctica, este enfoque se puede utilizar para determinar los límites de una tendencia.

Pero el canal también se puede construir de otra forma. En primer lugar, tenemos que calcular los parámetros del modelo GM(1,1). Más concretamente, ahora solo necesitamos el parámetro de crecimiento a. Ahora, para cada valor real del precio, calcularemos su parámetro b.
![]()
De entre todas las opciones posibles, nos interesan los valores máximo y mínimo de este parámetro. Con estos valores podemos obtener los límites superior e inferior del canal de tendencia.

Y así es como se ve ese canal en el gráfico:

Existe una gran variedad de modificaciones de los modelos Grey. Algunas de estas modificaciones solo son aplicables a series temporales específicas. Otros, como el modelo GM(1,1), tienen carácter universal. Todas estas modificaciones tienen un único objetivo: mejorar la precisión de las predicciones e identificar las características de las series temporales.
Modelos GM discretos
La resolución de ecuaciones diferenciales resulta, por supuesto, muy elegante, pero incluso un ligero aumento de la complejidad de los modelos da lugar a soluciones muy complejas. Además, la estimación de los parámetros del modelo puede resultar numéricamente inestable. Un solo error en quién sabe qué decimal hará que en el gráfico no haya nada útil que observar.
Las variantes discretas de los modelos GM no presentan estos inconvenientes. Intentemos construir una variante de este tipo para el modelo GM(1,1). Este modelo puede expresarse mediante la siguiente ecuación de recurrencia lineal:
![]()
Es decir, establecemos una dependencia lineal del valor actual de la serie Grey (GS) respecto del anterior. No resultará muy difícil estimar los parámetros de esta ecuación. Ahora tenemos que hallar los parámetros de la ecuación.
re:=x(n+1)=a*x(n)+b; #ecuación original cond:=x(1)=X[1]; #condición inicial simplify(rsolve({re,cond},x(t))); #solución de la ecuación
Como resultado, obtendremos una ecuación con valores de la serie Grey (GS) definidos explícitamente.
![]()
A partir de esta ecuación podemos obtener una estimación del precio.
![]()
Y este es el aspecto del indicador construido sobre la base de este modelo:

El experimento fue exitoso. Ahora intentemos construir un modelo GM(0,2). De la notación se desprende claramente que en este modelo no se utilizan derivadas y que aumenta el número de factores que se tienen en cuenta. Por cierto, este modelo solo puede existir de forma discreta.
En este modelo se utilizan dos series Grey (GS). Supongamos que el periodo del modelo es igual a N. La primera serie Grey (GS) la construimos como de costumbre, a partir del precio con índice N-1. Y para construir la segunda serie (la denotaré como Y), utilizaremos los precios desplazados una observación hacia atrás, empezando por el precio con índice N. La ecuación de este modelo es la siguiente:
![]()
Por supuesto, podemos formular una ecuación de recurrencia y hallar su solución. Pero este modelo resultará especialmente sencillo si nos limitamos a una predicción a un paso hacia adelante. Así pues, primero estimaremos los parámetros del modelo mediante el método de mínimos cuadrados (MC). No podemos continuar la serie X: aún se desconoce el nuevo precio. Sin embargo, para la serie Y ya se conoce el siguiente precio, por lo que podemos obtener su nuevo valor.
![]()
Una vez obtenido el nuevo valor de la serie Y, también podemos estimar el valor futuro de la serie X.
![]()
Después de eso, hacer una predicción del precio no supondrá ninguna dificultad. Y así es como se ve el indicador construido a partir de este modelo:

El modelo GM(0,2) es análogo a la regresión lineal. Aumentar el número de series Grey (GS) consideradas puede hacer que el modelo sea más flexible y mejorar la calidad de la predicción. Esta mejora será especialmente notable con un periodo corto del indicador.
Ahora estamos listos para pasar a la construcción del modelo GM(1,2) discreto. Combina los enfoques de los dos modelos anteriores y puede describirse mediante la fórmula:
![]()
Es decir, construimos la misma regresión lineal a partir de dos series Grey (GS). Con los parámetros obtenidos de esta regresión, podemos estimar el valor futuro del precio. Así es como se ve el indicador construido a partir de este modelo:

El enfoque discreto permite construir con bastante facilidad modelos de orden superior. Tomaré como ejemplo el modelo GM(2,1). Resolverla de la forma tradicional y estimar los valores de sus parámetros no es precisamente una tarea para cualquiera. Pero llevemos este modelo a su forma discreta; entonces, su ecuación tendrá este aspecto:
![]()
Calcular los parámetros de este modelo no será muy difícil. Para simplificar, también nos limitaremos a una predicción de una observación hacia delante. En el gráfico, el indicador tiene este aspecto:

No se puede calificar de suavizador a un indicador así. En cambio, reacciona con bastante rapidez a los cambios en la situación del mercado. Esto lo hace digno de atención. Si, por el contrario, desea obtener una versión más suave, recuerde el RGM.
En resumen, puedo decir que los modelos GM discretos son más sencillos en sus cálculos. Esa es, sin duda, su ventaja indudable. Sin embargo, esta simplicidad impone limitaciones al horizonte de predicción. En la mayoría de los casos, los modelos GM discretos solo funcionan bien a un paso hacia adelante. Los intentos de ampliar el horizonte de predicción dan lugar a complicaciones innecesarias, y es poco probable que resulten útiles en la práctica.
Conclusión
Los modelos Grey constituyen una herramienta prometedora para el modelado y la descripción de series temporales financieras. Los modelos GM pueden usarse para suavizar datos, detectar tendencias y predecir valores futuros de los precios, así como para trazar canales de tendencia.
Una ventaja indudable de los modelos GM es la posibilidad de modificarlos para adaptarlos a casi cualquier conjunto de condiciones externas. Un grave inconveniente es la complejidad matemática de algunos enfoques. En cualquier caso, los modelos GM requieren un estudio más profundo y la identificación de las variantes más adecuadas para el trader.
Se adjuntan a este artículo los siguientes programas:
| Nombre | Tipo | Descripción |
|---|---|---|
| sGM | script | El script muestra cómo construir una serie Grey (GS) y aplicar el suavizado según el modelo GM(1,1). Si ScreenShot está activado, la imagen se guarda en la carpeta Files. |
| GM11 | indicador | El indicador muestra el funcionamiento de la variante clásica del modelo GM(1,1)
|
| RGM11 | indicador | El indicador muestra la media de varias variantes del modelo GM(1,1) |
| GM11sma | indicador | Como valores de entrada, en lugar de precios, se utilizan los valores de la media móvil simple (SMA) |
| GM11Ch | indicador | El indicador construye un canal de tendencia basado en el modelo GM(1,1) |
| DGM11 | indicador | Variante discreta del modelo GM(1,1) |
| DGM02 | indicador | Análogo de la regresión lineal de dos variables |
| DGM12 | indicador | Modelo GM(1,1) discreto con dos parámetros de control |
| DGM21 | indicador | Análogo discreto del modelo de segundo orden |
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/19012
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.
Gestor de riesgos para robots de trading (Parte I): archivo include para el control de riesgos en asesores expertos
Procesos gaussianos en el aprendizaje automático (Parte 2): Implementación y prueba de un modelo de clasificación en MQL5
Particularidades del trabajo con números del tipo double en MQL4
Automatización de estrategias de trading en MQL5 (Parte 23): Recuperación por zonas con trailing stop y lógica de cestas
- 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