![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Wenn Sie diesen EA auf einem Konto ohne aktuelle Positionen oder Aufträge ausführen.
und dann die vom EA eröffnete Position manuell schließen, dann gibt es drei offene Positionen in der Absicherung (auf der Netting-Dreifach-Volumen-Position).
Ist dies das richtige Verhalten? Wahrscheinlich habe ich das Terminal nicht richtig verstanden. Dann klären Sie bitte auf.
Als erstes sollten Sie die Hilfe lesen.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Bitte beachten:
Einfach ausgedrückt, kann der OnTrade()-Handler für jeden einzelnen Handel aufgerufen werden. Die Schließung einer Position kann zur Folge haben, dass mehrere separate Transaktionen anfallen.
Dies lässt sich leicht überprüfen - fügen Sie einfach Print() zu OnTrade() Ihres Beispiels hinzu.
Außerdem möchte ich Ihre Aufmerksamkeit auf Ihren vorherigen Test lenken, in dem Sie vergeblich erwarten, das Auftragsticket durch OrderSendAsync() zu kennen.
Außerdem möchte ich Sie darauf aufmerksam machen, dass Sie laut Ihrem vorherigen Test vergeblich erwarten, das Auftragsticket über OrderSendAsync() herauszufinden.
Es scheint, dass sie nirgendwo zu finden ist. Nur HistorySelect verzögert sich in OnTrade.
Sie scheint nirgendwo aufzutauchen. Es werden nur die HistorySelect-Verzögerungen in OnTrade angezeigt.
Als Erstes sollten Sie das Merkblatt lesen.
https://www.mql5.com/ru/docs/event_handlers/ontrade
Bitte beachten Sie:
Einfach ausgedrückt, kann der OnTrade()-Handler für jede einzelne Handelstransaktion aufgerufen werden. Die Schließung einer Position kann zur Folge haben, dass mehrere separate Transaktionen anfallen.
Es ist leicht zu überprüfen - fügen Sie einfach Print() zu OnTrade() Ihres Beispiels hinzu.
Natürlich habe ich den Abdruck gemacht. Die Frage bezog sich nicht auf die Anzahl der OnTrade-Aufrufe, sondern auf die Anzahl der offenen Positionen.
Nach dem ersten OnTrade wird ein Marktauftrag erteilt. Beim nächsten OnTrade darf diese Marktorder keine weiteren Orders durch die Bedingung öffnen lassen. Aber im nächsten OnTrade ist die Summe von OrdersTotal() + PositionsTotal() ebenfalls Null. Ist das richtig?
Danke, ich habe den Teil mit dem Kopieren und Einfügen nicht gesehen.
Sie scheint nirgendwo aufzutauchen. Es werden nur HistorySelect-Verzögerungen in OnTrade angezeigt.
Die Zwischenspeicherung von Bestellungsauswahlen wurde heute noch verbessert, in ein paar Stunden wird es eine Beta-Version geben.
Die Zwischenspeicherung von Bestellungsauswahlen wurde heute noch verbessert, in ein paar Stunden wird es eine Beta-Version geben.
Meinen Sie HistorySelect? Nur der Autolink führt nicht zu OrderSelect.
Irgendeine Idee, warum mt5 nicht über die Registerkarte "Provisionen"? Sie erscheinen nur, wenn ein Geschäft abgeschlossen ist.
Irgendeine Idee, warum mt5 nicht über "Kommissionen" Registerkarte? Sie erscheinen nur, wenn ein Geschäft abgeschlossen ist.
Ich habe natürlich den Ausdruck gemacht. Die Frage bezog sich nicht auf die Anzahl der OnTrade-Aufrufe, sondern auf die Anzahl der offenen Positionen.
Nach dem ersten OnTrade wird ein Marktauftrag erteilt. Beim nächsten OnTrade darf diese Marktorder keine weiteren Orders durch die Bedingung öffnen lassen. Aber im nächsten OnTrade ist die Summe von OrdersTotal() + PositionsTotal() ebenfalls Null. Ist das richtig?
Es ist alles in der Hilfe: https://www.mql5.com/ru/docs/trading/ordersendasync
Alles steht in der Hilfe: https://www.mql5.com/ru/docs/trading/ordersendasync
https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_state
Jeder Auftrag hat einen Status, der seinen Zustand beschreibt. Um Informationen zu erhalten, verwenden Sie die FunktionenOrderGetInteger() oderHistoryOrderGetInteger() mit dem Modifikator ORDER_STATE. Gültige Werte werden in der Aufzählung ENUM_ORDER_STATE gespeichert.
ENUM_ORDER_STATE
Kennung
Beschreibung
AUFTRAG_ZUSTAND_GESTARTET
Auftrag auf Korrektheit geprüft, aber noch nicht vom Makler angenommen
Tritt der Started-Status nicht nach einem erfolgreichen OrderSendAsync auf?