English Русский 中文 Deutsch 日本語 Português
Constructor gráfico de estrategias. Creando robots comerciales sin programación

Constructor gráfico de estrategias. Creando robots comerciales sin programación

MetaTrader 5Probador | 3 septiembre 2018, 08:54
5 010 2
Andrey Barinov
Andrey Barinov

Contenido

Introducción

El trading algorítmico y la posibilidad de comprobar las ideas comerciales en los datos históricos en el Probador de Estrategias son las funciones más importantes de la plataforma MetaTrader 5.

Pero para poder usar la estrategia comercial en modo del trading automático en el gráfico real o en el Probador, hay que programar y compilarla en el archivo ejecutable del Asesor Experto (EA). Sin embargo, no cada trader posee habilidades de programación o recursos para su aprendizaje. 

En este artículo, se presenta la solución del problema, se trata del constructor gráfico de estrategias Mission Automate. Con la ayuda de esta herramienta, cualquier trader puede automatizar su negociación y verificar la estrategia en datos históricos, sin tener que escribir ni una sola línea del código. A continuación, se encuentran los enlaces a las versiones gratuitas del programa. La entrega se compone de 5 EAs gratuitos a base de las estrategias más populares. Están implementados en forma de plantillas y pueden ser usados como base para otras estrategias.

Para MetaTrader4: Mission Automate Demo MT4

Para MetaTrader5: Mission Automate Demo MT5

Aunque el nombre de la versión gratuita incluye la palabra Demo, ella dispone de todas las funcionalidades de la versión completa y no contiene limitaciones significativas. Tiene sólo algunas «inconvenientes». Los enlaces a las versiones de pago del programa se encuentran en las descripciones de las versiones gratuitas en sus páginas correspondientes en el Market.

Este constructor de estrategias fue diseñado para los traders «no programadores» y puede ser útil para un amplio círculo de usuarios. Cualquier trader puede crear los robots comerciales totalmente funcionales, después de gastar un poco de tiempo para familiarizarse con él y conocer los principios de su trabajo.

En este artículo, han sido consideradas las funcionalidades principales del constructor a base de los ejemplos de la creación de los EAs reales.

Características del constructor

El programa Mission Automate permite transformar los ideas en los robots comerciales hechos. La interfaz gráfica intuitiva con la tecnología "drag and drop" hace que el proceso sea fácil y comprensible. La creación de un EA parece al montaje de un esquema a base de los bloques existentes (elementos) y su conexión con enlaces lógicos. Una vez creado el esquema, se puede ejecutarlo inmediatamente, o bien convertirlo automáticamente en el código en MQL5 para su uso posterior en el Probador de Estrategias o en los gráficos de tiempo real.

Voy a nombrar sólo una parte de los elementos disponibles en el constructor.

  • Todos los indicadores estándar de la plataforma MetaTrader.
  • Indicadores personalizados.
  • Apertura / cierre / modificación de la posición (grupo de posiciones).
  • Colocación / cancelación / modificación de una orden pendiente (grupo de órdenes).
  • Gestión de transacciones: calculador del lote, punto muerto (breakeven), trailing stop.
  • Acceso al historial de trading (información sobre las transacciones cerradas).
  • Elementos para obtener diferente información sobre el historial de precios.
  • Datos de los últimos ticks para diferentes instrumentos.
  • Varias operaciones aritméticas y transformaciones de precios.
  • Operaciones lógicas.
  • Variables / conmutadores.
  • Operaciones con los datos de la hora.
  • Diferente información sobre los instrumentos comerciales.
  • Información sobre la cuenta (balance, equidad, margen libre, etc.).
  • Notificaciones: Alert, Registro, Push y comentario en el gráfico.
  • Elementos para crear los parámetros de entrada del EA que están visibles en sus configuraciones y pueden ser optimizados en el Probador de Estrategias.

Un conjunto grande de elementos forma una enorme cantidad de posibles combinaciones y permite crear diversos tipos de robots comerciales y utilizades. A continuación, se muestra una lista incompleta de lo que puede ser creado con la ayuda del constructor gráfico Mission Automate.

  • Asesores Expertos basados en los indicadores técnicos.
  • Estrategias a base de Price Action.
  • Asesores Expertos basados en los patrones de velas.
  • Estrategias basadas en los niveles de soporte y resistencia.
  • Diferentes tipos de EAs de cuadrícula.
  • Sistemas con el uso de los métodos de Martingale.
  • Utilidades para controlar posiciones abiertas.
  • Sistemas de notificaciones.
  • Asistentes para el control de posiciones y money management.

En el constructor y en este artículo, las palabras transacción y posición se usan como sinónimos. La transacción/posición puede ser actual , es decir, no cerrada, o histórica, o sea, ya cerrada en el pasado. La palabra orden en el texto debe leerse como «orden pendiente». Una orden puede convertirse en una transacción, o puede cancelarse y pasar al historial.

