Preguntas sobre el MQL4 - página 9

 
¿Es correcto suponer que:
1. El cierre mutuo de las órdenes se produce automáticamente sin la intervención del creador de mercado?
2. La modificación de las órdenes abiertas (si se respetan las distancias aceptadas) se produce automáticamente sin intervención del creador de mercado?
3. La eliminación y la modificación de las órdenes pendientes (si se respetan las distancias aceptadas) se producen automáticamente sin la intervención de un creador de mercado?
 
¿Es correcto asumir que:<br / translate="no"> 1. ¿Los cierres de órdenes de mutuo son automáticos sin intervención del creador de mercado?
2. La modificación de la orden (si se respetan las distancias aceptadas) se produce automáticamente sin ninguna intervención del creador de mercado?
3. La eliminación y la modificación de las órdenes pendientes (si se respetan las distancias aceptadas) se producen automáticamente sin ninguna intervención del creador de mercado?

Esto no es correcto. debe preguntar a su corredor cómo se procesan las órdenes. el procesamiento automático está permitido. pero incluso en nuestro servidor de demostración a veces el procesamiento automático está desactivado y se realizan confirmaciones manuales.
 
Slawa,
muchas gracias por la respuesta tan clara.

¿Debemos suponer que lo mismo se aplica al pull-up automático del TrailingStop?
¿Hay alguna diferencia para el creador de mercado en cuanto a la fuente de formación de la influencia de control (EA o MT)?
 
Sí, ya que el broker no sabe quién mueve los stops: el trader manualmente, los expertos (o los scripts) o el terminal del cliente con el mecanismo de trailing stop.
 
1) ¿por qué el indicador obtiene Bars==0 en init() después de la recompilación?

2) es relativamente lento acceder a los elementos del array. ¿se puede acelerar sólo con construcciones engorrosas o algo más?
   ¡static int know; static double caa,cbb,ccc,cdd,cee,cff, cgg; if(b-know!=0){ si(b-saber==1){ caa=cbb; cbb=ccc; ccc=cdd; cdd=cee; cee=cff; cff=cgg; cgg=Close[b+6];/*vzad po istorii*/ }else if (b-saber==-1){ cgg=cff; cff=cee; cee=cdd; cdd=ccc; ccc=cbb; cbb=caa; caa=Cerrar[b]; /*vperjod*/ }else{ caa=Cerrar[b]; cbb=Cerrar[b+1]; ccc=Cerrar[b+2]; cdd=Cerrar[b+3]; cee=Cerrar[b+4]; cff=Cerrar[b+5];cgg=Cerrar[b+6];}  saber=b; }
 
Slawa,
gracias de nuevo. Está más que claro.

Myxu,
intenta utilizar ArrayCopy();
 
Slawa, a menudo me ayudas con detalles importantes, así que me dirigiré a ti personalmente.
Si en una ventana el Asesor Experto y el script están trabajando al mismo tiempo, en caso de que aproximadamente al mismo tiempo den órdenes al servidor para su modificación:
- EA modifica Buy en el momento t_o, Sovet=OrderModify(...)
- script modifica BuyLimit en el momento t_o +1ms, Script=OrderModify(...)
Otros eventos:
-el servidor devuelve TRUE al ejecutarse con éxito la orden de modificación (no sé cuál),
(¿cuál de las variables adquirirá valor TRUE - Sovet o Script?)
y después de 1ms...
-el servidor devuelve FALSE al ejecutar con éxito la modificación (no sé cuál) de la orden

Pregunta.
1. ¿Es correcto suponer que las peticiones al servidor están configuradas de tal manera que no se mezclan las respuestas del servidor y que cada una de las respuestas se devuelve a su propio OrderModify()?
2. Si no es así, ¿hay alguna forma rutinaria de distinguir entre las respuestas del servidor? (aparte de la práctica de crear otra orden después de recibir una respuesta a la anterior) ?

(Tengo más preguntas similares; si no son cruciales, por favor, contéstenlas en el foro MQL4, la pregunta está duplicada allí, y si es posible, la discusión puede llevarse a cabo allí, porque es más conveniente presentar los códigos allí).
 
cita del nuevo diccionario
===
Sólo hay un hilo, que se inicia en un contexto de negociación del programa, para realizar las operaciones de negociación de los expertos y los scripts. Por lo tanto, si este contexto está ocupado por una operación de comercio de un EA, otro EA o script no puede llamar a funciones de comercio en ese momento debido al error 146 (ERR_TRADE_CONTEXT_BUSY). La función IsTradeAllowed() debe utilizarse para detectar la posibilidad de realizar operaciones de comercio. Para la separación clara del acceso al contexto comercial se puede utilizar el semáforo basado en la variable global cuyo valor debe ser cambiado utilizando la función GlobalVariableSetOnCondition().
===
No se puede operar con varios EAs (o un EA y un script) al mismo tiempo. En la rama de error #6 hay un ejemplo de manejo de la situación usando un semáforo
 
Slawa,
gracias por su respuesta. Información muy importante. Algunas cosas se aclaran.

Pero todavía hay preguntas.
¿El hecho de que
Sólo hay un hilo para ejecutar las operaciones de los EAs y scripts
...
para ejecutar las órdenes de un EA o script según los siguientes esquemas:
a=OrderModify(..number1); c=OrderModify(..number2)
;


OrderModify(..number1); OrderModify(..number2);


¿Es correcto suponer que:
- en el primer ejemplo, OrderModify(..number2) no comenzará a ejecutarse hasta que se ejecute el operador de asignación a= después de recibir la respuesta del servidor a OrderModify(..number1)?
- en el segundo ejemplo, OrderModify(..number2) comenzará a ejecutarse inmediatamente sin esperar a que el servidor responda a OrderModify(..number1)?

 
en ambos casos, la puesta en marcha de las funciones será secuencial. a diferencia de los tripletes, todas las funciones (es decir, principalmente las de negociación) están ahora sincronizadas
Razón de la queja: