Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

STA Сombo - Asesor Experto para MetaTrader 5

Publicado por:
Vladimir Karputov
Visualizaciones:
1108
Ranking:
(33)
Publicado:
2017.01.18 14:23
Actualizado:
2018.06.27 15:57
MTC Сombo v2.mq5 (26.24 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Muestro la descripción del autor con mis pequeños retoques, ya que ahora en los pares de divisas se utilizan «cinco dígitos».

El planteamiento de la tarea para este sistema de tranding automático (STA) es el siguiente:

Supongamos que tenemos un sistema de trading básico (STB). Es necesario crear y enseñar a una red neuronal (RN) de tal manera que sea capaz de hacer lo que no puede hacer el STB. Como resultado, hay que obtener un sistema de trading que se compone de dos sistemas combinados y complementarios: STB y RN.

O como se dice: “no hace falta inventar la bicicleta si ya está inventada”. ¿Para que tratar de enseñar a correr más rápido a alguien si existe el coche, o volar si existe el helicóptero? 

Si tenemos un sistema de trading tendencial, sólo es necesario enseñar la estrategia contra tendencia a la red neuronal. Porque el sistema está ideado para las tendencias que no son capaces de operar adecuadamente en las tendencias laterales, distinguir retrocesos o reversas. Claro que se puede coger dos STA -un sistema que sigue la tendencia y el otro que va en contra- y adjuntarlos al mismo gráfico. Pero por otro lado, también se puede hacer que la red neuronal aprenda a completar algún sistema de trading.

Para eso ha sido diseñada la red neuronal de dos capas que se compone de dos perceptrones de la capa inferior y un perceptrón en la capa superior. 
La salida de la red neuronal tiene tres estados:

  1. Entrada en el mercado con una posición larga
  2. Entrada en el mercado con una posición corta
  3. Estado indeterminado

En realidad, el tercer estado es el traspaso del control al STB, mientras que en dos primeras situaciones, las señales comerciales se generan por la red neuronal.

El aprendizaje de la red neuronal se divide en tres fases, en cada una de las cuales estudia un perceptrón. En cualquier fase está presente obligatoriamente el STB optimizado, para que los perceptrones sepan de qué es capaz.

La enseñanza separada de los perceptrones por el algoritmo genético está relacionada con el defecto de este mismo algoritmo, es que el número de parámetros de entrada que se buscan con su ayuda está limitado. Además, cada fase de la enseñanza es consecuente y el tamaño de la red neuronal no es muy grande, por eso el tiempo que dura la optimización es bastante razonable.

Pero la primera fase que precede la enseñanza de la RN consiste en la optimización del STB.

Para que no haya confusión, el número de la fase se registra en el parámetro de entrada del STA con el identificador pass. Y los identificadores de los parámetros de entrada correspondientes al número de la fase se terminan con la cifra igual a este mismo número.

Pues bien, vamos con la preparación previa de la optimización y con la enseñanza de la RN.

En el Probador de Estrategias, vamos a establecer el depósito inicial de $100 (para no crear el margin call artificial durante la optimización), el parámetro a optimizar es Balance + max Sharpe Ratio", tipo de optimización es "Fast genetic algorithm". 

Vamos a la pestaña «Parámetros de entrada» de las propiedades del EA. 
Establecemos el tamaño del lote de las posiciones a abrir, asignando el valor 0.01 al identificador “lots”.

La optimización va a realizarse de acuerdo con el siguiente modelo: "Open prices only". Este método ha sido elegido debido a su alta velocidad, y porque en el algoritmo del STA hay control de barras nuevas.

Fase 1 de la optimización. Optimización de STB:

Establecemos el valor 1 para el parámetro “pass”. 
Vamos a optimizar sólo los parámetros de entrada correspondientes a la primera fase, es decir todos los identificadores que se acaban con 1. Entonces, marcamos sólo para ellos los parámetros de la optimización, los demás parámetros desmarcamos.

tp1 - TakeProfit del STB. Se optimiza con valores de 100 a 1000 con el paso 10
sl1 - Stop Loss del STB. Se optimiza con valores de 100 a 1 000 con el paso 10
p1 - período del oscilador CCI que se aplica en STB. Se optimiza con los valores en el rango de 3 a 100 con el paso 1.

Iniciamos el aprendizaje a través de la optimización con el algoritmo genético (AG). 

Fase 2. La enseñanza del perceptrón responsable de las posiciones cortas:

Establecemos el valor 2 para el parámetro “pass” (es decir, correspondiente al número de la fase). 
Desmarcamos los parámetros marcados en la fase anterior. Por si acaso, guardamos los parámetros de entrada obtenidos en la fase anterior.

Marcamos los parámetros de la fase 2, es decir los identificadores que se acaban con 2:

x12, x22, x32, x42 - coeficientes de peso del perceptrón que reconoce las posiciones cortas. Se optimiza con los valores en el rango de 0 a 200 con el paso 1. 
tp2 - Take Profit de las posiciones que se abren por el perceptrón. Se optimiza con valores de 100 a 1000 con el paso 10
sp2 - Stop Loss de las posiciones que se abren por el perceptrón. Se optimiza con valores de 100 a 1000 con el paso 10
p2 - período de los valores de la diferencia de precios que se analiza por el perceptrón. Se optimiza con los valores en el rango de 3 a 100 con el paso 1.

Iniciamos el aprendizaje a través de la optimización con el algoritmo genético (AG).

Fase 3. La enseñanza del perceptrón responsable de las posiciones largas:

Establecemos el valor 3 para el parámetro “pass” (es decir, correspondiente al número de la fase). 
Desmarcamos los parámetros marcados en la fase anterior. 
Por si acaso, guardamos en el archivo los parámetros de entrada obtenidos en la fase anterior. 

Marcamos los parámetros para la fase 3, es decir los identificadores que se acaban con 3:

x13, x23, x33, x43 - coeficientes de peso del perceptrón que reconoce las posiciones largas. Se optimiza con los valores en el rango de 0 a 200 con el paso 1. 
tp3 - Take Profit de las posiciones que se abren por el perceptrón. Se optimiza con valores de 100 a 1000 con el paso 10
sp3 - Stop Loss de las posiciones que se abren por el perceptrón. Se optimiza con valores de 100 a 1000 con el paso 10
p3 - período de los valores de la diferencia de precios que se analiza por el perceptrón. Se optimiza con los valores en el rango de 3 a 100 con el paso 1.

Iniciamos el aprendizaje a través de la optimización con el algoritmo genético (AG). 

Fase 4 (final).

Enseñanza de la primera capa, es decir del perceptrón que se encuentra en la capa superior:

Establecemos el valor 4 para el parámetro “pass” (es decir, correspondiente al número de la fase). 
Desmarcamos los parámetros marcados en la fase anterior. 
Por si acaso, guardamos en el archivo los parámetros de entrada obtenidos en la fase anterior.

Marcamos los parámetros para la fase 4, es decir los identificadores que se acaban con 4:

x14, x24, x34, x44 - coeficientes de peso del perceptrón de la primera capa. Se optimiza con los valores en el rango de 0 a 200 con el paso 1. 
p4 - período de los valores de la diferencia de precios que se analiza por el perceptrón. Se optimiza con los valores en el rango de 3 a 100 con el paso 1.

Iniciamos el aprendizaje a través de la optimización con el algoritmo genético (AG). 

Ya está, ya hemos enseñado a la red neuronal.

El STA tiene otro parámetro de entrada mn no optimizado. Se trata del número mágico: identificador de la posición, para que el sistema de trading no confunda sus órdenes con las órdenes abiertas manualmente o por otros STA. El número mágico tiene que ser único y no coincidir con los números mágicos de las posiciones que no han sido abiertas por este EA.

P.S.

  • El tamaño del depósito inicial se determina como la reducción absoluta multiplicada por dos, es decir con un recurso de seguridad. 
  • En el código fuente, el EA no está optimizado. 
  • Si surge la necesidad de reemplazar el STB built-in con el algoritmo de otro sistema de trading, hay que modificar el contenido de la función basicTradingSystem().
  • La reoptimización del EA se ejecuta el fin de semana, es decir el sábado o el domingo, pero sólo en el caso si los resultados de la semana anterior han sido no rentables. La presencia de pérdidas supone que el mercado ha cambiado, lo que requiere la reoptimización. La presencia de ganancias indica en que el STA no necesita la reoptimización y reconoce los patrones del mercado bastante bien.


Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/16762

MFI_Histogram_Round_HTF MFI_Histogram_Round_HTF

El indicador MFI_Histogram_Round permite cambiar el período de tiempo del indicador en los parámetros de entrada.

Exp_GTakeProfit Exp_GTakeProfit

El EA para cerrar todas las posiciones si los beneficios totales de estas posiciones han superado el límite de del beneficio fijado en las variables de entrada.

T3 Velocity T3 Velocity

Versión del indicador Velocity en el formato T3.

RSI Floating Levels RSI Floating Levels

Ha sido añadido el llenado de las zonas de sobrecompra y sobreventa.