¿Se puede resolver en principio la tarea en MQL4? - página 3

 

Que el maestro como resolución totalice el número máximo permitido de órdenes en GV que se pueden abrir. Cada esclavo primero disminuye este GV en uno si GV>0, y luego abre una orden. La idea es que cada esclavo se anote primero el derecho a abrir una orden y luego la abra.

 

Acabo de descubrir cuál es el problema: en lugar de 8 esclavos, tienes una multitud de 8 anarquistas ;))

Después de obtener el permiso del maestro, esta multitud desorganizada sale al campo y hace lo que quiere.

 
avtomat:

¿Y por qué y para qué se hacen dos magos idénticos?

Se pueden utilizar variables globales para asignar áreas mágicas no superpuestas a los EAs incluidos. Las comprobaciones y asignaciones correspondientes se realizan en init().

Además, puede limitar el número de órdenes abiertas para cada símbolo, ya sea especificándolo explícitamente o asignando un maestro, en función de la situación general actual que el maestro debe controlar.


"¿Y por qué y para qué se hacen dos magos idénticos?"

Ese fue mi error. No es lo mismo, pero es diferente, por supuesto.

El asunto es que los EAs esclavos son colocadores y cada uno puede abrir 8 rodillas y por supuesto tendrán magos idénticos.

Mi código debería limitar la actividad de los Asesores Expertos y no construir parrillas de más de 2 pares a la vez.

He escrito un bucle con un array que compara los magos abiertos y si ya se han abierto 2 magos diferentes, es decir, 2 parejas ya han empezado a construir redes, una variable global prohíbe construir nuevas para las parejas restantes. También es posible limitar por instrumento, lo principal es limitarlo, pero no funciona, o más bien funciona, pero al asistente no le da tiempo a pensar que es el momento de sobrescribir la variable global.

 
avtomat:

Acabo de descubrir cuál es el problema: en lugar de 8 esclavos, tienes una multitud de 8 anarquistas ;))

Después de obtener el permiso del maestro, esta multitud desorganizada sale al campo y hace lo que quiere.


Exactamente así, obedecen globalmente, pero mientras al maestro se le da la oportunidad de hablar la multitud ya se dispersa en 4-6 pares en lugar de 2
 
Sepulca:

Que el maestro como resolución totalice el número máximo permitido de órdenes en GV que se pueden abrir. Cada esclavo primero disminuye este GV en uno si GV>0, y luego abre una orden. La idea es que cada esclavo se anote primero el derecho a abrir una orden y luego la abra.


Entrar en el código de los EAs de comercio no es una opción; lo único que escucharán es el global
 
Si el esclavo ha realizado alguna acción, debe informar al maestro. El amo, a su vez, debe dar su resumen, del que dependen las acciones (o la inacción) posteriores del esclavo.
 
Por eso preguntaba si el problema se puede resolver con la ayuda de mql4, tal vez una nueva solución o una forma astuta de arrancar el master sin que se cuelgue todo el terminal, pero que el master funcione siempre, no cuando se le da el derecho a voto.
 

A cada esclavo slave1, slave2, ..., slave8 se le puede asignar su propio semáforo work1, work2, ..., work8.

Los esclavos tienen que enviar una solicitud para permitir la acción -- quest1, quest2, ..., quest8.

El maestro, tras recibir la solicitud, gestiona los semáforos.

 
avtomat:

A cada esclavo slave1, slave2, ..., slave8 se le puede asignar su propio semáforo work1, work2, ..., work8.

Los esclavos tienen que enviar una solicitud para permitir la acción -- quest1, quest2, ..., quest8.

El maestro, al recibir la solicitud, gestiona los semáforos.

¿Está cerrado el círculo?
En otras palabras: sin entrar en el código de los esclavos, no se puede resolver el problema?

Esperaba algún bucle maestro inteligente...

 

Zakyza:
¿Se cierra el círculo?
En otras palabras:
sin entrar en el código esclavo
, el problema no se puede resolver?

¿Qué significa "sin entrar en el código esclavo"? ¿No está disponible?

Razón de la queja: