Asynchrone und mehrfädige Programmierung in MQL - Seite 32

 
Реter Konow:

Und wie erhalten Sie die Ergebnisse der Berechnungen zurück?

Im Prinzip könnte er sie in eine Ressource schreiben, oder?

Und wenn Sie ein Array von Daten für Berechnungen übergeben müssen? Geben Sie ihm einen Befehl über OnChartEvent(), es wird auf die Ressource zugreifen, die Daten lesen, die Berechnung durchführen und dann das Ergebnis in die Ressource schreiben?

Aber wie auch immer, der Befehl kann nur durch die EventChartCustom() gegeben werden?

Und wenn wir nach dem ersten Aufruf eine Schleife bilden, so dass die Ressource ständig aufgerufen, gelesen und Befehle ausgeführt werden?

Entschuldigen Sie die große Anzahl von Fragen. ))

Sie haben eine interessante Zeit des Experimentierens vor sich!

Ich delegiere die gesamte Handelslogik. Ich muss die Ergebnisse nicht melden, sie können von überall im Terminal abgerufen werden.

 
Andrey Barinov:

Sie haben eine interessante Zeit des Experimentierens vor sich!

Ich delegiere die gesamte Handelslogik. Die Ergebnisse müssen nirgendwo mitgeteilt werden, sie sind bereits von jedem beliebigen Punkt des Terminals aus verfügbar.

Ich danke Ihnen für Ihre Hilfe. Ich habe eine Menge neuer Dinge gelernt. Ich werde experimentieren und die Ergebnisse in diesem Thread veröffentlichen. Aber es wird nicht schnell gehen, da ich vorher noch viele Aufgaben zu lösen habe.

Ich denke folgendermaßen. Wenn OBJ_CHART beim Starten in eine Schleife geschaltet wird, um die Ressource zu lesen, kann die Kommunikation mit OBJ_CHART fortgesetzt werden, und OBJ_CHART führt alle Aufgaben aus, die das Original, mit dem es gestartet wurde, ausführen kann.


Hinzugefügt: In der Dokumentation steht, dass die Vorlage nicht als Ressource in den EA eingefügt werden kann. Es gibt also ein Problem der Übertragbarkeit. Aber! der EA kann bei Bedarf eine Vorlage von sich selbst erstellen, diese laden und seine Kopie dazu zwingen, nur die erforderlichen Funktionen auszuführen und mit ihr über Ressourcen zu kommunizieren, nachdem die Schleife durchlaufen wurde. Ich frage mich, ob das Multithreading-Problem gelöst werden kann, wenn diese Option nicht zu irgendeinem Zeitpunkt fehlschlägt.

 
Реter Konow:

Hinzugefügt: In der Dokumentation steht, dass die Vorlage nicht als Ressource in den EA eingefügt werden kann. Es gibt also ein Problem der Übertragbarkeit. Aber! der EA kann bei Bedarf eine Vorlage von sich selbst erstellen, sie laden und seine Kopie dazu zwingen, nur die erforderlichen Funktionen auszuführen und mit ihr über Ressourcen zu kommunizieren, nachdem sie in eine Schleife geschaltet wurde. Interessanterweise kann das Multithreading-Problem gelöst werden, wenn diese Option zu keinem Zeitpunkt fehlschlägt.

Die Vorlage muss nicht migriert werden. Sie muss einmal zu Beginn des Haupt-EAs erstellt werden (solange keine Bearbeiter erstellt werden)

 
Andrey Barinov:

Die Vorlage muss nicht verschoben werden. Sie muss einmal beim Start des Haupt-EAs erstellt werden (solange noch keine Agenten erstellt sind)

Ich meinte die Portabilität von Programmen, die die Vorlagen verwenden. Sie können eine Vielzahl von Vorlagen mit unterschiedlichen Funktionen erstellen und diese bei Bedarf über den Haupt-EA ausführen. Ein solcher Expert Advisor muss aber mit allen Vorlagen von Computer zu Computer übertragen werden, da diese nicht in ihm abgelegt werden können.
 
Реter Konow:

Ich danke Ihnen für Ihre Hilfe. Ich habe eine Menge neuer Dinge gelernt. Ich werde experimentieren und die Ergebnisse in diesem Thread veröffentlichen. Aber es wird nicht schnell gehen, denn bis dahin sind noch viele Aufgaben zu erledigen.

Ich denke folgendermaßen. Wenn OBJ_CHART beim Starten in eine Schleife geschaltet wird, um die Ressource zu lesen, kann die Kommunikation mit OBJ_CHART fortgesetzt werden, und OBJ_CHART führt alle Aufgaben aus, die das Original, mit dem es gestartet wurde, ausführen kann.


