English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Cómo crear un experto en sólo unos minutos con ayuda de EA Tree: Parte 1

Cómo crear un experto en sólo unos minutos con ayuda de EA Tree: Parte 1

MetaTrader 5Sistemas comerciales |
1 916 77
eatree
eatree

Introducción

El programa EA Tree es el primer instrumento que permite construir el código de un asesor sobre la base del método de esquema de bloques "drag and drop". Se trata de una aplicación Windows que se inicia en su computadora de manera local. Ahora puede crear un código complejo en MQL5 con la ayuda de un cómodo interfaz gráfico.

La creación de asesores en EA Tree se lleva a cabo mediante la construcción de bloques que pueden contener funciones de lenguaje MQL5, indicadores técnicos y personalizados, y valores numéricos. Las salidas de los bloques pueden estar unidas con las entradas de otros bloques, formando un "árbol de bloques". En base al árbol de bloques, el programa EA Tree genera el código fuente del asesor, que después puede ser compilado en la plataforma comercial MetaTrader 5 instalada en su computadora.


Dib. 1. Interfaz gráfico del usuario del programa EA Tree

Dib. 1. Interfaz gráfico del usuario del programa EA Tree

En los siguientes apartados vermos los conceptos básicos que se usan en EA Tree.


1. Conceptos básicos

Los principales elementos del programa son los bloques ("box") y los botones ("buttons").

Los bloques están pensados para representar información. Pueden contener valores de un indicador técnico, de una función matemática, etcétera. Cada bloque tiene botones de entrada y salida. En este ejemplo, el bloque "Add" tiene 3 botones de entrada, designados como "A", "B", "C" y un botón de salida, designado como "OUT".

Cada bloque tiene una designación única, establecida con ayuda de su nombre e índice. En este parámetro, la marca "Add_1" indica que el bloque tiene la denominación "Add", y el índice 1 indica que es el primer bloque en el conjunto.

Dib. 2. Bloque "Add"

Dib. 2. Bloque "Add"

Conexiones de los botones

Los botones de salida de un bloque pueden estar unidos con los botones de entrada de otro bloque en los casos en que ambos tengan el mismo tipo de datos (por ejemplo, que los dos sean del tipo double).

En este caso, unimos el botón "OUT" del bloque "Add_2" con el botón "A" del bloque "If_Else_1".

Dib. 3. Bloques "Add" y "If-Else"

Dib. 3. Bloques "Add" y "If-Else"


2. Bloque "Trade"

En el programa EA Tree, el bloque principal es el bloque "Trade", que tiene varios botones de entrada, los más importantes entre estos últimos son "openLong", "openShort", "closeLong" y "closeShort". Aparte de lo mencionado, el bloque contiene multitud de parámetros comerciales.

Dib. 4. Bloque "Trade"

Dib. 4. Bloque "Trade"


3. Bloque "MM" (MoneyManagement)

Para gestionar el capital, disponemos del bloque "MM", así como de varios botones de entrada. Para llevar a cabo la conexión, hay que conectar el botón de salida "OUT" del bloque "MM" con el botón de entrada "MM" del bloque "Trade".

Dib. 5. Bloques "Trade" y "MM"

Dib. 5. Bloques "Trade" y "MM"


4. Bloques de operaciones lógicas

Los bloques de operaciones lógicas son muy importantes, se usan para comprobar el cumplimiento de las condiciones de mercado; están unidos con los botones "openLong", "openShort", "closeLong" y "closeShort del bloque "Trade", y entre los otros bloques en el esquema.

Bloque "If-Else"

Lógica del bloque "If-Else":

If A operator B then T (botón de salida T=true) else F (botón de salida F=false).

En calidad de operator pueden resultar las operaciones de equiparación "igual a" (equal to), "no igual a" (not equal to), "menor que" (less than), "mayor que" (greater than) y etcétera.

 Dib. 6. Bloque lógico "If-Else"

Dib. 6. Bloque lógico "If-Else"

Bloque lógico "Crossover" (cruzamiento)

Lógica del bloque "Crossover":

If A operator1 B  AND C operator2 D  then T (botón de salida)=true else F (botón de salida)=true.

En calidad de operadores operator1 y operator2 pueden actuar operadores de equiparación, del tipo "igual a" (equal to), "no igual a" (not equal to), "menor que" (less than), "mayor que" (greater than), etcétera. Con la ayuda de los botones "shiftA" y "shiftB" se puede indicar el desplazamiento del índice de los indicadores.

En este ejemplo, la lógica de los bloques sería la siguiente:

Si el valor actual de la línea principal (main) del indicador Stochastic > que el valor actual de la línea de señal (signal) del indicador Stochastic y

el valor anterior de la línea principal (main) del indicador Stochastic > que el valor anterior de la línea de señal (signal) del indicador Stochastic,

entonces T=true y F=false

Dib. 7. Bloques lógicos "Crossover" y "Stochastic"

Dib. 7. Bloques lógicos "Crossover" y "Stochastic"


Bloque lógico "AND"

Lógica del bloque "AND":

If A AND B AND C AND D then OUT(botón de salida)=true

Dib. 8. Bloque "And"

Dib. 8. Bloque "And"

Bloque lógico "OR"

Lógica del bloque "OR":

If (A OR B OR С OR D) then OUT(botón de salida)=true

Dib. 9. Bloque "Or"

Dib. 9. Bloque "Or"


5. Bloques de indicadores técnicos

En el menú "Technical indicators" están disponibles los bloques de muchos indicadores técnicos, tales como MACD y Moving Average.

Bloque del indicador técnico MACD

Dib. 10. Bloque del indicador técnico MACD

Dib. 10. Bloque del indicador técnico MACD

Bloque del indicador técnico MA (Moving Average)

Dib. 11. Bloque del indicador técnico MA (Moving Average)

Dib. 11. Bloque del indicador técnico MA (Moving Average)


6. Indicadores personalizados (Custom Indicators)

Los indicadores personalizados están disponibles a través del panel "Custom Indicators". En el EA Tree sólo se usan indicadores personalizados escritos en lenguaje MQL5.


7. Funciones MQL5

En el programa EA Tree hay bloques de función en lenguaje MQL5:

  • Bloques de series temporales (iOpen, iClose, HighestHigh, LowestLow, etcétera).
  • Conversión de datos (Conversion Functions);
  • Funciones matemáticas (Math functions);
  • Funciones literales (String functions).


8. Manual: creando un asesor simple

En este apartado estudiaremos el proceso de creación de un asesor simple.

Primero daremos la lista de condiciones de un asesor comercial.

Normas de entrada en el mercado (Entry Rules):

Abrir una posición larga (Open Long):

  1. El valor actual de la línea principal (main) del indicador MACD > que el valor actual de la línea de señal (signal) del indicador MACD;
  2. El valor anterior de la línea principal (main) del indicador MACD < que el valor de la línea de señal (signal) del indicador MACD;
  3. El valor actual EMA(20) > que el valor anterior EMA(20).

Abrir una posición corta (Open Short):

  1. El valor actual de la línea (main) principal MACD < que el valor actual de la línea de señal (signal) del indicador MACD;
  2. El valor anterior de la línea (main) principal MACD > que el valor anterior de la línea de señal (signal) del indicador MACD;
  3. El valor actual EMA(20) > que el valor anterior EMA(20).

Normas de salida del mercado (Exit Rules):

El cierre de posiciones largas (Close Long): funciona de manera análoga a las normas de apertura de las posiciones cortas (Open Short);
El cierre de posiciones cortas (Close Short): funciona de manera análoga a las normas de apertura de las posiciones largas (Open Long).

En el ejemplo que vemos más abajo, para el bloque "Trade" se usará la configuración por defecto, no hay gestión de capital.

Comencemos:

1. Creamos los bloques "Trade" y "AND", unimos el botón de salida OUT del bloque "And" con el botón de entrada "OpenLong" del bloque "Trade":

Dib. 12. Bloques "Trade" y "And"

Dib. 12. Bloques "Trade" y "And"


2. Creamos el bloque "Crossover" y unimos su botón de salida "T" con el botón de entrada "A" del bloque "AND".

Dib. 13. Bloques "Trade" + "And" + "Crossover"

Dib. 13. Bloques "Trade" + "And" + "Crossover"


3. Creamos el bloque "MACD", unimos el botón de salida "Main" con los botones de entrada "A" y "C" del bloque "Crossover", después unimos el botón de salida "Signal" del bloque "MACD" con los botones de entrada "B" y "D" del bloque "Crossover".

Estructura lógica del esquema construido:

Si el valor actual de la línea principal (main) del indicador MACD > que el valor actual de línea de señal (signal) del indicador MACD y
      