Visión global

En general, el proceso de la transformación de una idea en el robot comercial se compone de varias etapas.

  1. Formación de una estrategia comercial en la mente del trader, es decir, el trabajo creativo.
  2. Formulación de la estrategia como un conjunto de reglas «en papel», es decir, formalización de la estrategia o preparación de la tarea técnica.
  3. Transformación de estas reglas en el código de máquina y archivo ejecutable del EA, es decir, programación del EA.

La mayoría de los traders pueden realizar con éxito los pasos №1 y №2 por sí mismos. El producto descrito en este artículo permite ejecutar el paso №3, lo que hace que el trading algorítmico esté al alcance de cualquier trader.

El constructor Mission Automate permite crear sus propias estrategias «desde cero» o a base de una de las plantillas/ejemplos existentes, lo que es mucho más fácil.

En el vídeo de abajo, puede observar el proceso completo de la creación del EA «desde cero». En este ejemplo, se crea la estrategia clásica a base de dos medias móviles.

En el vídeo puede ver los siguientes pasos (todos ellos estarán descritos al detalle a continuación).

  • Construcción del esquema usando los elementos.
  • Conexión de los elementos con enlaces lógicos.
  • Configuración de los parámetros de los elementos y enlaces.
  • Generación automática del archivo .mq5 del EA.
  • Compilación del código y obtención del archivo .mq5 ejecutable.
  • Inicio y simulación del EA en el Probador de Estrategias.


Las estrategias se forman de los bloques / módulos. Estos bloques se llaman elementos.

Todos los elementos disponibles se encuentran en el panel de elementos.

Los elementos pueden conectarse entre sí con enlaces lógicos.

Las combinaciones de los elementos y enlaces más frecuentes pueden guardarse en forma de encabezados.

Todos los encabezados creados se encuentran en el panel de encabezados.

Los elementos se arrastran usando la tecnología "drag and drop".

Un grupo de los elementos y enlaces forman un esquema

Se puede usar una plantilla para crear el esquema.

Todas las plantillas disponibles se encuentran en el panel de plantillas.

Vista general


Podemos crear un nuevo esquema totalmente «desde cero», o bien usando una de las plantillas existentes.

Para crear el esquema a base de una plantilla, hay que seleccionar la plantilla correspondiente en el panel y arrastrarla al área de trabajo. Si hace clic en el icono de la plantilla, aparece su descripción breve.

Una vez creado el esquema, su icono aparece en el panel de esquemas. Los iconos de esquemas sirven para acceder rápidamente a las posibles acciones con el esquema. El panel del control del esquema aparece si hace un clic en el icono. Si hace doble clic en el icono, el esquema seleccionado pasará al centro de la pantalla. A cada esquema se le puede asignar su nombre. Usted puede desplazar libremente el esquema por el área de trabajo.

Creando el esquema

Para añadir nuevos elementos al esquema, es necesario arrastrarlos desde el panel de elementos y colocarlos en él.

Si arrastra el elemento desde el panel al espacio libre, se creará un nuevo esquema que va a contener sólo este elemento. A cada elemento se le puede asignar su nombre. 

Al hacer clic en el elemento, aparece el panel de sus ajustes. Se puede modificar los valores de los parámetros del elemento, o establecer un valor por defecto. Aparte de los ajustes de los parámetros, tiene disponibles las opciones para clonar el elemento, eliminarlo, resetear los ajustes y para acceder a la descripción breve del elemento y sus parámetros.

Elementos

Si hace clic en el elemento en el panel de elementos, también se abrirá la ventana de ajustes. Además, si modifica los parámetros para el elemento en el panel, van a usarse a continuación para todas nuevas copias de este elemento.

Los elementos pueden ser divididos en tres grupos:

  1. Los elementos para realizar ciertas acciones (apertura de posiciones nuevas, notificaciones, modificación de posiciones existentes, etc.) cuando se cumplen determinadas condiciones. La condición necesaria para realizar la acción se llama trigger (disparador).
  2. Elementos-objetos (tick, barra, símbolo, posición, orden pendiente, indicador). Primero, hay que formar el objeto y configurar sus parámetros, y sólo después de eso, se puede obtener información sobre él. 
  3. Elementos para obtener lainformación sobre el objeto (precios actuales, información sobre el estado de la cuenta, historial de trading, etc.).

Los parámetros de los elementos y datos sobre los objetos pueden tener tipos diferentes. Por ejemplo, las cotizaciones de las divisas tienen el tipo del número decimal, mientras que el comentario de la posición se establece en forma de la cadena (string). El número de la barra tiene el tipo del número entero , mientras que el momento de su apertura tiene el tipo de la hora

Los elementos pueden conectarse con enlaces lógicas. El enlace transfiere los datos de un elemento a otro.

Para crear un enlace nuevo, hay que «tirar» del borde del elemento.

Conexión de elementos

La imagen de arriba muestra qué apariencia tendría una utilidad que avisa sobre la llegada de una barra nueva.

Los enlaces pueden conectar sólo los elementos y parámetros del mismo tipo, o de los tipos que se transforman uno en otro sin perder la información.

Algunas acciones pueden aplicarse al grupo de elementos.

Para crear un grupo de elementos, hay que seleccionar una sección del esquema manteniendo pulsada la tecla Ctrl. Todos los elementos que entran en esta zona serán seleccionados. El elemento se selecciona también si hace clic en él manteniendo pulsada la tecla Ctrl. 

Al hacer clic en el elemento que forma parte del grupo seleccionado, aparece la ventana de los ajustes del grupo de elementos. Usted puede clonar, eliminar o guardar el grupo seleccionado. Además de eso, se puede crear una plantilla compuesta de los elementos del grupo.Nueva plantilla aparecerá en el panel de plantillas y estará disponible para ser añadida a nuevas esquemas. Dentro se puede cambiar los parámetros de elementos.

Plantillas

El resto de la funcionalidad del programa será considerado a base de los ejemplos de la construcción de los EAs reales.

Ejemplo №1: Asesor Experto «Intersección de medias móviles»

Vamos a considerar la estrategia comercial clásica basada en la intersección de dos Medias Móviles.

La estrategia puede ser descrita resumidamente de la siguiente manera.

Compramos cuando la media móvil rápida (MA) cruza la MA lenta de abajo arriba. Vendemos cuando la MA rápida cruza la MA lenta de arriba abajo. Cerramos las posiciones cuando aparece una señal opuesta, así como, usando Stop Loss y Take Profit.

Ahora describiremos la estrategia de una manera más formal, como un conjunto de reglas/condiciones. 

  • Construimos las medias móviles por los precios de cierre de las velas. Trabajamos sólo con las barras formadas. Todas las acciones comerciales se realizan en la apertura de la barra después de la aparición de la señal.
  • Los períodos de la media móvil rápida y lenta tienen que ajustarse en los parámetros de entrada de entrada del EA.
  • La señal de compra (cierre de ventas) es el estado cuando la MA rápida estaba por debajo de la lenta en la barra anterior, y se ha puesto por encima de ella en la barra actual.
  • La señal de venta (cierre de compras) es el estado cuando la MA rápida estaba por encima de la lenta en la barra anterior, y se ha puesto por debajo de ella en la barra actual.
  • Sólo una posición puede estar abierta al mismo tiempo.
  • Todas las transacciones deben tener el tamaño fijo del lote. El tamaño del lote tiene que ajustarse en los ajustes de entrada del EA.
  • Los valores de Stop Loss y Take Profit tienen que ajustarse en los parámetros de entrada del EA.
  • El EA tiene que trabajar sólo con el instrumento en cuyo gráfico está colocado. El timeframe para el cálculo de indicadores tiene que corresponder al período del gráfico actual.
  • Tiene que haber la posibilidad del trabajo de varios EAs en la misma cuenta a través del identificador único Magic Number. Este parámetro tiene que ajustarse en los ajustes de entrada del EA.
  • Tiene que haber la posibilidad de especificar el comentario personalizado para las posiciones del EA.

Las reglas arriba descritas parecen mucho a una tarea técnica. Vamos a empezar el desarrollo de este robot comercial a través del constructor gráfico.

En la tarea se especifica que los períodos de la media móvil rápida y lenta tienen que ajustarse en los parámetros de entrada del EA.

Para eso sirve el grupo de elementos que se llama Parámetro de Entrada. Para diferentes tipos de parámetros de entrada existe su propio elemento.

El período del indicador es un número entero. Vamos a usar el elemento correspondiente. Creamos un esquema nuevo. Añadimos dos elementos, les damos los nombres y ajustamos sus valores. Establecemos el valor predefinido igual a 14 para la MA rápida, y 28 para la lenta. Luego, se puede optimizar estos valores en el Probador de Estrategias.

Períodos de las medias móviles

Nuestra estrategia usa un indicador estándar, pero con dos períodos diferentes.

Necesitaremos dos elementos Moving Average.

Los añadimos a nuestro esquema y conectamos los elementos de los períodos del indicador con los parámetros Período del Indicador. Ahora el esquema tendrá el siguiente aspecto:

Indicadores

Por defecto, los indicadores utilizan el símbolo y período del gráfico actual. Es precisamente lo que necesitamos. El período para el cálculo de los indicadores va a tomarse desde los elementos correspondientes.

Ahora, para determinar las condiciones de las señales de compra/venta, necesitamos obtener por dos valores para cada uno de los indicadores: en la barra anterior y en la barra actual.

Para obtener los valores del indicador, se usa el elemento Indicator Value. Añadimos 4 elementos de este tipo a nuestro esquema y creamos los enlaces correspondientes.

