Ist die Aufgabe prinzipiell in MQL4 lösbar? - Seite 3

 

Lassen Sie den Master als Beschluss die maximal zulässige Anzahl von Aufträgen in GV, die eröffnet werden können, zusammenfassen. Jeder Slave verringert diesen GV zunächst um eins, wenn GV>0 ist, und eröffnet dann einen Auftrag. Die Idee ist, dass jeder Sklave zuerst das Recht erhält, einen Auftrag zu eröffnen und ihn dann auch eröffnet.

 

Ich habe gerade herausgefunden, wo das Problem liegt: statt 8 Sklaven hast du eine Gruppe von 8 Anarchisten ;))

Nachdem sie die Erlaubnis des Meisters erhalten hat, geht diese unorganisierte Gruppe auf das Feld und macht, was sie will.

 
avtomat:

Und warum und wieso werden zwei identische Zauberer hergestellt?

Globale Variablen können verwendet werden, um den einbezogenen EAs nicht überlappende magische Bereiche zuzuweisen. Die entsprechenden Prüfungen und Zuweisungen werden in init() vorgenommen.

Außerdem können Sie die Anzahl der für jedes Symbol geöffneten Aufträge begrenzen, indem Sie sie entweder explizit angeben oder einen Master zuweisen, je nach der aktuellen allgemeinen Situation, die der Master kontrollieren soll.


"Und warum und wieso werden zwei identische Magier gemacht?"

Das war mein Fehler. Nicht dasselbe, aber natürlich anders.

Die Sache ist die, dass Sklaven-EAs Setter sind und jeder von ihnen 8 Knie öffnen kann und natürlich werden sie identische Magier haben.

Mein Code sollte die Aktivität der Expert Advisors begrenzen und keine Grids mit mehr als 2 Paaren gleichzeitig erstellen.

Ich habe eine Schleife mit einem Array geschrieben, das die geöffneten Zauberer vergleicht und wenn 2 verschiedene Zauberer bereits geöffnet wurden, d.h. 2 Paare haben bereits mit dem Bau von Netzen begonnen, verbietet eine globale Variable den Bau von neuen Netzen für die verbleibenden Paare. Es ist auch möglich, durch das Instrument zu begrenzen, die Hauptsache ist, zu begrenzen, aber es funktioniert nicht, oder besser gesagt, es funktioniert, aber der Assistent hat keine Zeit zu denken, dass es Zeit ist, die globale Variable zu überschreiben.

 
avtomat:

Ich habe gerade herausgefunden, wo das Problem liegt: statt 8 Sklaven hast du eine Gruppe von 8 Anarchisten ;))

Nachdem sie die Erlaubnis des Meisters erhalten hat, geht diese unorganisierte Gruppe auf das Feld und macht, was sie will.


Genau, sie gehorchen global, aber solange der Meister die Möglichkeit hat, zu sprechen, ist die Menge bereits auf 4-6 Paare statt auf 2 verstreut.
 
Sepulca:

Lassen Sie den Master als Beschluss die maximal zulässige Anzahl von Aufträgen in GV, die eröffnet werden können, zusammenfassen. Jeder Slave verringert diesen GV zunächst um eins, wenn GV>0 ist, und eröffnet dann einen Auftrag. Die Idee ist, dass jeder Sklave zuerst das Recht erhält, einen Auftrag zu eröffnen und ihn dann auch eröffnet.


Es ist keine Option, in den Code von Handels-EAs einzudringen; das einzige, worauf sie hören, ist die globale
 
Wenn der Sklave eine Aktion durchgeführt hat, muss er sich beim Master zurückmelden. Der Meister muss seinerseits eine Zusammenfassung geben, von der das weitere Handeln (oder Nichthandeln) des Sklaven abhängt.
 
Deshalb habe ich gefragt, ob das Problem mit Hilfe von mql4 gelöst werden kann, vielleicht eine neue Lösung oder ein schlauer Weg, den Master zu starten, ohne das ganze Terminal hängen zu lassen, sondern damit der Master immer funktioniert, nicht wenn er das Recht hat zu wählen.
 

Jedem Slave slave1, slave2, ..., slave8 kann eine eigene Semaphore work1, work2, ..., work8 zugeordnet werden.

Die Slaves müssen eine Anfrage senden, um die Aktion zu erlauben - quest1, quest2, ..., quest8.

Der Master, der die Anfrage erhalten hat, verwaltet die Semaphoren.

 
avtomat:

Jedem Slave slave1, slave2, ..., slave8 kann eine eigene Semaphore work1, work2, ..., work8 zugeordnet werden.

Die Slaves müssen eine Anfrage senden, um die Aktion zu erlauben - quest1, quest2, ..., quest8.

Der Master verwaltet nach Erhalt der Anfrage die Semaphoren.

Ist der Kreis geschlossen?
Mit anderen Worten: Ohne in den Code der Sklaven einzudringen, kann das Problem nicht gelöst werden?

Ich hatte auf eine clevere Masterschleife gehofft...

 

Zakyza:
Ist der Kreis geschlossen?
Mit anderen Worten: Ohne in den Slave-Code einzudringen, kann das Problem nicht gelöst werden?

Was bedeutet "ohne in den Slave-Code einzudringen"? Ist sie nicht verfügbar?