el valor actual de la línea principal (main) del indicador MACD < que el valor anterior de la línea de señal (signal) del indicador MACD

Dib. 14. Bloques "Trade" + "And"+ "Crossover"+ "MACD"

Dib. 14. Bloques "Trade" + "And"+ "Crossover"+ "MACD"


4. Creamos los bloques "MA" y "If-Else". Unimos el botón de salida "Main" del bloque "MA" con los botones de entrada "A" y "B" del bloque "If-Else". Unimos el botón "OUTPUT" del bloque "If-Else" con el botón de entrada "B" del bloque "AND".

Para la condición de apertura de una posición larga (openLong) el subárbol de bloques consta de las tres condiciones siguientes:

  1. El valor actual de la línea principal (main) del indicador MACD > que el valor actual de la línea de señal (signal) del indicador MACD y
  2. El valor anterior de la línea principal (main) del indicador MACD < que el valor anterior de la línea de señal (signal) del indicador MACD y
  3. El valor actual del indicador EMA(20) > que el valor anterior EMA(20)

Dib. 15. Bloques "Trade" + "And" + "Crossover" + "MACD" + "MA" + "If-Else"

Dib. 15. Bloques "Trade" + "And" + "Crossover" + "MACD" + "MA" + "If-Else"


5. Creamos otro bloque "And" y unimos su botón de salida con el botón de entrada "openShort" del bloque "Trade".

6. Como la lógica de "openShort" es opuesta a la de "openLong", unimos el botón de salida "F" del bloque "Crossover" con el botón de entrada "A" del nuevo bloque "And". Unimos de la misma forma el botón de salida "F" del bloque "If-Else" con el botón de entrada "B" del nuevo bloque "And".


Dib. 16. Bloques "Trade"+ "And" + "Crossover" + "MACD" + "MA"+ "If-Else" + "And"

Dib. 16. Bloques "Trade"+ "And" + "Crossover" + "MACD" + "MA"+ "If-Else" + "And"


7. Para obtener señales de salida del mercado, unimos el botón de salida "OUT" del primer bloque "And" con el botón de entrada "closeLong" del bloque "Trade", y el botón de salida "OUT" del segundo bloque "And" lo unimos con el botón de entrada "closeShort" del bloque "Trade".


Dib. 17. Añadimos la condición "CloseShort" en el bloque "Trade"

Dib. 17. Añadimos la condición "CloseShort" en el bloque "Trade"


8. Pinchando dos veces sobre los bloques "MACD" y "MA", elegimos las variables que se usarán como parámetros de entrada del experto cuyo código será generado.


Dib. 18. Parámetros de entrada del asesor

Dib. 18. Parámetros de entrada del asesor

9. Ahora ya está todo preparado, guardamos el asesor en un archivo, lo abrimos en el redactor MetaEditor 5 y lo compilamos.

Dib. 19. Código fuente del asesor creado

Dib. 19. Código fuente del asesor creado


10. Al final, con ayuda del probador de estrategias comerciales del terminal MetaTrader 5 llevamos a cabo la optimización de los parámetros de entrada elegidos para el asesor.

Dib. 20. Comprobación del asesor en el probador de estrategias comerciales

Dib. 20. Comprobación del asesor en el probador de estrategias comerciales


Conclusiones

El uso del EA Tree tiene muchas ventajas:

  • Es un interfaz gráfico comprensible y sencillo de usar;
  • No es necesario tener experiencia en programación;
  • Puede aprender rápidamente el lenguaje MQL5;
  • Confidencialidad de sus secretos comerciales;
  • Los plazos de desarrollo de un asesor se acortan significativamente (de días/meses a minutos);
  • Puede desarrollar asesores complejos para el comercio con varias divisas y time frames;
  • Se pueden incluir multitud de estrategias comerciales en el código del asesor;
  • El guardado y carga de los bloques-esquema permite usar el código reiteradamente;
  • Existe la posibilidad de conectar indicadores personalizados;
  • El código del asesor creado por el programa EA Tree, no contiene errores y siempre se compila.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/337

Archivos adjuntos |
eatree-sample.mq5 (33.7 KB)
Leonardo Ciaccio
Leonardo Ciaccio | 11 oct 2016 en 21:09
Para MT4 usa esto, sin instalación para todos los navegadores 😜 Mira este video, el mejor http://j.mp/2dtVd5z
Balut
Balut | 16 dic 2016 en 12:59
PH2000:
154
Blaiserboy 2014.02.09 20:57 # PT
Hay que revisar la función trailing stop re MT5 ya que no se llama

