Mein Ansatz. Der Kern ist der Motor. - Seite 145

 
Oleg Papkov:

Ich gehe davon aus, dass jeder Durchfluss zum und vom Motor eine Art Durchflusseigenschaft haben sollte, eine Art magische Zahl und eine Durchflusseigenschaft, die mit dem Prüfgerät funktioniert (sie ist immer eindeutig). Die Engine reagiert auf den aktuell eingestellten Flow und die Expert Advisors, Indikatoren reagieren auf ihr Attribut (Pseudo-magische Zahl) des Infostreams.

Im Tester funktioniert jetzt alles einwandfrei, ich steuere den Expert Advisor im Tester von einem anderen Fenster aus. Es befindet sich im Simulatormodus.

Derzeit sind die Nachrichten zwischen dem EA und der Engine nicht an einen bestimmten Magier oder Namen des EAs gebunden. Das heißt, wenn die Engine Informationen in eine Ressource schreibt, werden diese von jedem Expert Advisor gelesen, der für die Kommunikation eingerichtet wurde. Um die Kommunikationsströme zu trennen, muss jeder EA ein spezielles Label im Nachrichtenkopf definieren. Und dann lesen und befolgen Sie entweder die Anweisungen oder ignorieren Sie sie. Für Expert Advisors sollte es im Tester ein eigenes Label geben.

Aber hier sehen wir die Notwendigkeit für eine universelle GUI für die Engine, über die wir die Kommunikation konfigurieren und umschalten können. Auch um Informationen über die Expert Advisors zu erhalten.

Wir müssen also das Konzept der EAs ändern. Um genau zu sein, müssen wir sie aufrüsten.

Der Haken an der Sache ist folgender.

Wir müssen entweder eine benutzerdefinierte GUI für jeden EA oder eine gemeinsame GUI für alle EAs haben. Wenn sie üblich ist, dann sollte sie unveränderlich sein. Das muss im Voraus gut durchdacht sein. Jeder Expert Advisor (auch ohne GUI) muss über interne Hebel verfügen, die er der Engine zur Verfügung stellt.


Etwas zum Nachdenken...

 
Реter Konow:


Aber hier kommen wir zur Notwendigkeit einer universellen GUI für die Engine, über die die Kommunikation konfiguriert und geschaltet werden kann. Auch, um Informationen über EAs zu erhalten.

Es muss lediglich ein notwendiger und ausreichender, fest konzipierter und konfigurierter administrativer Teil in der Engine vorhanden sein, der sich mit der Verwaltung der Steuerung befasst, und der vielfältigste kundenspezifische Teil, der nach dem Projekt des Kunden gebaut wird.

 
Oleg Papkov:

Es muss lediglich ein notwendiger und ausreichender, dauerhaft konzipierter und konfigurierter Verwaltungsteil in der Maschine vorhanden sein, der sich mit der Verwaltung des Managements und einer Vielzahl von kundenspezifischen Teilen befasst, die entsprechend dem Projekt des Kunden gebaut werden.

Dieser administrative Teil ist nicht nachvollziehbar. Was soll das sein?

Wenn der Motor mit einem Expert Advisor funktioniert, ist das eine Sache. Und wenn es mit mehreren verschiedenen funktioniert, ist das eine andere Sache.

Es fehlt immer noch ein konzeptioneller Rahmen...

 
Реter Konow:

Dies ist der administrative Teil, der unklar ist. Was soll es sein?

Wenn der Motor mit einem EA funktioniert, ist das eine Sache. Wenn es mit mehreren verschiedenen funktioniert, ist das etwas anderes.

Bislang fehlt es an einem konzeptionellen Rahmen...

Sagen wir so etwas wie dies.Projekt des Verwaltungsausschusses

Und im EA oder Indikator in den Starteinstellungen das gleiche Feld "Objekt 1", usw.

 
Oleg Papkov:

Sagen wir so etwas wie dies.

Und im EA oder Indikator in den Starteinstellungen das gleiche Feld "Objekt 1" usw.