Las barras se enumeran del actual al anterior. La barra actual que aún no está formada tiene el número 0. El número 1 se asigna a la barra anterior formada, el número 2, a la barra que le precede.

En nuestra estrategia, se usan sólo las barras formadas, por eso, vamos a usar el número 1 para la barra actual, y el número 2 para la anterior. Establecemos los valores correspondientes para los cuatro elementos.

Valores de las medias móviles

Ahora hay que comparar los valores de los indicadores y comprobar las condiciones para realizar las operaciones comerciales.

Para comparar los números, se usa el elemento Compare. Este elemento produce el valor «true» si dos números satisfacen la relación especificada, el valor «false» si no es así. Añadimos dos elementos de este tipo a nuestro esquema. En el primero, vamos a verificar si la MA rápida estaba por encima de la lenta en la barra anterior. En el segundo, verificamos si la MA rápida se ha puesto por encima de la lenta en la barra actual. Creamos los enlaces correspondientes y configuramos los parámetros para dos elementos de comparación.

Comparación de valores

La señal de compra es la satisfacción simultánea de dos condiciones: 

  • la MA rápida NO estaba por encima de la lenta en la barra anterior
  • la MA rápida se ha puesto por encima de la lenta en la barra actual.

Para verificar el cumplimiento simultáneo de estas condiciones, vamos a usar el elemento lógico AND. Este elemento produce el valor «true» si TODAS las condiciones se han cumplido, y el valor «false» si por lo menos una de ellas no se ha cumplido.

Añadimos dos elementos de este tipo a nuestro esquema y conectamos los dos elementos Compare a cada uno de ellos.

Aparte de eso, tendremos que «invertir» algunos de los enlaces. El elemento Compare genera «true» si la MA rápida estaba por encima de la MA lenta en la barra anterior, pero nosotros tenemos que verificar que ella NO estaba por encima. Por tanto, vamos a invertir el valor de salida ajustando los enlaces correspondientes en los parámetros de los elementos. Los enlaces invertidos se marcan con color rojo en el esquema.

Señales

Proseguimos con la implementación de las operaciones comerciales. Antes de abrir una posición, tenemos que verificar el estado actual e ignorar la señal si la posición ya está abierta en la dirección necesaria, o cerrar la posición si está abierta en la dirección opuesta. Para eso, tenemos que saber el número de posiciones de compra y venta abiertas en este mosmento.

Para acceder a la información sobre las posiciones, usamos el elemento Trades Group. Este elemento forma un grupo de transacciones que satisfacen ciertas condiciones. Las transacciones pueden filtrarse por diferentes parámetros, tales como, el símbolo, magic, comentario, etc.

Necesitamos uno de estos elementos para las compras y uno para las ventas. Añadimos estos dos elementos al esquema y los configuramos de la manera correspondiente:

Grupos de transacciones

Para obtener la información sobre un grupo de transacciones (necesitamos saber su número), usaremos el elemento Trades Group Information (Integer). Añadimos dos elementos de este tipo a nuestro esquema. Vamos a comparar el valor obtenido con cero usando el elemento Compare

Número de transacciones

Ahora, necesitamos formar las condiciones finales: disparadores para ejecutar operaciones comerciales. Cada disparador contiene dos condiciones.

  1. Disparador para abrir una compra — (1) No hay posiciones de compra abiertas y (2) hay una señal de compra
  2. Disparador para abrir una venta — (1) No hay posiciones de venta abiertas y (2) hay una señal de venta
  3. Disparador para cerrar una compra — (1) Hay una posición de compra y (2) hay una señal de venta
  4. Disparador para cerrar una venta — (1) Hay una posición de venta y (2) hay una señal de compra

Como es necesario verificar el cumplimiento de varias condiciones, vamos a usar de nuevo los elementos lógicos AND, uno para cada disparador. Añadimos 4 elementos de este tipo a nuestro esquema y creamos los enlaces correspondientes.

Obsérvese que para los disparadores de apertura de posiciones, los enlaces de los elementos Compare tienen que ser invertidos.

Disparadores

Los disparadores están hechos. Nos queda añadir los elementos comerciales.

Para abrir una posición, se usa el elemento Open Trade. Necesitamos uno para abrir las compras y otro para abrir las ventas.

Para cerrar las transacciones, se usa el elemento Close Trades Group (Cerrar grupo de transacciones). Aquí también necesitamos uno para cerrar las ventas y otro para cerrar las compras.

Aparte de los disparadores, también es necesario conectar los propios grupos de transacciones a los elementos del cierre de transacciones. Después de añadir estos elementos y crear los enlaces correspondientes, nuestro esquema será el siguiente:

Elementos comerciales

La lógica comercial del EA está completamente lista. Nos queda sólo hacer que el lote comercial, magic, comentario de transacciones y los valores Stop Loss/Take Profit puedan ajustarse desde los parámetros de entrada del EA. Para eso, necesitaremos de nuevo los elementos del grupo Input Parameters (Parámetros de entrada).

El lote comercial se establece con el número decimal, el comentario con una cadena, el magic, stop loss y take profit con númerosenteros. Añadimos estos elementos al esquema, y los adjuntamos a los parámetros correspondientes de los elementos comerciales.

Apariencia final del esquema

El esquema está listo. Ahora es necesario crear el archivo del EA. 

Si es necesario que los parámetros de entrada vayan en una orden determinada, se puede usar la opción Arrange Inputs (Ordenar parámetros de entrada). Aparecerá la lista de todos los elementos que responden de los parámetros de entrada, y se puede moverlos arriba/abajo especificando su orden.

Ordenamiento de parámetros de entrada

Estamos preparados para generar el código y crear el archivo del EA. El proceso entero se muestra en la imagen de abajo y se compone de los siguientes pasos.

  1. Generación del archivo del EA usando el menú del navegador de archivos del programa.
  2. Apertura del archivo del código fuente del EA (.mq5) en el programa MetaEditor.
  3. Compilación del EA y obtención del archivo del EA (.ex5).

Creando el archivo del EA

Después de una compilación con éxito, el archivo del EA con la extensión .ex5 (con el mismo nombre que el archivo del código fuente) aparecerá en la misma carpeta donde se encuentra el archivo del código fuente (.mq5).

Es necesario colocar el archivo del EA en la carpeta Asesores Expertos del terminal, entonces estará disponible para el uso en el terminal.

Si iniciamos este EA en el Probador de Estrategias, veremos la siguiente imagen:

Prueba en modo visual

¡El EA está listo y corresponde completamente a las reglas iniciales de la estrategia comercial!

Ejemplo №2: Asesor Experto «Martingale reversivo»

Vamos a considerar otra estrategia muy popular que se basa en el sistema Martingale. Se puede describir esta estrategia de la siguiente manera.

Abrimos una posición en cualquier dirección con el lote inicial. Definimos Stop loss y Take profit con los mismos valores. Si la posición se cierra con beneficio, la siguiente se abre de nuevo con el lote inicial. Si la posición se cierra con pérdidas, la siguiente transacción debe tener el tamaño más grande del lote para que el beneficio final compense las perdidas anteriores.

La tarea técnica para este robot podría ser la siguiente:

  • La primera transacción se abre en la dirección especificada por el usuario (parámetro de entrada) y con el lote inicial (parámetro de entrada).
  • Para la posición abierta se establece Stop Loss y Take Profit del mismo tamaño en puntos (parámetro de entrada).
  • Si la transacción se cierra con beneficio, la siguiente transacción se abre en la dirección opuesta con el lote inicial.
  • Si la transacción se cierra con pérdidas, la siguiente transacción se abre en la dirección opuesta con el lote aumentado (Lot Multiplier — parámetro de entrada).
  • Tiene que haber la posibilidad de especificar el comentario para las transacciones del EA (parámetro de entrada Comment).
  • Tiene que haber la posibilidad de ejecutar varios EAs simultáneamente (parámetro de entrada Magic).
  • El EA tiene que negociar con el instrumento desde el gráfico en el que está colocado. Timeframe no tiene importancia.

Vamos a crear este EA usando el constructor.

Para la implementación de la estrategia, necesitamos tener la información sobre el estado actual (presencia de posiciones abiertas) y sobre el historial de trading (tenemos que saber la dirección, beneficio y lote de la transacción anterior). 

Formamos dos grupos de transaciones: un grupo con posiciones cerradas y otro con posiciones actuales. También añadimos el elemento Parámetro de Entrada para el número mágico del EA.

Grupos de transacciones

Si todavía no hay ninguna posición abierta, hay que abrirla. Como en el ejemplo anterior, para determinar el número de posiciones abiertas, vamos a usar ele elemento Trades Group Information, y comparamos el valor obtenido con el valor cero. Si no hay ninguna posición, eso será como disparador para abrir una transacción nueva. En nuestro caso, este enlace será revertido.

Apertura de posición

Si hay una posición, hay que colocar Stop Loss y Take Profit para ella.

En el ejemplo anterior, eso se hacía en el momento de la apertura de la transacción, pero no todos los modos de ejecución / brokers permiten hacer eso. Por eso, vamos a considerar el caso de la apertura de la posición sin SL y TP y su colocación en el futuro.

La colocación (modificación) de los niveles SL y TP se realiza a través del elemento Modify Trades Group.

Además de eso, añadimos los elementos para el parámetro con el comentario para las transacciones con los valores de SL y TP en puntos.

Establecimiento de los Stop

Para determinar el tipo de la siguiente transacción, hay que saber la dirección de la última posición cerrada. Para acceder a la información sobre las posiciones, usamos el elemento Trade Information. Para eso, hay que saber el tiket de la última transacción. Podemos obtenerlo usando el elemento Trades Group Information.