Estimado

Dave,

En primer lugar te debo una disculpa por preguntar.

Estoy teniendo algunos problemas con mi EA desde un inicio este programa. Para adaptarse a las cajas era tan fácil (versión demo), pero mi versión estándar Eatree EAs no se están ejecutando en mi broker mt5.

Yo no trabajo con forex y así cinco dígitos también(sólo dos dígitos). Estoy teniendo "dividido por cero" problemas y creo que es debido a los diferentes tipos de parámetros de trailing paso y tamaño de lote

Como ves no soy un programador de C++ o MT5 pero vi la mayoría de los archivos .mt5 con parámetros de lotes y stops (dobles).

Con EATree todo lo que pude ver fueron parámetros de stops enteros en el "cuadro de comercio 1" y los parámetros de lotes dobles para adaptarse a ella

Ya he visto la guía del usuario, videos de demostración y faq's y a pesar de que hay un montón de ejemplos de ajuste de la caja no hay casi nada acerca de los parámetros MM, Lot y stops.

¿Tengo que convertir los parámetros enteros a dobles? ¿Cómo puedo hacerlo?

Muchas gracias por considerar mi petición

PH 2000


Balut
Balut | 16 dic 2016 en 13:01
He comprado EATree mt5
Nadie EA trabaja con mi corredor
Tengo problemas "compartida por cero"
Le pregunté al apoyo EATree para la explicación
No hubo respuesta utilizable.
¿Ha resuelto el prolem y cómo?

Saludos Balut
Charles Magno
Charles Magno | 11 dic 2018 en 12:24
¿Hay algún ea builder funcional?
¿Está actualizado EATree? ¿Funciona ya en mt5?
rayapureddy
rayapureddy | 16 feb 2019 en 13:13
Tengo un problema, que en eatree cuando hago archivo y guardarlo, no viene en meta editor 5, donde se está guardando iam no conseguir, puede alguien explicar claramente desde el diseño de ahorro de mt5 ahorro, hasta meta editor5.
Fundamentos de la estadística Fundamentos de la estadística
Cada trader utiliza en su trabajo este u otro tipo de cálculos estadísticos, incluso si se declara seguidor del análisis fundamental. Este artículo le ayudará a familiarizarse con los fundamentos de la estadística, con sus elementos básicos, además de hablarle de su importancia a la hora de tomar decisiones.
Aplicación Práctica de Bases de Datos para Análisis de Mercados Aplicación Práctica de Bases de Datos para Análisis de Mercados
Trabajar con datos se ha convertido en la principal tarea para el software moderno, tanto para aplicaciones independientes como para aplicaciones de red. Para resolver este problema se creó un software especializado. Se trata de los Sistemas de Gestión de Bases de Datos (Database Management Systems o DBMS), que pueden estructurar datos para su almacenamiento en el ordenador y su procesamiento. En lo que se refiere a trading, la mayoría de analistas no usan bases de datos en su trabajo. Pero hay tareas donde esta solución resultaría muy práctica. Este artículo facilita un ejemplo de indicadores que puede guardar y cargar datos de bases de datos tanto con arquitecturas de servidor de cliente como de servidor de archivos.
¡200 usd por su artículo de trading algorítmico! ¡200 usd por su artículo de trading algorítmico!
Escriba un artículo y contribuya al desarrollo del trading algorítmico. Comparta su experiencia en el comercio y la programación y le pagaremos 200 dólares. Además, la publicación en el popular sitio web MQL5.com será una gran oportunidad para su promoción personal en el entorno profesional. Le leerán miles de tráders. Podrá debatir sus ideas con personas afines, adquirir nuevas experiencias y rentabilizar sus conocimientos.
Transferir Indicadores de MQL4 a MQL5 Transferir Indicadores de MQL4 a MQL5
Este artículo está dedicado a las peculiaridades de transferir construcciones de precio escritas en MQL4 a MQL5. Para facilitar el proceso de transferir cálculos de indicador de MQL4 a MQL5, se recomienda la biblioteca de funciones mql4_2_mql5.mqh. Su uso se decribe en la base de transferencia de los indicadores MACD, Stochastic y RSI.