Es wird vorgeschlagen, dass Sie wiederholt zurückkehren, bis Sie entweder die gesamte aktuelle Warteschlange oder eine bestimmte Anzahl von Ereignissen gelesen haben. Wenn die Handelsereignisse vorbei sind, kehrt ein Timer zurück und Sie haben Zugang zu allen Ereignissen auf einmal
Nun, ich werde etwas sagen... Natürlich, natürlich, IMHO, aber es ist eine Aufforderung, den Handler in einem separaten Thread laufen zu lassen. Also, nur mal laut gedacht...
Und wenn man es für sich selbst macht, stellt man alles nach außen und jeder Betreuer wird etwas Ähnliches sein:
Und hier braucht man nicht zu denken - der Markt hat gerade geöffnet, ich habe nachgesehen - alles funktioniert, bis auf die Linie
Handelsereignisse sind in die Warteschlange aufgenommen worden und können gelesen werden
Tut mir leid, aber ich werde Ihnen nicht einmal erklären, was Sie unter einem ordnungsgemäßen Betrieb verstehen. Ich bin es leid, einfache Dinge buchstabieren zu müssen.
Es tut mir leid, aber ich werde Ihnen nicht einmal erklären, was Sie unter einem ordnungsgemäßen Betrieb verstehen. Ich bin es leid, einfache Dinge erklären zu müssen.
Wenn Sie es nicht erklären wollen, erklären Sie es nicht. Ich habe Ihnen gerade gezeigt, dass das Hinzufügen von
Das müssen Sie auch nicht, denn gemäß Einsteins Theorie der Einfachheit gilt: "Wenn man es nicht einfach erklären kann, dann hat man es selbst nicht ganz verstanden."
Ich habe nicht versucht, irgendetwas zu erklären - ich habe ein Beispiel gegeben und das Ergebnis erhalten:
Es stellte sich heraus, dass man Handelsereignisse aus OnMain() lesen kann. Sie haben das Gegenteil behauptet.
Sie haben nichts verstanden. Wenn wir zurückkehren, geben wir die On-Funktion der gebildeten Warteschlange ein. Dies kann eine Pause verursachen, die verhindert, dass der korrekte zweite Auftrag unmittelbar nach dem ersten Auftrag gesendet wird.
Sie schlagen vor, die Warteschlange zu akkumulieren, indem Sie alle On-Funktionen nach der Rückkehr speichern und auf die On-Funktion warten, in der eine Meldung über das Ende des ersten OrderSend enthalten ist. Und dann erst den zweiten OrderSend senden.
Gleichzeitig verstehen Sie nicht, dass die Take-Position während des ersten OrderSend ausgeführt werden kann, aber ihre OnTradeTransaction wird in der Warteschlange später sein (in der gleichen Mikrosekunde, aber später) als die abschließende OnTradeTransaction vom ersten OrderSend.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Es wird vorgeschlagen, dass Sie wiederholt zurückkehren, bis Sie entweder die gesamte aktuelle Warteschlange oder eine bestimmte Anzahl von Ereignissen gelesen haben. Wenn die Handelsereignisse vorbei sind, kehrt ein Timer zurück und Sie haben Zugang zu allen Ereignissen auf einmal
Nun, ich werde etwas sagen... Natürlich, natürlich, IMHO, aber es ist eine Aufforderung, den Handler in einem separaten Thread laufen zu lassen. Also, nur mal laut gedacht...
Und wenn man es für sich selbst macht, stellt man alles nach außen und jeder Betreuer wird etwas Ähnliches sein:
void OnXXX{ gOnXXXMutex.Lock(); COnXXXOverlapped overlapped=new COnXXXOverlapped(<param_list>); gOnXXXOverlappedList.PushBack(overlapped); gOnXXXMutex.Unlock(); DLLOnXXX(<param_list>,overlapped,&gOnXXXMutex); }es gibt eine elegantere Lösung, ohne OnTimer... denken Sie darüber nach
Überlegen Sie selbst, warum es nicht funktionieren würde.
Überlegen Sie selbst, warum es nicht funktionieren würde.
Und es gibt keinen Grund zum Nachdenken - der Markt hat gerade geöffnet, ich habe es überprüft - alles funktioniert, bis zur Berechnung der Linie
if (наблюдаемая позиция закрылась по тейку)Handelsereignisse sind in die Warteschlange aufgenommen worden und können gelesen werden
Und hier braucht man nicht zu denken - der Markt hat gerade geöffnet, ich habe nachgesehen - alles funktioniert, bis auf die Linie
Handelsereignisse sind in die Warteschlange aufgenommen worden und können gelesen werden
Tut mir leid, aber ich werde Ihnen nicht einmal erklären, was Sie unter einem ordnungsgemäßen Betrieb verstehen. Ich bin es leid, einfache Dinge buchstabieren zu müssen.
Es tut mir leid, aber ich werde Ihnen nicht einmal erklären, was Sie unter einem ordnungsgemäßen Betrieb verstehen. Ich bin es leid, einfache Dinge erklären zu müssen.
Wenn Sie es nicht erklären wollen, erklären Sie es nicht. Ich habe Ihnen gerade gezeigt, dass das Hinzufügen von
bool HandleNextEvent (ENUM_EVENT_TYPE);ändert sich nichts grundlegend
nicht grundlegend ändert
Das macht einen großen Unterschied. Es scheint nur sehr viel Zeit zu kosten (mit unbekanntem Ergebnis), um die Idee in vielen Köpfen zu verankern.
Das macht einen großen Unterschied. Es scheint nur sehr viel Zeit zu kosten (mit unbekanntem Ergebnis), diese Idee in vielen Köpfen zu verankern.
Nicht viel, denn gemäß Einsteins Theorie der Einfachheit: "Wenn man es nicht einfach erklären kann, versteht man es selbst nicht".
Das müssen Sie auch nicht, denn gemäß Einsteins Theorie der Einfachheit gilt: "Wenn man es nicht einfach erklären kann, dann hat man es selbst nicht ganz verstanden."
Ja, du hast es nicht verstanden.
Ja, es hat bei Ihnen nicht funktioniert.
Und ich habe nicht versucht, irgendetwas zu erklären - ich habe ein Beispiel gegeben und Ergebnisse erhalten:
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
MT5 und Geschwindigkeit in Aktion
A100, 2020.05.31 23:23
...Markt gerade geöffnet, ich überprüft - alles funktioniert, vor der Berechnung der Zeile
if (наблюдаемая позиция закрылась по тейку)Handelsereignisse wurden in die Warteschlange aufgenommen und können gelesen werden
Ich habe nicht versucht, irgendetwas zu erklären - ich habe ein Beispiel gegeben und das Ergebnis erhalten:
Sie haben nichts verstanden. Wenn wir zurückkehren, geben wir die On-Funktion der gebildeten Warteschlange ein. Dies kann eine Pause verursachen, die verhindert, dass der korrekte zweite Auftrag unmittelbar nach dem ersten Auftrag gesendet wird.
Sie schlagen vor, die Warteschlange zu akkumulieren, indem Sie alle On-Funktionen nach der Rückkehr speichern und auf die On-Funktion warten, in der eine Meldung über das Ende des ersten OrderSend enthalten ist. Und dann erst den zweiten OrderSend senden.
Gleichzeitig verstehen Sie nicht, dass die Take-Position während des ersten OrderSend ausgeführt werden kann, aber ihre OnTradeTransaction wird in der Warteschlange später sein (in der gleichen Mikrosekunde, aber später) als die abschließende OnTradeTransaction vom ersten OrderSend.