Construir un EA para todos como tutorial
36 respuestas
Conmariin
hace 7 años #116417
Hola,
No soy un programador y pensé que comprar el Asistente de EA sería mucho más fácil construir un EA con. Pero después de algunas prácticas de construcción veo que necesitas ser un mql-Programmer para entender incluso EA Wizard.
Así que vengo con una pregunta para usted: ¿Es posible construir en este foro al menos una EA paso a paso para una mejor comprensión para todos los no programadores el Asistente EA?
Ya tengo una estrategia que se describe aquí: https://www.mql5.com/en/articles/1734
En esta estrategia hay fragmentos de código. En realidad no sé cómo integrarlos. Pero más que esto quiero entender y leran cómo estoy construyendo una EA en EA Wizard. Así que puedo construir otros EAs en el futuro.
Los fragmentos de código del artículo están en el mq4.
Saludos de
Conmariin 🙂
Operaciones automáticas con Asesor Experto
https://www.rabenesche.de
Conmariin
hace 6 años #197213
Faltaba algo. Perdón. Lo he corregido en esta versión 🙂 .
Operaciones automáticas con Asesor Experto
https://www.rabenesche.de
Conmariin
hace 6 años #197239
Tengo un problema con la condición para comprar órdenes.
Quiero que el EA abra una orden cuando se cumplan las siguientes condiciones:
(GoLongSandR=true and(Patrón1=true o Patrón2=true o Patrón3=true)
Pero está abriendo órdenes cuando cualquiera de estos patrones se cumplen. Se abre cuando GoLongSandR=true. Se abre cuando Pattern1=true y Pattern3=true (pero no GoLongSandR). Se abre cuando sólo Pattern2=true...etc. Por ejemplo a veces se abre correctamente con GoLongSandR=true y Pattern1=true.
Adjunto una imagen de mis condiciones en EAWizard para Long. ¿Dónde está el error? ¿Alguien puede ayudarme?
Este es el código del EA:
//--------------------------------------
// Abrir Largo
if(sqIsBarOpen == true) {
if((sqGetMarketPosition() == 0)
&& ((GoLongSandR == true)
&& ((Pattern1Long == true)
|| ((Pattern2Long == true)
|| (Patrón3Largo == verdadero))))))
{
// Acción #1
sqOpenOrder("NULL", OP_BUY, getOrderSize(MagicLong, OP_BUY ), getOrderPrice(MagicLong), Comment1, MagicLong, "Open Long");
// Acción #2
sqDrawUpArrow(1);
}
}
//--------------------------------------
// Abrir Corto
if(sqIsBarOpen == true) {
if ((sqGetMarketPosition() == 0)
&& ((GoShortSandR == true)
&& ((Pattern1Short == true)
|| ((Pattern2Short == true)
|| (Patrón3Corto == verdadero))))))
{
// Acción #1
sqOpenOrder("NULL", OP_SELL, getOrderSize(MagicShort, OP_SELL ), getOrderPrice(MagicShort), Comment2, MagicShort, "Open Short");
// Acción #2
sqDrawDownArrow(1);
}
}
Operaciones automáticas con Asesor Experto
https://www.rabenesche.de
tomas262
hace 6 años #197256
Hola,
Veo que en el archivo original adjunto omitiste los paréntesis pero en la captura de pantalla que proporcionaste están presentes (correctamente). Adjunto archivo modificado
tomas262
hace 6 años #197258
Un problema podría ser que establezcas "patrón" en TRUE pero nunca lo vuelvas a establecer en FALSE por lo que la condición permanecerá siempre válida.
Creo que debe establecer patrón = FALSE con la entrada de pedidos
Conmariin
hace 6 años #197259
Sí he añadido los paréntesis cuando busqué el error de este comportamiento. Y pensé que podría ser con algo no es resettet. Pero no estaba seguro. Ok tuviste el mismo pensamiento. Ahora estoy tratando de encontrar la manera de establecer el patrón después de la entrada de pedidos. Gracias Tomas262! 🙂
Operaciones automáticas con Asesor Experto
https://www.rabenesche.de
Conmariin
hace 6 años #197277
Hola,
Desafortunadamente no encontré como resolver esto en EAWizard, pero tomé el código y lo resolví manualmente. Era solo un 1 Liner en cada condición de Patrón para poner patrón = FALSE. Ahora funciona 🙂 .
Operaciones automáticas con Asesor Experto
https://www.rabenesche.de