Das frage ich mich. Meinen Sie, dass wir die Verbindung mit diesen Tasten umschalten sollten? Aber in diesem Fall müssen alle Expert Advisors Kopien eines EA sein, die auf verschiedenen Paaren laufen.

Und was, wenn die Expert Advisors unterschiedlich sind?

 
Oleg Papkov:

Sagen wir so etwas wie dies.

Und im EA oder Indikator in den Starteinstellungen das gleiche Feld "Objekt 1", usw.

Ich werde es zuerst umsetzen. Mit einem EA auf verschiedenen Paaren. Und dann werde ich herausfinden, wie ich mit verschiedenen EAs umgehen kann.

 

Übrigens, hier ist eine gute Demonstration der Arbeit mit dem Konstruktor. Dynamisch, ohne Worte und zur Musik. :)

ERSTELLEN VON VISUAL STUDIO

https://www.mql5.com/ru/blogs/post/712102


 
Реter Konow:

Übrigens, hier ist eine gute Demonstration der Arbeit mit dem Konstruktor. Dynamisch, ohne Worte und zur Musik. :)

VISUELLES STUDIO


Original.

 
Oleg Papkov:

Sagen wir so etwas wie dies.

Und im EA oder Indikator in den Starteinstellungen das gleiche Feld "Objekt 1", usw.

Diese sind als mit der Steuerung verbunden gekennzeichnet. Und es gibt nur ein Objekt, das kontrolliert wird. Es gibt also irgendwo einen Kippschalter mit einer großen Anzeige.

 
Oleg Papkov:

Diese sind als mit der Steuerung verbunden gekennzeichnet. Aber es gibt eine Kontrolle, die speziell kontrolliert wird. Es gibt also irgendwo einen Kippschalter mit einer großen Anzeige.

Jeder EA hat seine eigene Kopie des Parameterkerns. Er kann vorübergehend von der gemeinsamen grafischen Benutzeroberfläche getrennt und über einen anderen EA mit der Engine verbunden werden. Es ist wichtig, dass es sich um Kopien desselben EA handelt.

Allerdings gibt es hier einige Schwierigkeiten, die ich selbst nicht ganz verstehe.

Theoretisch hört sich die Frage so an:

Warum müssen wir eine Engine mit GUI für jedes Diagramm einer EA-Kopie hinzufügen, wenn wir eine Engine mit der gemeinsamen GUI erstellen und sie mit allen Kopien des EA verbinden können?

In der Praxis werden wir auf einige technische Schwierigkeiten stoßen.

Die Expert Advisor-Kopie kann neue Werte in ihre Kopie des Parameterkerns schreiben. Wenn eine der Kopien keine Verbindung zur Engine hat, wird der Kernel nur auf der Seite der Kopie geändert. Wenn wir also die Verbindung wiederherstellen, müssen wir den gesamten Kernel an die Engine übergeben, und die Engine wird alle Elemente in allen Fenstern neu zeichnen, sofern erforderlich. Dies ist prinzipiell möglich.

Oder Sie können den Parameterkern selbst neu erstellen, indem Sie ihn zu einer Ressource machen. In diesem Fall erhält die Engine alle Änderungen auf einmal und zeichnet die Elemente einfach neu. Das ist keine schlechte Idee.

Aber was bringt uns das?

Vielleicht reduzieren wir die CPU-Belastung, machen Threads frei. Wenn wir 10 Kopien von EA auf 10 Paaren laufen lassen und jede Engine mit einer grafischen Benutzeroberfläche belasten, kann die gesamte CPU-Last zu hoch sein. Denn jede grafische Benutzeroberfläche erfordert das Neuzeichnen von Elementen, was eine hohe CPU-Belastung darstellt. Tatsächlich können wir aber nur eine konkrete GUI einer Kopie sehen. Die anderen sind versteckt.

Es ist also wahrscheinlich der richtige Weg. Einen gemeinsamen Motor bauen.

Grund der Beschwerde: