En este artículo, te hablaré sobre el MTC Combo, un sistema de trading diseñado para MetaTrader 5, que combina un sistema básico de trading con una red neuronal, y cómo puedes optimizarlo para obtener los mejores resultados.
Objetivo del EA
El objetivo del EA es crear un sistema de trading que combine un sistema básico de trading (BTS) con una red neuronal (NN). La idea es que la NN complemente al BTS realizando acciones que el primero no puede llevar a cabo. Al final, obtendremos un sistema de trading integrado y complementario.
No reinventes la rueda
No tiene sentido enseñarle a alguien a correr rápido si ya hay un coche. Lo mismo sucede con el trading: si ya tenemos un sistema que funciona, ¿por qué no usarlo?
Cuando tenemos un sistema que sigue tendencias, es crucial entrenar la red neuronal solo para estrategias de contra tendencia. Un sistema de tendencias no puede operar bien en mercados laterales ni identificar retrocesos y reversals adecuadamente. Por eso, es posible utilizar dos estrategias (tendencia y contra tendencia) en un solo gráfico o entrenar la NN para que complemente el sistema de trading.
Estructura de la Red Neuronal
Hemos desarrollado una red neuronal de dos capas que consta de dos perceptrones en la capa inferior y uno en la capa superior. La red neuronal puede estar en uno de tres estados:
- Entrando en largo
- Entrando en corto
- Indefinido
En el tercer estado, el control pasa al BTS, mientras que los señales de trading son generadas por la red en los dos primeros estados.
Entrenamiento de la Red Neuronal
El entrenamiento de la NN se divide en tres etapas. En cada etapa, se entrena un perceptrón y se utiliza el BTS optimizado para que los perceptrones comprendan sus capacidades.
La formación de los perceptrones se lleva a cabo mediante un algoritmo genético, que tiene la limitación de un número reducido de parámetros a seleccionar. Sin embargo, cada etapa de entrenamiento es lógica y la red neuronal no es demasiado grande, por lo que el proceso de optimización se realiza en un tiempo razonable.
Preparativos para la Optimización de la NN
Comencemos con los preparativos para la optimización y el entrenamiento de la NN. Establece el depósito inicial en el tester a $100 (para evitar un margen de llamada artificial durante la optimización), optimiza el parámetro de Balance + max Sharpe Ratio y selecciona el tipo de optimización Algoritmo Genético Rápido.
Ahora, dirígete a la pestaña de Inputs de las propiedades del EA y establece el tamaño del lote de las posiciones abiertas asignando el valor de 0.01 al ID lots.
La optimización se realizará según el modelo de Solo precios de apertura. Este método se ha seleccionado por su alta velocidad y el algoritmo del EA cuenta con la gestión de nuevas barras.
Primera Etapa: Optimización del BTS
Establece el pass en 1. Optimiza solo los inputs correspondientes a la primera etapa con todos sus IDs terminando en uno. Por lo tanto, establece las marcas de optimización solo en ellos y quita las marcas de los demás parámetros.
- tp1 - Toma de ganancias del BTS. Optimizado con valores de 100 a 1000 con un paso de 10.
- sl1 - Stop loss del BTS. Optimizado con valores de 100 a 1000 con un paso de 10.
- p1 - Periodo del oscilador CCI aplicado en el BTS. Optimizado con valores de 3 a 100 con un paso de 1.
Inicia el entrenamiento mediante la optimización del algoritmo genético.
Segunda Etapa: Entrenamiento del Perceptrón de Corto
Establece el input 'pass' en 2. Quita las marcas de optimización establecidas en la etapa anterior y guarda los inputs obtenidos durante esa etapa en un archivo.
Establece marcas de optimización para los parámetros de la segunda etapa (IDs que terminan en dos):
- x12, x22, x32, x42 - proporciones de peso del perceptrón que reconoce posiciones cortas. Optimizado con valores de 0 a 200 con un paso de 1.
- tp2 - Toma de ganancias de posiciones abiertas por el perceptrón. Optimizado con valores de 100 a 1000 con un paso de 10.
- sl2 - Stop loss de posiciones abiertas por el perceptrón. Optimizado con valores de 100 a 1000 con un paso de 10.
- p2 - Periodo de diferencias de precios analizadas por el perceptrón. Optimizado con valores de 3 a 100 con un paso de 1.
Inicia el entrenamiento mediante la optimización del algoritmo genético.
Tercera Etapa: Entrenamiento del Perceptrón de Largo
Establece el input 'pass' en 3. Quita las marcas de optimización de la etapa anterior y guarda los inputs obtenidos en un archivo.
Establece marcas de optimización para los parámetros de la tercera etapa (IDs que terminan en tres):
- x13, x23, x33, x43 - proporciones de peso del perceptrón que reconoce posiciones largas. Optimizado con valores de 0 a 200 con un paso de 1.
- tp3 - Toma de ganancias de posiciones abiertas por el perceptrón. Optimizado con valores de 100 a 1000 con un paso de 10.
- sl3 - Stop loss de posiciones abiertas por el perceptrón. Optimizado con valores de 100 a 1000 con un paso de 10.
- p3 - Periodo de diferencias de precios analizadas por el perceptrón. Optimizado con valores de 3 a 100 con un paso de 1.
Inicia el entrenamiento mediante la optimización del algoritmo genético.
Cuarta Etapa: Entrenamiento de la Capa Superior
Establece el input 'pass' en 4. Quita las marcas de optimización de la etapa anterior y guarda los inputs obtenidos en un archivo.
Establece marcas de optimización para los parámetros de la cuarta etapa (IDs que terminan en cuatro):
- x14, x24, x34, x44 - proporciones de peso del perceptrón de la primera capa. Optimizado con valores de 0 a 200 con un paso de 1.
- p4 - Periodo de diferencias de precios analizadas por el perceptrón. Optimizado con valores de 3 a 100 con un paso de 1.
Inicia el entrenamiento mediante la optimización del algoritmo genético.
Y eso es todo. La red neuronal está entrenada.
El EA también presenta un input no optimizable mn - número mágico que permite al sistema distinguir sus propias órdenes entre las abiertas manualmente o por otros EAs. Este número debe ser único.
Consejos Finales
- El tamaño del depósito inicial se define como un drawdown absoluto multiplicado por dos (margen de seguridad).
- El código fuente del EA no ha sido optimizado.
- Cambia el contenido de la función basicTradingSystem() si deseas reemplazar el BTS incorporado por otro algoritmo de trading.
- Reoptimiza el EA durante los fines de semana si los resultados de la semana anterior fueron no rentables. Las pérdidas indican cambios en el mercado y la necesidad de reoptimización. Si el EA es rentable, no es necesario reoptimizar ya que el robot reconoce patrones del mercado bastante bien.
Publicaciones relacionadas
- Señales de Trading con MQL5: Patrones de Estrellas y MFI
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Dark Cloud Cover y Piercing Line
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Estrellas de la Mañana/Atardecer y CCI
- Cómo Crear un Asesor Experto con MQL5: Señales de Trading Basadas en Estrellas y Estocástico
- MQL5 Wizard: Crea un Asesor Experto con Señales de Bullish Harami y Bearish Harami + CCI