MSc. Cesar López Martínez
2022-10-25
Mercado FOREX
Se encarga de proveer el mecanismo para la realización de pagos entre países con distinta moneda. A través de este mercado se transfieren fondos y poder adquisitivo de una moneda a otra, mediante la determinación del tipo de cambio, que permite cambiar una moneda por otra (Schwager,2017).
Se conoce como Trading o especulación bursátil al intercambio de instrumentos financieros entre inversores con el objetivo de maximizar su beneficio en un determinado periodo de tiempo (Contreras,2019).
Trading Algorítmico
Consiste en programas informáticos que contiene un conjunto de reglas que indican el instante de entrada y salida del mercado, eliminado la intervención humana a la hora de tomar cualquier decisión (Pérez, 2019).
Hipótesis #1: La implementación de algoritmos de Machine Learning (ML) ayudan a predecir los movimientos del mercado.
Hipótesis #2: Los sistemas de trading basados en Machine Learning (ML) son rentables.
Esquema general implementación de algoritmos. Tomado de: Machine learning techniques and data for stock market forecasting: a literature review (Kumbure,2022)
Variables para algoritmos. Tomado de: Machine learning techniques and data for stock market forecasting: a literature review (Kumbure,2022)
Se recopilan datos desde el 1 Enero de 1970 hasta 26 de Septiembre de 2022 desde la plataforma Metatrader 4, para el par EURUSD en una ventana de tiempo de 4 horas. En total, se tienen 98 variables. Estos datos son operaciones exitosas, en total se tiene una base de datos con 31877 registros de operaciones con esta categoría.
| RSI1 | RSI2 | RSI3 | RSI4 | STOCH6 | MA4_6 | FORCE6 | MACD5 | HORA | TIPO |
|---|---|---|---|---|---|---|---|---|---|
| 57.4654 | 57.7569 | 57.5570 | 61.6188 | 100.0000 | 0.00018 | 0.0014 | 0.00401 | 0 | 1 |
| 48.0614 | 57.4654 | 57.7569 | 57.5570 | 93.6893 | 0.00013 | 0.0008 | 0.00284 | 0 | 1 |
| 57.7569 | 57.5570 | 61.6188 | 76.2813 | 100.0000 | 0.00019 | 0.0016 | 0.00425 | 0 | 1 |
| 57.5570 | 61.6188 | 76.2813 | 81.6090 | 96.4286 | 0.00019 | 0.0009 | 0.00388 | 0 | 1 |
| 61.6188 | 76.2813 | 81.6090 | 80.7444 | 87.6190 | 0.00015 | 0.0006 | 0.00322 | 0 | 1 |
| 60.9779 | 54.9049 | 48.0614 | 57.4654 | 28.2828 | 0.00012 | -0.0006 | 0.00107 | 0 | 1 |
Estos datos son captados, por medio de un código diseñado en lenguaje mql4 (nativo de mt4).
En primer lugar, se realiza una depuración de las variables eliminando aquellas que estén altamente correlacionadas entre si. Esta depuración reduce a 45 variables a tener en cuenta. Posteriormente, se realiza la selección final por medio de un Algoritmo Genético, este proceso se realiza utilizando el paquete del software R caret (Kuhn,2016). En total se seleccionan 10 variables.
| x |
|---|
| STOCH6 |
| MA2_1 |
| MA3_1 |
| MA4_6 |
| STD4 |
| STD5 |
| STD6 |
| MACD1 |
| CLOSE3 |
| CLOSE4 |
Se selecciona el modelo de Bosques Aleatorios o Random Forest. Se divide la base de datos en 70% para entrenar el modelo (22314 registros) y el 30% (9563 registros) para validación del mismo. La métrica para evaluar el modelo de clasificación sera la Exactitud o Accuracy y se utiliza la matriz de confusión para verificar la potencia predictiva del modelo entrenado.
En esta fase de entrenamiento, se realiza validación cruzada o cross-validation, lo que permite evitar sobreajustes. Este proceso se realizó con ayuda del paquete Caret.
| mtry | Accuracy | Kappa | AccuracySD | KappaSD |
|---|---|---|---|---|
| 2 | 0.7763838 | 0.5525221 | 0.0111509 | 0.0223563 |
| 6 | 0.7623132 | 0.5243916 | 0.0093152 | 0.0186363 |
| 10 | 0.7496306 | 0.4990018 | 0.0097487 | 0.0195365 |
Se valida el modelo entrenado con el 30% de los datos para este fin.
| 1 | 2 |
|---|---|
| 3874 | 994 |
| 1003 | 3691 |
## AUC: 0.7910871
Se muestra que es posible entrenar un modelo de Machine Learning que tenga la capacidad de estimar los movimientos del mercado FOREX.
Se desarrolló un Expert Advisor basado en el proceso mencionado. A continuación se relacionan resultados al correr el bot diseñado en una cuenta demo con capital inicial de $500 US, desde el día 27 de Septiembre hasta el día 25 de Octubre de 2022.
| Descripcion | Total |
|---|---|
| Total Operaciones | 144 |
| Operaciones Acertadas | 104 |
| Operaciones Perdidas | 40 |
Claramente se puede apreciar que existe un porcentaje de acierto del 72%. La ganancia y pérdida promedio de la herramienta es de $3.5 y $5.0 respectivamente. Esto se traduce en un ingreso de $364 y una pérdida neta de $200, lo que posiciona a la herramienta con una ganancia neta de $164. Esto corresponde a un rendimiento del 32% en aproximadamente un mes de operación.
Se demostró que existe una ruta válida y concisa para desarrollar algoritmos de Machine Learning para estimar movimientos en el mercado de FOREX. Es validada por la literatura, y es replicable lo que permite que se pueda comprobar.
De acuerdo a la ruta desarrollada, las fases mas importantes en este caso de estudio para la implementación de estas técnicas son: la captura de datos y la selección de variables.
A falta de pruebas mas extensas, se demostró que el sistema desarrollado genera un buen rendimiento en el periodo testeado. No es concluyente pero da indicios que realizando un seguimiento estricto, es posible tener un sistema estable en el tiempo.
Grupo de trabajo de RF_Trading®.