Asynchrone und mehrfädige Programmierung in MQL - Seite 30

 
fxsaber:

Wir reden hier von einer Fünf.

Hatten Sie das result.order==0 && result.deal==0?

 
Andrey Barinov:

...

Übrigens, alle obigen Informationen heben meinen Ratschlag an Sie nicht auf, EventChartCustom() nicht mehr zu verwenden und vollständig zu Ressourcen zu wechseln. Glauben Sie mir, dieser Weg ist besser und universeller. Und das Muster kann auf ein normales Diagramm angewendet werden, indem CHART_SHOW 0 gesetzt wird (damit es keine unnötigen Ereignisse erhält).

 
Andrey Barinov:

Hatten Sie das result.order==0 && result.deal==0?

&& nein. Aber Result.deal == 0 - das ist nicht genug. Außerdem ist es gefährlich, etwas zu tun, wenn der Handelsverlauf noch keine Zeit hatte, sich zu synchronisieren.

 
Natürlich ist diese Multithreading-Option kostspielig, aber wenn es keine andere Möglichkeit gibt, wird sie das Problem lösen. Kaum.)
 
fxsaber:

&& - nein. Aber Result.deal == 0 - das ist nicht genug. Außerdem ist es gefährlich, etwas zu tun, wenn der Handelsverlauf noch keine Zeit hatte, sich zu synchronisieren.

Nennen Sie mir ein Beispiel für ein Problem. Bisher hat es immer ausgereicht, wenn ich wusste, dass die Bestellung abgeschickt worden ist.

 
Andrey Barinov:

Nennen Sie mir ein Beispiel für ein Problem. Bisher war ich immer zufrieden mit der Information, dass die Bestellung abgeschickt wurde.

Es gibt viele Nuancen, ich kann sie mir nicht alle auf einmal merken. Auf einen Blick

  • Ein Marktauftrag wird erfolgreich erteilt. Es wurde wahr und 10009. Aber sie wurde noch nicht ausgeführt.
  • Die Position ist geschlossen, aber in der Handelshistorie wird sie nicht erwähnt.
  • Der Auftrag wird ausgeführt und die Position wird eröffnet. Der Auftrag wurde jedoch noch nicht aus dem Terminal gelöscht. Somit sind der Auftrag und die Position gleichzeitig im Terminal vorhanden. Ihre Etiketten sind gleich.
 
fxsaber:

Es gibt viele Nuancen, ich kann sie mir nicht alle auf einmal merken. Auf einen Blick

  • Der Marktauftrag wurde erfolgreich erteilt. Wir haben True und 10009. Aber sie wurde noch nicht ausgeführt.
  • Die Position ist geschlossen, aber in der Handelshistorie wird sie nicht erwähnt.
  • Der Auftrag wird ausgeführt und die Position wird eröffnet. Der Auftrag wurde jedoch noch nicht aus dem Terminal gelöscht. Somit sind der Auftrag und die Position gleichzeitig im Terminal vorhanden. Ihre Etiketten sind gleich.

Es gibt in der Tat eine Menge Nuancen. Sie selbst haben viele dieser Probleme in MTOrders gelöst.

Ich baue meine Handelslogik so auf, dass mir die result.order-Informationen ausreichen. Mehrere Jahre lang gab es keine unlösbaren Aufgaben (Probleme).

P.S. Schon wieder Offtopic.

 
Andrey Barinov:

Peter, du verstehst das nicht.

Es gibt EINEN Berater. Es läuft auch zusätzlich auf einem unsichtbaren Diagramm, nur im Agentenmodus. Es laufen KEINE Ereignisse auf dem Agenten. Das bedeutet, dass die Ressource in keiner Weise abgefragt werden kann, der Timer nicht gestartet ist und keine Ticks eintreffen.

Der Expert Advisor kann beliebig viele solcher Agenten multiplizieren. Jeder einzelne wird zu einem eigenen Thema.

Können Sie diese Aussage noch einmal erläutern? Wenn eine Vorlage auf ein reguläres Diagramm angewendet wird und eine Kopie des EA gestartet wird, werden normalerweise alle Ereignisse eintreffen. Nicht wahr?

Und wenn die Vorlage auf _OBJ_CHART angewendet wird, wie kann der EA überhaupt darauf arbeiten, wenn nicht einmal die Ticks kommen?

 
Andrey Barinov:

Es gibt wirklich eine Menge Nuancen. Sie selbst haben viele dieser Probleme in MTOrders gelöst.

Ich habe dort alles gelöst.

Ich baue meine Handelslogik so auf, dass ich genügend Informationen über Ergebnisse und Aufträge habe. Mehrere Jahre lang gab es keine unlösbaren Aufgaben (Probleme).

Sie müssen bestimmte Server nehmen.

P.S. Schon wieder Offtopic.

Ja, lasst uns zu Ende kommen.

 
Реter Konow:

Können Sie diese Aussage noch einmal erläutern? Denn wenn Sie eine Vorlage auf ein normales Diagramm anwenden und eine Kopie des EA ausführen, werden alle Ereignisse wie gewohnt eintreffen. Nicht wahr?

Und wenn eine Vorlage auf _OBJ_CHART angewendet wird, wie kann sie dort vollständig funktionieren, wenn nicht einmal die Häkchen erscheinen?

Das normale Diagramm enthält alle Ereignisse. Der OBJ_CHART hat nur OnChartEvent, wo der Haupt-EA OnTick und OnTimer sendet, falls erforderlich.