Última transacción

Determinamos el tipo de la última transacción y averiguamos si se trata de la compra o la venta. Para eso, hay que usar el elemento Equal. Permite comparar los números con diferentes tipos de datos y devuelve «true» si son iguales.

Tipo de la última transacción

Usando el elemento Variable, creamos el tipo para abrir la siguiente transacción. Este elemento adquiere diferentes valores cuando se ejecutan diferentes condiciones, sirviendo de un tipo de conmutador.

Si la transacción anterior era de compra, la siguiente será de venta, y viceversa. Si el tipo de la última transacción no se sabe (si todavía no hay ninguna transacción abierta), se usará el tipo de los ajustes de entrada. Lo crearemos usando el elemento correspondiente.

Tipo de la siguiente transacción

Ahora nos queda calcular el volumen de la siguiente transacción. Para eso, hay que saber el resultado del cierre de la última posición y su volumen. Para obtener el beneficio y el volumen, usamos el elemento Trade Information. El beneficio se compara con cero con el fin de determinar si la transacción se ha cerrado con ganancia o pérdida.

Beneficio y volumen de la última transacción

Si es la primera transacción, o si la última transacción se ha cerrado con ganancias, iniciamos nuevo ciclo con lote inicial.

Para determinar la condición del inicio del nuevo ciclo, usamos el elemento lógico OR. Devuelve «true» si por lo menos una de las condiciones ha sido satisfecha, y devuelve «false» si no ha sido satisfecha ninguna condición. Tenemos que comprobar dos condiciones. (1) La condición del cierre de la transacción con beneficio se coge del elemento Compare donde se comprueba si el beneficio ha sido menos de cero (es necesario revertir el enlace con el elemento OR). (2) la comprobación de que es la primera transacción se realiza usando el elemento AND donde conectamos los valores invertidos desde los elementos Equal. Si la transacción anterior no es de compra ni de venta, entonces, es la situación cuando la transacción anterior simplemente no existe.

Nuevo ciclo

Si la transacción ha sido abierta, es necesario calcular nuevo volumen. Para eso, se utiliza el elemento Arithmetic. Permite realizar diferentes operaciones matemáticas con dos números. En este caso, vamos a multiplicar el lote de la transacción anterior por el parámetro Lot Multiplier que será creado a través del elemento Input Parameter. Para nuestra estrategia, su valor predefinido será igual a 2.

Cálculo del lote

Para el cálculo final del lote, usaremos el elemento Variable, igual como en caso con la determinación del tipo de la transacción. Es que si iniciamos un nuevo ciclo, tenemos que usar el volumen inicial; si continuamos el ciclo después de una transacción con pérdidas, hay que coger el tamaño del siguiente lote calculado en la fase anterior.

Además de eso, añadimos un elemento para el volumen inicial (parámetro de entrada). Es el esquema completo:

Selección del lote

Para una visión rápida de los parámetros de todos los elementos del esquema/estrategia, se puede usar la función Parameters Layout view.

En este caso, el esquema cambiará su apariencia y se dividirá en dos zonas. Una va a contener la lista de todos los parámetros del esquema, la segunda va a incluir la lista de todos los elementos que contienen cada uno de los parámetros. De esta manera, se puede verificar los ajustes para cada uno de los parámetros en todos los elementos.

Vamos a asegurarnos de que en todos los elementos se usa el símbolo actual del gráfico en el que ha sido iniciado el EA. Para eso, cambiamos el esquema en el modo Parameter Layout y seleccionamos el parámetro Symbol Name en la lista izquierda. Entonces, veremos en la parte derecha que este parámetro está presente en tres elementos de nuestro esquema y está definido como Current Symbol, lo que significa el uso del instrumento actual del gráfico. Si hace falta, este valor puede ser alterado por el nombre de cualquier otro instrumento desde Observación del Mercado.

Observación de los parámetros

Vamos a simular nuestro EA en el Probador de Estrategias. Para eso, como en el ejemplo anterior, es necesario generar el archivo del código fuente y compilarlo en MetaEditor.

Prueba en el Probador

¡La estrategia es arriesgada, pero trabaja de acuerdo con el algoritmo establecido! Hay espacio para la mejora de la estrategia, optimización de los parámetros y reducción de riesgos. Se puede añadir diferentes filtros de entrada, añadir el filtro de spread, desactivar el inicio del nuevo ciclo el viernes antes del fin de semana, limitar el tamaño máximo del lote o el número máximo de transacciones en el ciclo, o inventar alguna cosa más.


Ejemplo №3: Ejemplo №3: Utilidad «Cierre de un grupo de transacciones según el beneficio total»

Usando este constructor, se puede crear no sólo las estrategias comerciales, sino también las utilidades de trading más simples.