Hinzugefügt: In der Dokumentation steht, dass die Vorlage nicht als Ressource in den EA eingefügt werden kann. Es gibt also ein Problem der Übertragbarkeit. Aber! der EA kann bei Bedarf eine Vorlage von sich selbst erstellen, diese laden und seine Kopie dazu zwingen, nur die erforderlichen Funktionen auszuführen und mit ihr über Ressourcen zu kommunizieren, nachdem die Schleife durchlaufen wurde. Ich frage mich, ob das Multithreading-Problem gelöst werden kann, wenn diese Option nicht zu irgendeinem Zeitpunkt fehlschlägt.

Das ist eine interessante Lösung, aber es fehlt eine andere, vollwertige Lösung.
Vergessen Sie auch nicht, dass Sie mit diesem Ansatz nicht mehr als 98 Threads erstellen können!
Da das Terminal nicht zulässt, dass Sie mehr als 99 Charts öffnen können. Und dies ist bereits eine Einschränkung der Möglichkeiten.
Für GUI-Programme, für die nicht so viele Threads benötigt werden, funktioniert diese Lösung gut, aber sie ist keine Option, wenn mehr als 98 Threads benötigt werden.
Hat jemand überprüft, wie lange es dauert, den Expertenagenten bei diesem Ansatz zu starten? Wenn eine Kopie einer Vorlage erstellt wird, usw.
Wie hoch sind die Kosten für diese Lösung?

 
Roman:

Es ist eine interessante Lösung, aber es fehlt eine andere, vollwertige Lösung.
Vergessen Sie auch nicht, dass Sie mit diesem Ansatz nicht mehr als 98 Threads erstellen können!
Da das Terminal nicht zulässt, dass Sie mehr als 99 Charts öffnen können. Und dies ist bereits eine Einschränkung der Möglichkeiten.
Für GUI-Programme, für die nicht so viele Threads benötigt werden, funktioniert diese Lösung gut, aber sie ist keine Option, wenn mehr als 98 Threads benötigt werden.
Hat jemand überprüft, wie viel Zeit es dauert, den Expert Advisor bei diesem Ansatz zu starten? Wenn eine Kopie einer Vorlage erstellt wird, usw.
Wie hoch sind die Kosten für diese Lösung?

Ich stimme zu. Es ist eine Krückenlösung, und selbst wenn sich alle Hoffnungen darauf erfüllen, steht sie nur mir und einigen wenigen anderen Personen zur Verfügung, die eine Technologie zur Interprogrammierung entwickelt haben. Bei anderen wird es nicht funktionieren. Tatsache.
 
Roman:

Es ist eine interessante Lösung, aber es fehlt eine andere, vollwertige Lösung.
Vergessen Sie auch nicht, dass Sie mit diesem Ansatz nicht mehr als 98 Threads erstellen können!
Da das Terminal nicht zulässt, dass Sie mehr als 99 Charts öffnen können. Und dies ist bereits eine Einschränkung der Möglichkeiten.
Für GUI-Programme, für die nicht so viele Threads benötigt werden, funktioniert diese Lösung gut, aber sie ist keine Option, wenn mehr als 98 Threads benötigt werden.
Hat jemand überprüft, wie lange es dauert, den Expertenagenten bei diesem Ansatz zu starten? Wenn eine Kopie einer Vorlage erstellt wird, usw.
Wie hoch sind die Kosten für diese Lösung?

Du magst nicht alles, also gehst du deinen eigenen Weg zur Hölle. Ich habe Ihnen Links zu dem Referenzbuch mit Beispielen hinterlassen, haben Sie es sich angesehen? Oder haben Sie es verpasst?

 
Vict:

Du magst nicht alles, also gehst du deinen eigenen Weg zur Hölle. Ich habe Ihnen Links zu dem Referenzbuch mit Beispielen hinterlassen, haben Sie es gesehen? Oder haben Sie es verpasst?

Du bist mir mit der Antwort voraus ) Ich schaue es gerade durch, danke für die Links, es ist das richtige für C++ Thema ))
Und die Tatsache, dass es schwierig ist oder nicht, ist eine andere Sache, ich habe eine Vorstellung davon, was es ist))
Ich mag es alle )) verschiedene Ansätze zu verstehen, und dann wählen Sie die eine, die mehr Sinn für mich macht und erfüllt die Anforderungen, ist alles einfach.

 
Roman:

Du bist mir mit der Antwort voraus ) Ich sehe sie mir gerade an, danke für die Links, das ist genau das, was ich zum Thema C++ brauche ))
Und die Tatsache, dass es schwierig ist oder nicht, das ist eine andere Sache, ich habe ein Verständnis von dem, was Zukunft ist ))
Ich mag es alle )) verschiedene Ansätze zu verstehen, und dann wählen Sie die eine, die mehr Sinn für mich macht, ist alles einfach.

ok, sag mir Bescheid, wenn du etwas brauchst, wir werden deine euentloop skizzieren, denke ich ))

 
Реter Konow:
Es ist eine Krückenlösung

Nein, es ist ein guter Kompetenzfilter.