Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Offensichtlich bin ich nicht gut darin, das zu erklären. Hier ein Beispiel aus der Praxis. Hier ist der Code:
und so weiter.
Wir können sehen, dass die Reaktionszeit von OnTradeTransaction in zwei Expert Advisors auf Millisekunden zusammenfällt. Also, ich habe eine Frage: kommt das "Deal"-Ereignis zuerst zu einem OnTradeTransaction in einem EA und dann zum nächsten in einem anderen EA oder kommt es irgendwie zu allen Handlern aller EAs auf einmal? Nun, es ist wie eine parallele Multithreading-Operation oder wie auch immer man das in der Programmierung nennt. Ich bin sicher, dass alles nacheinander passiert, es wird nur innerhalb einer Millisekunde verarbeitet, aber ich habe vorsichtshalber gefragt.
Offensichtlich bin ich nicht gut darin, das zu erklären. Hier ein Beispiel aus der Praxis. Hier ist der Code:
void OnTradeTransaction(const MqlTradeTransaction& trans,
const MqlTradeRequest& Anfrage,
const MqlTradeResult& result)
{
Graf++;
Print("Ontrade_test = ",Count);
}
Der Handler ist in zwei Expert Advisors implementiert, so dass er mehrfach in zwei Expert Advisors ausgeführt wird, wenn ein Handel durchgeführt wird. Der Code erzeugt:
18:31:06.495 ontrade_trans_functions (MXI-12.17,H1) Ontrade_test = 1
18:31:06.495 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 1
18:31:06.497 ontrade_trans_functions (MXI-12.17,H1) Ontrade_test = 2
18:31:06.497 ontrade_trans_functions2 (MXI-12.17,M5) Ontrade_test = 2
18:31:06.498 ontrade_trans_functions (MXI-12.17,M5) Ontrade_test = 3
18:31:06.498 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 3
18:31:06.500 ontrade_trans_functions (MXI-12.17,M5) Ontrade_test = 4
18:31:06.500 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 4 ...
und so weiter.
Sie können sehen, dass die OnTradeTransaction-Antwortzeit in den beiden Expert Advisors in Millisekunden gleich ist. Also, ich habe eine Frage: kommt das Handelsereignis zuerst zu einem OnTradeTransaction in einem EA und dann zum nächsten in einem anderen EA oder irgendwie zu allen Handlern von allen EAs auf einmal erhalten? Nun, es ist wie eine parallele Multithreading-Operation oder wie auch immer man das in der Programmierung nennt. Ich bin sicher, dass alles sequentiell abläuft, es funktioniert nur schnell innerhalb einer Millisekunde, aber ich habe vorsichtshalber gefragt.
OnTradeTransaction-Handler für EIN Symbol (m_symbol.Name()) und eine Magie (m_magic).
Fangen Sie die Transaktion zuerst ab
HANDEL_TRANSAKTION_GESCHAEFT_HINZUFUEGEN
Fügen Sie die Transaktion der Historie hinzu. Dies geschieht als Folge der Ausführung von Aufträgen oder von Kontobewegungen.
dann sehen wir nach, ob es sich um einen Handel handelt
DEAL_ENTRY_OUT
Marktaustritt
Das EreignisOnTradeTransaction ist ein Broadcast-Ereignis, alle Aktionen, die Ihr Terminal durchführt, werden dort "abgeladen".
Es ist nur so, dass jeder EA seine eigenen Aktionen filtern muss.
Dann filtern wir in jedem Typ nach Ticket, wenn der Auftrag asynchron gesendet wird, dann
Zunächst wird das Ticket anhand seiner Anfrage-ID abgerufen, und dann wird nach dem Ticket gefiltert.
Das EreignisTRADE_TRANSACTION_REQUEST kommt immer zuerst, die anderen nach Bel ieben.
Hinzugefügt
Dies wurde bereits mehrfach erörtert.
Nachschlagen in Exchange Trading
Danke, es scheint, als ob ich die richtigen Angebote "aufgeschrieben" bekomme.