MetaTrader4
Sistema de Trading Automatizado 'Combo': Optimización y Enseñanza de Redes Neuronales
Hoy vamos a hablar sobre el Sistema de Trading Automatizado (STA) 'Combo' y cómo optimizarlo utilizando una red neuronal. La idea es combinar un sistema de trading básico (STB) con una red neuronal (RN) para mejorar nuestras decisiones en el mercado. ¿Por qué reinventar la rueda si ya tenemos herramientas que pueden facilitarnos la vida?
Cuando tenemos un STA que sigue tendencias, es fundamental también incorporar estrategias de contra tendencia. Esto es necesario porque un sistema pensado para operar en tendencias no podrá hacerlo en mercados laterales o reconocer retrocesos. Una opción es utilizar dos STA: uno para seguir tendencias y otro para contra tendencias, pero lo que proponemos aquí es entrenar una red neuronal que complemente nuestro sistema actual.
Para ello, diseñamos una red neuronal de dos capas, donde la capa inferior tiene dos perceptrones y la capa superior uno. La RN puede tener tres estados:
Entrar al mercado con una posición larga.
Entrar al mercado con una posición corta.
Estado indeterminado.
El tercer estado implica que el control pasa al STB, mientras que en los dos primeros, la RN nos dará señales de trading. La enseñanza de la RN se divide en tres etapas, cada una dedicada a un perceptrón. Es crucial que el STB optimizado esté presente para que los perceptrones sepan qué acciones tomar.
La enseñanza se lleva a cabo a través de un algoritmo genético, aunque este tiene sus limitaciones. Aun así, cada etapa es coherente y la optimización no toma demasiado tiempo. El primer paso es optimizar el STB.
Para no perdernos, registraremos el número de etapa en la entrada del STA identificada como "pass". Los identificadores de las entradas que corresponden con el número de etapa tendrán el mismo número que la etapa.
Comencemos con la optimización y la enseñanza de la RN. Establezcamos un depósito inicial de $1,000,000 (para evitar un margen de llamada artificial durante la optimización) y optimicemos la entrada "Balance" en las propiedades del Asesor Experto (AE) en la pestaña de "Pruebas" del Tester de Estrategias.
Vayamos a la pestaña "Entradas" de las propiedades del AE y especifiquemos el volumen de las posiciones a abrir asignando el valor 1 al identificador "lots".
La optimización se realizará bajo el modelo: "Solo precios de apertura (método más rápido para analizar la barra recién completada, solo para AEs que controlan explícitamente la apertura de barras)", ya que este método está disponible en el algoritmo del STA.
Etapa 1: Optimización del STB
Establezcamos el valor 1 para la entrada "pass". Solo optimizaremos las entradas que correspondan a la primera etapa, es decir, aquellas que terminen en 1. Por lo tanto, verificamos solo estas entradas para la optimización y desmarcamos todas las demás.
tp1 - TakeProfit del STB (optimizado entre 10 y 100, paso 1).
sl1 - StopLoss del STB (optimizado entre 10 y 100, paso 1).
p1 - Periodo de CCI utilizado en el STB (optimizado entre 3 y 100, paso 1).
Etapa 2: Enseñanza del perceptrón para posiciones cortas
Establezcamos el valor 2 para la entrada "pass". Desmarquemos las entradas que verificamos en la etapa anterior y guardemos los resultados en un archivo.
Verificamos las entradas para optimización que deben terminar en 2:
x12, x22, x32, x42 - pesos del perceptrón que reconoce posiciones cortas (optimizado entre 0 y 200, paso 1).
tp2 - TakeProfit de posiciones abiertas por el perceptrón (optimizado entre 10 y 100, paso 1).
sl2 - StopLoss de posiciones abiertas por el perceptrón (optimizado entre 10 y 100, paso 1).
p2 - Periodo de valores de diferencia de precios analizados por el perceptrón (optimizado entre 3 y 100, paso 1).
Comencemos la enseñanza usando optimización con un algoritmo genético.
Etapa 3: Enseñanza del perceptrón para posiciones largas
Establezcamos el valor 3 para la entrada "pass" y desmarquemos las entradas verificadas en la etapa anterior. Guardemos también estos resultados.
Verificamos las entradas según nuestra regla: sus identificadores deben terminar en 3:
x13, x23, x33, x43 - pesos del perceptrón que reconoce posiciones largas (optimizado entre 0 y 200, paso 1).
tp3 - TakeProfit de posiciones abiertas por el perceptrón (optimizado entre 10 y 100, paso 1).
sl3 - StopLoss de posiciones abiertas por el perceptrón (optimizado entre 10 y 100, paso 1).
p3 - Periodo de valores de diferencia de precios analizados por el perceptrón (optimizado entre 3 y 100, paso 1).
Iniciemos la enseñanza mediante optimización con un algoritmo genético.
Etapa 4: Enseñanza de la capa superior
Finalmente, establezcamos el valor 4 para la entrada "pass" y desmarquemos las entradas de la etapa anterior. Guardemos también estos resultados.
Verificamos las entradas para optimización que deben terminar en 4:
x14, x24, x34, x44 - pesos del perceptrón de la primera capa (optimizado entre 0 y 200, paso 1).
p4 - periodo de valores de diferencia de precios analizados por el perceptrón (optimizado entre 3 y 100, paso 1).
Comencemos la enseñanza usando optimización con un algoritmo genético.
Y eso es todo, la red neuronal ha sido enseñada.
El STA tiene un input adicional que no se puede optimizar, mn - Número Mágico. Este identificador garantiza que el sistema de trading no mezcle sus órdenes con las órdenes abiertas manualmente o por otros STA. El número mágico debe ser único y no coincidir con números mágicos de posiciones que no hayan sido abiertas por este Asesor Experto.
Notas finales:
El tamaño del depósito inicial se determina como el doble del drawdown absoluto, para disponer de recursos de seguridad.
El AE presentado en los códigos fuente no está optimizado.
Si necesitas reemplazar el STB integrado con el algoritmo de otro sistema de trading, debes modificar el contenido de la función basicTradingSystem().
Para evitar ingresar los valores iniciales y finales y los pasos para la optimización, puedes descargar el archivo combo.set, colocarlo en la carpeta \tester MT4 y cargarlo en las propiedades del AE en Tester.
La reoptimización del AE debe realizarse durante el fin de semana, es decir, el sábado o el domingo, pero solo si los resultados de la semana anterior fueron no rentables. La presencia de pérdidas indica que el mercado ha cambiado, y es necesaria la reoptimización. En cambio, la presencia de ganancias significa que el STA no necesita reoptimización y reconoce los patrones del mercado de manera efectiva.
2008.03.06