Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1228
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Mételo. No lo hice. Se abre en paquetes. La magia - la ignora.
Cuando escribas código, traduce su lógica al ruso. Al principio, hay un ciclo en el que se hacen comparaciones y si la orden seleccionada no es una orden de mercado, entonces a la siguiente iteración; si el símbolo no es EURUSD, entonces a la siguiente iteración y si el magik no es igual a su magik, entonces a la siguiente iteración. Al final del ciclo se cuenta el número de iteraciones que han pasado antes del final del ciclo. El ciclo termina y el programa comienza a abrir órdenes según las condiciones. Considerando que una de las condiciones es siempre cierta, se abre una orden. Y esto ocurre en cada tic.
Cuando escribas el código, traduce su lógica al ruso. Primero tiene un ciclo en el que se hacen comparaciones; si la orden seleccionada no es una orden de mercado, entonces a la siguiente iteración; si el instrumento no es el Eurobucks, entonces a la siguiente iteración; y si el magik no es igual a su magik, entonces a la siguiente iteración. Al final del ciclo se cuenta el número de iteraciones que han pasado antes del final del ciclo. El ciclo termina y el programa comienza a abrir órdenes según las condiciones. Considerando que una de las condiciones es siempre cierta, se abre una orden. Y esto ocurre en cada tic.
Ya veo. Pero en este caso, if(OrderMagicNumber() == MagicNumber)continue, la orden que ha sido colocada es aceptada por una orden colocada por Magic(o). Esto significa que la orden colocada manualmente en EUROBAX debe ser ignorada y una orden más debe ser abierta por un Asesor Experto con Magic.
OrdersTotal() - este es el problema que pone fin a cualquier manipulación con Magic.Lo entiendo. Pero en este caso: if(OrderMagicNumber() == MagicNumber)continue; Se toman las órdenes que se colocan por Magic(s). Es decir, una orden colocada manualmente en Eurobucks debe ser ignorada, y otra debe ser abierta por un EA con Magic.
OrdersTotal() - esta es la infestación que pone fin a cualquier manipulación del mago.El código se ejecuta de arriba a abajo. Después del bucle se tiene la colocación de los pedidos. if(OrderMagicNumber() == MagicNumber)continue; Esto interrumpirá la ejecución del cuerpo del bucle y comenzará una nueva iteración del mismo. El bucle terminará y se iniciará la colocación de pedidos. Así es como lo has escrito. El número total de pedidos no tiene nada que ver con esto. Si desea hacer una condición que si no hay órdenes colocadas con su magik e instrumento, entonces el Código de colocación de órdenes debe ser diferente.
Recorrer los números de pedido. Si se encuentra una orden con nuestro magik y en nuestro instrumento, entonces vuelve - sale del inicio. O una bandera que su orden está allí y en el inicio ontik o empezar a comprobar en la bandera.
Y es mejor crear un EA a partir de una plantilla para crear un script de EA, un indicador. Los campos del código principal serán más correctos.
El código se ejecuta de arriba a abajo. en un bucle según las reglas del mismo. Después del bucle tiene la colocación de órdenes. if(OrderMagicNumber() == MagicNumber)continue; Esto interrumpirá la ejecución del cuerpo del bucle y comenzará una nueva iteración del mismo. El bucle terminará y se iniciará la colocación de pedidos. Así es como lo has escrito. El número total de pedidos no tiene nada que ver con esto. Si quiere hacer una condición que si no hay órdenes colocadas con su magik e instrumento, entonces el Código de colocación de órdenes debe ser diferente.
Recorrer los números de pedido. Si se encuentra una orden con nuestro magik y en nuestro instrumento, entonces retorna - sale del inicio. O una bandera que su orden está allí y en el inicio ontik o empezar a comprobar en la bandera.
Y es mejor crear un EA a partir de una plantilla para crear un script de EA, un indicador. Los campos del código principal serán más correctos.
Supongo que esta no es la solución, pero ¿en qué dirección trabajar?
He probado un par de docenas de variantes. O abre una orden, o sin ninguna interrupción, tuyvukuchu.
Aquí, por cierto, sobre OrderSekect - una variable de tipo bool debe establecerse, de lo contrario jurará.
Esto no es una solución, pero ¿qué camino tomar?
Ya he probado un par de docenas de variantes. O bien abre una sola orden, o bien se abre sin ninguna interrupción.
Aquí, por cierto, sobre OrderSekect - una variable de tipo bool debe establecerse, de lo contrario jurará.
Sí, debería, vuelve a la nada.
Será mejor que escriba el algoritmo, que es lo que quiere hacer.
Esto no es una solución, pero ¿en qué dirección debo trabajar?
Ya he probado un par de docenas de variantes. O bien abre una sola orden, o bien se abre sin ninguna interrupción.
Aquí, por cierto, sobre OrderSekect - una variable de tipo bool debe establecerse, de lo contrario jurará.
En lugar de return(0), el significado debería ser continue
¡Gente buena y bien informada! Ayuda para implementar el indicador Envelopes en un EA de MT5. El propio EA tiene que procesar cada tick (sin saltarse). He probado algunas variantes, he mirado en la documentación, parece que me gusta la variante, pero es para el manejador OnCalculate. Todavía no lo he probado con la biblioteca estándar... Bueno, aquí está mi implementación inicial:
En el probador visual me sale:
Sí, se supone que jura, vuelve a la nada.
Será mejor que escribas el algoritmo que quieres hacer, no está claro lo que necesitas.
En el primer mensaje está el código. Es fácil: rompemos el máximo/mínimo anterior y abrimos una operación. Las órdenes abiertas por este EA no deben cruzarse con otras órdenes abiertas manualmente o por otro EA, es decir, el EA debe trabajar de forma independiente.
He buscado por todo Internet. Es un tema bastante trivial, pero hay muchas variaciones. Parece que es algo sencillo, y no se encuentra en ninguna parte.
En el primer mensaje, el código. Es sencillo: romper el máximo/bajo anterior - abrir una operación. Las órdenes abiertas por este EA no deben solaparse con otras órdenes abiertas manualmente, o con las abiertas por otro EA, es decir, el EA debe trabajar de forma independiente.
He buscado por todo Internet. Es un tema bastante trivial, pero hay muchas variaciones. Parece que es algo sencillo, y no se encuentra en ninguna parte.
en lugar de return(0) el significado debería ser continue