Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1854

 
Alexander Avksentyev #:

Wenn das Netz so lange braucht, wird es die rechten Seiten der Reihe nach schließen.
Wenn Sie den letzten Auftrag abschließen, kann es passieren, dass es 10 Aufträge gibt, die abgeschlossen werden müssen, und er schließt sie alle nacheinander ab, was unendlich viel Zeit in Anspruch nimmt.

Dieser Prozess ist ein Non-Stop-Prozess.

Bei "true" wird fortgefahren, bei "false" wird ein Fehler verarbeitet, bei einem kritischen Fehler wird abgebrochen, bei einem unkritischen (Schlupf) wird fortgefahren.

Wenn der Handel keine vollständige Küche ist, schließen 15-20 EAs schnell, etwa 2-3 Sekunden, ansonsten bis zu 15 Sekunden. Bearbeiten: Es gab Fälle mit einer Dauer von bis zu 2 Minuten.

Wenn es sich um mt5 handelt, wird es fast augenblicklich geschlossen.

 
Vitaly Muzichenko #:

Sie wird ohne Unterbrechung geschlossen.

Prüfen Sie nach dem Schließen einer Order, was die Funktion OrderClose zurückgegeben hat, wenn true - weiter, wenn false - Fehler bei der Abwicklung, kritischer Fehler - Ausstieg, unkritisch (Slippage) - weiter.

Wenn der Handel keine vollständige Küche ist, schließen 15-20 EAs schnell, etwa 2-3 Sekunden, ansonsten bis zu 15 Sekunden. Bearbeiten: Es gab Fälle mit einer Dauer von bis zu 2 Minuten.

Wenn es sich um mt5 handelt, schließt es sich fast augenblicklich.

Wenn ein Fehler auftritt, müssen Sie nach einer bestimmten Zeitspanne einen Antrag auf Schließung dieses Auftrags stellen. Denn wenn er ewig in der Schwebe bleibt, ist er bereits ein schlechter Roboter. Bei einem solchen Auftrag (Position) ist es sogar möglich, die Einlage zu verlieren, wenn man sie lange hält.

 
Mihail Matkovskij #:

Wenn ein Fehler auftritt, müssen Sie nach einer bestimmten Zeitspanne eine Aufforderung zum Schließen des Auftrags senden. Wenn er für immer dort bleibt, wird er ein schlechter Roboter sein. Aufgrund dieser Reihenfolge (Position) kann die Einlage sogar verloren gehen, wenn sie lange gehalten wird.

Wir müssen das richtig angehen. Wenn es kritisch ist, hat es keinen Sinn, den Server zu belasten.

 
Vitaly Muzichenko #:

Es muss richtig gehandelt werden. Wenn es kritisch ist, hat es keinen Sinn, auf den Server einzudreschen.

Das hat natürlich keinen Sinn. Aber nach einer gewissen Zeit sollten Sie versuchen, diesen Auftrag (Position) zu schließen. Der Grund dafür ist folgender. Erstens kann die offene Position nicht unendlich lange bestehen bleiben. Zweitens kann die Stelle selbst nicht für immer geschlossen werden. Früher oder später wird der Server eine Anfrage zur Schließung des Auftrags(zum Verlassen der Position) akzeptieren. Und wenn Sie nichts tun, wird das Ergebnis das sein, was ich oben erwähnt habe. Die Einlage kann stark in Anspruch genommen werden oder ihren Wert verlieren.

 
Mihail Matkovskij #:

Das hat natürlich keinen Sinn. Nach einer gewissen Zeitspanne lohnt es sich jedoch, diesen Auftrag (Position) zu schließen. Weil. Erstens kann die offene Position nicht ewig bestehen bleiben. Zweitens kann die Stelle selbst nicht für immer geschlossen werden. Früher oder später wird der Server eine Anfrage zur Schließung des Auftrags(zum Verlassen der Position) akzeptieren. Und wenn Sie nichts tun, wird das Ergebnis das sein, was ich oben erwähnt habe. Die Einlage kann in einen großen Rückschlag fallen oder ausverkauft sein.

Es wurde vor kurzem übersprungen, Brokerage-Unternehmen deaktiviert Auto-Trading auf dem Server. Das war vor 1 Minute und dann wurde es unterbrochen.

Werden wir trotzdem versuchen, sie zu schließen?

 
Vitaly Muzichenko #:

Kürzlich wurde erwähnt, dass der DC die Fähigkeit zum automatischen Handel auf dem Server deaktiviert hat. Das war vor 1 Minute und dann haben sie es abgeschaltet.

Werden wir trotzdem versuchen, die Sache abzuschließen?

Die Meldung ist korrekt, wenn es kritische Fehler bei den Abschlusspositionen gibt.

 
Vitaly Muzichenko #:

Kürzlich wurde erwähnt, dass der DC die Fähigkeit zum automatischen Handel auf dem Server deaktiviert hat. Das war vor 1 Minute und dann haben sie es abgeschaltet.

Wollen Sie immer noch versuchen, sie abzuschalten?

Nun, dann können wir anrufen

AccountInfoInteger(ACCOUNT_TRADE_EXPERT)

Und auch

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)

И

TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)

Für den Fall der Fälle. Und nichts mit dem entsprechenden Ergebnis einer oder aller Funktionen machen. Und behandeln Sie Fehler, die sich aus einem erfolglosen Abschluss ergeben, entsprechend.

In jedem Fall garantieren wir, dass der Roboter nicht handeln wird, solange mindestens eine der Funktionen dies verbietet.

Документация по MQL5: Программы MQL5 / Разрешение на торговлю
Документация по MQL5: Программы MQL5 / Разрешение на торговлю
  • www.mql5.com
Разрешение на торговлю - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Mihail Matkovskij #:

Nun, und behandeln Sie Fehler, die sich aus dem fehlgeschlagenen Abschluss ergeben, entsprechend.

Nur weiß ich nicht, wenn OrderSend aufgerufen wird und der Server den Handel deaktiviert hat,gibt OrderSend dann false zurück oder wird die Anfrage zuerst an den Server gesendet und dann eine Antwort zurückgegeben? Wenn letzteres der Fall ist, gibt OrderSend true zurück. Und dann müssen Sie auf jeden Fall eine Funktion ( ) hinzufügen, um Aufrufe derOrderSend-Funktion zu blockieren. Im ersten Fall wird die Anfrage gar nicht an die Warteschlange gesendet, da OrderSend false zurückgibt. Ergibt das einen Sinn?

 
Mihail Matkovskij #:

Nur weiß ich nicht, wenn OrderSend aufgerufen wird und der Server den Handel deaktiviert hat,gibt OrderSend dann false zurück oder wird die Anfrage zuerst an den Server gesendet und dann eine Antwort zurückgegeben? Wenn letzteres der Fall ist, gibt OrderSend true zurück. Und dann müssen Sie auf jeden Fall eine Funktion ( ) hinzufügen, um Aufrufe derOrderSend-Funktion zu blockieren. Im ersten Fall wird die Anfrage gar nicht an die Warteschlange gesendet, da OrderSend false zurückgibt. Ergibt das einen Sinn?

OrderSend gibt bei Erfolg ein Ticket zurück :)

Ich werde wahrscheinlich in die Abteilung für Neueinsteiger gehen.

 
Vitaly Muzichenko #:

OrderSend gibt bei Erfolg ein Ticket zurück :)

Ich werde wahrscheinlich in die Abteilung für Neulinge gehen.

OrderSend in MQL4 gibt ein Ticket zurück. Und in MQL5 ist es ein bool. Ich bin es gewohnt,MQL5 als Fiktion zu betrachten.Ich habe ein wenig über MQL4 vergessen (weil ich es gewohnt bin, Anwendungen von MQL5 auf MQL4 zu portieren). In MQL5 öffnet und schließt das OrderSend bool Positionen und erstellt/löscht Aufträge. MQL5 verfügt über Funktionen für Aufträge, Geschäfte und Positionen. In MQL4 steht int OrderSend für den Eingang und bool OrderClose für den Ausgang. Es gibt auch bool OrderDelete für schwebende Aufträge. Und inMQL4 werden nur Aufträge in Markt- und schwebende Aufträge unterteilt. Sie haben mich daran erinnert, was der Unterschied zwischen diesen beiden Sprachen ist. :)

Man kann also nicht alles wissen. Und es ist sehr leicht, sich zu verwirren.