Ahora vamos a crear una utilidad que cierra un grupo de transacciones cuando se alcanza el nivel establecido del beneficio.

La utilidad tiene que corresponder a los siguientes requisitos:

  • NO abre transacciones.
  • Monitorea las posiciones actuales con un determinado magic en la cuenta (parámetro de entrada).
  • Cuando estas posiciones alcancen el nivel establecido del beneficio (parámetro de entrada), todas las transacciones deben cerrarse.
  • El EA tiene que generar una alerta al cerrar la posición, indicando el beneficio total y el número de intentos del cierre del grupo de transacciones. 

El último punto se debe a que no siempre se puede cerrar la posición a la primera. Las razones pueden ser diferentes. La razón más frecuente es la expiración del precio solicitado (requotes). Cuanto más grande sea el número de posiciones en el grupo a cerrar, mayor será la posibilidad de que alguna de ellas no será cerrada con el primer intento, sobre todo en los momentos de volatilidad elevada.

Como disparador para cerrar el grupo de transacciones será la condición cuando estas transacciones alcancen el nivel establecido del beneficio. Por eso, necesitamos obtener el acceso a este grupo de transacciones. 

Formamos el grupo de transacciones (elemento Trades Group) con magic establecido (elemento Input Parameter), averiguamos su cantidad y comparamos con cero para determinar si hay por lo menos una posición para el monitoreo. 

Grupo de transacciones

Averiguamos el beneficio actual de este grupo de posiciones (elemento Trades Group Information) y comparamos este valor con el nivel establecido del beneficio para cerrar (elemento Input Parameter).

Beneficio del grupo de transacciones

Luego, se podría usar el elemento Compare como disparador para cerrar el grupo entero, pero haremos un poco de otra manera. Es que los EAs se ejecutan en cada tick: una vez en cada tick. Y puede surgir la siguiente situación durante el trading real. La condición para cerrar todas las transacciones ha sido satisfecha, el EA ha empezado a cerrarlas, pero por alguna razón sólo una parte de estas transacciones se ha cerrado en este tick, y otra parte ha quedado sin cerrar. El EA va a comprobar de nuevo el cumplimiento de la condición del alcance del beneficio en el siguiente tick, pero tal vez puede ser incumplible, ya que una parte de transacciones se ha cerrado en el tick anterior y ellas ya no forman parte de nuestro grupo. 

Por eso, vamos a memorizar el echo del cumplimiento de la condición para cerrar el grupo entero en el elemento Variable. El EA va a cerrar todas las transacciones en los siguientes ticks si esta variable guarda el valor «true» hasta que todas ellas no se cierren con éxito. Una vez cerradas todas las transacciones, vamos a resetear la condición del cierre (establecemos el valor «false») y esperar la aparición de nueva situación del cierre.

Cerramos el grupo usando el elemento Close Trades Group

Cierre del grupo de transacciones

La lógica comercial está lista y ya puede funcionar debidamente. Ahora añadimos la funcionalidad para calcular los intentos del cierre del grupo de transacciones.

Para eso, también se utiliza el elemento Variable. Vamos a resetear el valor a 0 cuando en el grupo no hay transacciones abiertas, y aumentar el valor a 1 (añadir 1 usando el elemento Arithmetic) cada vez cuando tratamos de cerrar el grupo.

Además de estos dos elementos, necesitaremos otro elemento para transformar el número decimal en el número entero (Transformación), porque usamos la variable del tipo entero para el contador, y el elemento Arithmetic devuelve el valor del tipo decimal. Si usáramos una variable del tipo decimal, no habría la necesidad de hacer esta transformación.

Añadimos los elementos al esquema y los configuramos de la siguiente manera:

Contador de intentos

Ahora nos queda formar el texto del mensaje y crea una alerta con él en el momento del cierre del grupo de transacciones. Se puede formar el texto del mensaje usando el elemento Combine String que combina partes del mensaje en una única cadena.

La alerta de MetaTRader 5 se crea a través del elemento Alert.

Alerta

Vamos a considerar una opción más con este ejemplo. Cada esquema puede contener varias conclusiones, es decir, acciones que deben realizarse como resultado de la ejecución del esquema y que no provocan la realización de otras acciones. En este esquema es la Alerta y el Cierre del grupo de transacciones.

Si Usted quiere que estas acciones se ejecuten en un orden determinado (por ejemplo, que la alerta sea creada ANTES del cierre de transacciones), hay que usar la opción Arrange Ends. Aparecerá una ventana de diálogo (como en el caso de organizar la orden de parámetros de entrada) en la que se puede mover los elementos arriba/abajo.

Ordenamiento de finalizaciones

Nuestra utilidad está completamente lista. Puesto que este EA no abre ningunas órdenes y simplemente sirve de un ayudante de trading, no hay necesidad de simularlo en el Probador de Estrategias.

