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

Sistema de trading automático "Сombo" - Asesor Experto para MetaTrader 4

Visualizaciones:
1510
Ranking:
(23)
Publicado:
2016.03.30 11:37
Combo_Right.mq4 (4.59 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
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. Y 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, en las propiedades del EA (la pestaña “Prueba”), vamos a establecer el depósito inicial de $1 000 000 (para no crear el margin call artificial durante la optimización), el parámetro a optimizar es “Balance”, y activamos el algoritmo genético.

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 al identificador “lots” el valor 1.

La optimización va a realizarse de acuerdo con el siguiente modelo: “Por los precios de apertura (método rápido en las barras formadas, sólo para los EAs con el control explícito de la apertura de las barras)”, ya que este control está presente en el algoritmo de STA.

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 los valores en el rango de 10 a 100 con el paso 1.
sl1 - Stop Loss del STB. Se optimiza con los valores en el rango de 10 a 100 con el paso 1.
p1 - período de CCI que se aplica en STB. Se optimiza con los valores en el rango de 3 a 100 con el paso 1.


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 los valores en el rango de 10 a 100 con el paso 1.
sp2 - Stop Loss de las posiciones que se abren por el perceptrón. Se optimiza con los valores en el rango de 10 a 100 con el paso 1.
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 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 los valores en el rango de 10 a 100 con el paso 1.
sp3 - Stop Loss de las posiciones que se abren por el perceptrón. Se optimiza con los valores en el rango de 10 a 100 con el paso 1.
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 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 contenidi de la función basicTradingSystem().
  • Para no introducir manualmente los valores iniciales/finales y los tamaños de los pasos de la optimización, se puede usar el archivo hecho combo.set, colocarlo en la carpeta \tester MT4 y cargarlo en las propiedades del Probador de Estrategias.

  • 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.
Por desgracia, la versión inicial de los códigos fuente contiene un error desagradable: una de las llaves derechas no estaba en su sitio, con lo cual la fase 4 se enseñaba y se interpretaba de forma incorrecta. Ruego a todos quien ha descargado el archivo Combo.mq4 actualice hasta la versión Combo_Right.


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

    MTF BB-Squeeze MTF BB-Squeeze

    Indicador BB-Squeeze. Versión modificada. Para su trabajo hace falta el indicador bbsqueeze.

    up3x1_premium_v2M up3x1_premium_v2M

    Este sistema de trading automático está destinado para trabajar con el par de divisas eur/usd en el gráfico H1. Excelentes resultados.

    TREND_alexcud TREND_alexcud

    Indicador de múltiples períodos de tiempo. Muestra la dirección de la tendencia de varios gráficos temporales en una ventana separada.

    TZ-Pivot TZ-Pivot

    Indicador de los puntos pivote de día con la visualización precisa e informativa en el gráfico.