Usted puede ejecutar el esquema inmediatamente, incluso sin generar el código y sin crear el archivo del EA (aunque se puede hacerlo, el EA listo se puede iniciar en un gráfico separado del terminal). Para iniciar la ejecución del esquema, existe el botón Iniciar/Parar ejecución, Al pulsarlo, el esquema empezará a ejecutarse igual como si el archivo del EA estuviera iniciado en el gráfico separado. Se puede usar esta opción para la ejecución simultánea de varias utilidades simples sin tener que generar el código para ellas e iniciarlas en los gráficos separados.

Ejecución del esquema


Conclusión

En este artículo se realiza el análisis del constructor gráfico de estrategias Mission Automate. A través de los ejemplos, se muestra cómo se puede crear los robots comerciales sin programación.

Usted puede descargar el programa en el Market fácil y gratis, y probarlo en acción. Se incluyen 5 EAs gratuitos.

Para MetaTrader4Mission Automate Demo MT4

Para MetaTrader5Mission Automate Demo MT5

Tengo grandes planes respecto al posterior desarrollo del proyecto, por eso estaré muy agradecido por cualquier comentario y deseo de mejorar el programa.

¡Vamos a hacer el trading algorítmico accesible para todos!

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/4951

Servando REPETTO
Servando REPETTO | 4 sept. 2018 en 19:39
Andrey, parece que sí proyecto tiene miras muy altas, me alegro por usted y le felicito por su gran labor. Me preguntaba si por ejemplo quisiera trabajar con la combinación de Ondas de Elliott y configuración  Patrones de Patrones armónicos habría posibilidad de utilizar este constructor. Gracias y un saludo.
Andrey Barinov
Andrey Barinov | 5 sept. 2018 en 04:52
serv1973:
Andrey, parece que sí proyecto tiene miras muy altas, me alegro por usted y le felicito por su gran labor. Me preguntaba si por ejemplo quisiera trabajar con la combinación de Ondas de Elliott y configuración  Patrones de Patrones armónicos habría posibilidad de utilizar este constructor. Gracias y un saludo.

Hola. Gracias por tus amables palabras.

Realmente depende de cómo definas y detectes los patrones y las ondas. Si usa un indicador personalizado para identificarlos, y ese indicador traza flechas en el gráfico, Mission Automate puede usarlos.

Cómo crear una Tarea Técnica al encargar un robot Cómo crear una Tarea Técnica al encargar un robot
¿Ha desarrollado usted una estrategia comercial y negocia con ella? Si las normas de su sistema se pueden componer bien en un algoritmo programático, entonces será mejor que un robot comercie por usted. Un robot no duerme, no come y no es vulnerable a las debilidades humanas. En este artículo le mostraremos cómo crear una Tarea Técnica al encargar un robot comercial en Freelance.
Trading social. ¿Es posible mejorar una señal rentable? Trading social. ¿Es posible mejorar una señal rentable?
La mayoría de los suscriptores eligen una señal comercial por la belleza de su curva de balance o según el número de suscriptores. Por eso, muchos proveedores de hoy se preocupan de que sus estadísticas sean bonitas, en lugar de prestar atención a la calidad real de la señal. A menudo juegan con los volúmenes de las transacciones y confieren artificialmente a la curva de balance un aspecto ideal. En este artículo vamos a analizar los criterios de fiabilidad de las señales, así como los métodos que ayudan al proveedor a mejorar la calidad de las mismas. Además, mostraremos el análisis de una señal en concreto, junto con los métodos que podrían ayudar al proveedor a hacerla más rentable y con menos riesgos.
Neuroredes profundas (Parte VII). Conjunto de neuroredes: stacking Neuroredes profundas (Parte VII). Conjunto de neuroredes: stacking
Continuamos construyendo conjuntos. Ahora vamos a añadir al conjunto bagging creado anteriormente un combinador entrenable: una red neuronal profunda. Una red neuronal combina las mejores 7 salidas del conjunto después de la poda. La segunda recibe en la entrada las 500 salidas del conjunto, las poda y las combina. Construiremos las redes neuronales con la ayuda del paquete keras/TensorFlow de Python. Veremos brevemente las posibilidades del paquete. Y finalmente, realizaremos la simulación y compararemos la calidad de la clasificación de los conjuntos bagging y stacking.
Cómo analizar las transacciones de la Señal elegida en el gráfico Cómo analizar las transacciones de la Señal elegida en el gráfico
El servicio de señales comerciales se desarrolla a pasos agigantados. A la hora de confiar nuestro dinero a un proveedor de señales, querríamos minimizar el riesgo de pérdida del depósito. Pero, ¿cómo aclararse entre semejante cantidad de señales? ¿Cómo encontrar precisamente aquella que nos reportará beneficios? En este artículo vamos a crear un método para analizar visualmente la historia de transacciones de las señales comrciales en el gráfico del instrumento.