Wodurch soll OnTradeTransaction() in mql4 ersetzt werden?

 

Genau das ist meine Frage. Ich benutze MT5 schon seit langem, aber aus irgendeinem Grund muss ich MT4 benutzen. Aber mql4 hat kein OnTrade() und OnTradeTransaction(), was sehr traurig ist.

Daher muss ich das Problem mit geringem Aufwand (in Bezug auf die Ressourcen) lösen.

Bisher ist mir noch nichts Besseres eingefallen, als die offenen Aufträge durchzugehen und den aktuellen Stand mit dem vorherigen zu vergleichen.

Vielleicht gibt es vernünftigere Lösungen.

 
Das ist genau die vernünftigste Lösung. Und es ist auch die sinnvollste für MT5, weil man sich nicht nur auf OnTrade() und OnTradeTransaction() verlassen kann. Sie sind nicht garantiert.
 
Aleksandr Volotko:

Genau das ist meine Frage. Ich benutze MT5 schon seit langem, aber aus irgendeinem Grund muss ich MT4 benutzen. Aber mql4 hat kein OnTrade() und OnTradeTransaction(), was sehr traurig ist.

Daher muss ich das Problem mit geringem Aufwand (in Bezug auf die Ressourcen) lösen.

Bisher ist mir noch nichts Besseres eingefallen, als die offenen Aufträge durchzugehen und den aktuellen Stand mit dem vorherigen zu vergleichen.

Vielleicht gibt es vernünftigere Lösungen.

Nicht die einfachste Variante ist es, Artikel von Artyom Trishkin zu lesen. Und es gibt 31 oder bereits 32 von ihnen. Ich habe das überprüft und mich mit ihm darüber ausgetauscht. Alle Ereignisse werden "mit einem Paukenschlag" aufgefangen.

Natürlich sollte es einfacher sein, wenn Sie nicht versuchen, in das Wesen des Inhalts der Codes einzudringen.


ps; Oh... Ich bin gerade von diesem Thema zurückgekommen, und der Diskussionsfaden zum 32. Teil des Artikels ist mir sofort ins Auge gefallen. Der Artikel selbst ist hier zu finden.

Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка ордеров по условиям"
  • 2020.01.24
  • www.mql5.com
Опубликована статья Библиотека для простого и быстрого создания программ для MetaTrader (Часть XXXII): Отложенные торговые запросы - установка орде...
 

Igor hat Recht, es ist schwer, etwas Intelligenteres und gleichzeitig Einfacheres zu finden, denn jede andere Lösung basiert auf demselben Aufruf von OrdersTotal() mit Filterung der Bestellungen nach Geschmack und weiterer Datumsverarbeitung.

Ich höre hier auf, das reicht für mein Problem.

 
Ihor Herasko:
Genau das ist die vernünftigste Lösung. Und es ist auch die sinnvollste für MT5, weil man sich nicht nur auf OnTrade() und OnTradeTransaction() verlassen kann. Sie sind nicht garantiert.

Es muss schon lange her sein, dass Sie sich dafür interessiert haben. Der Gedanke, dass eine Transaktion verloren gehen kann, wurde schon vor langer Zeit aus den Unterlagen entfernt. Für mql5 gibt es also nichts Besseres als OnTradeTransaction(). Ich habe die Geschwindigkeit überprüft, mit der ich das Ereignis der Aktivierung einer ausstehenden Order in OnTradeTransaction() und über die Bibliothek von Artem erhalte. OnTradeTransaction() ist schneller. Ich habe es nicht gemessen. Ich muss noch mehr Messungen vornehmen, um eine faire Schätzung vornehmen zu können, aber ich wollte keine Zeit darauf verwenden.

 
Fairerweise muss ich sagen, dass ich mit OnTradeTransaction() auf MT5 nie Probleme hatte, alles lief immer reibungslos. Keine Verluste.
 
Alexey Viktorov:

Sie haben sich wahrscheinlich schon lange nicht mehr damit beschäftigt. Der Vorbehalt, dass Transaktionen in der Dokumentation verloren gehen können, wurde schon vor langer Zeit entfernt. Es gibt also nichts Besseres als OnTradeTransaction() für mql5. Ich habe die Geschwindigkeit überprüft, mit der ich das Ereignis der Aktivierung einer ausstehenden Order in OnTradeTransaction() und über die Bibliothek von Artem erhalte. OnTradeTransaction() ist schneller. Ich habe es nicht gemessen. Ich muss noch mehr Messungen vornehmen, um eine faire Schätzung vornehmen zu können, aber ich wollte keine Zeit darauf verwenden.

Das ist ganz natürlich - ich habe eine bestimmte Häufigkeit des Scannens der Umgebung. Die Tatsache des Ereignisses selbst im Terminal und die Tatsache der Umweltveränderung folgen also aufeinander. Aber die Tatsache der Veränderung der Umgebung wird erfasst, nicht das Eintreten des Ereignisses. Das hat seine Vorzüge. Aber Sie leugnen sie trotzdem ;) Es hat also keinen Sinn, darüber zu diskutieren.
 
Artyom Trishkin:
Das ist ganz natürlich - ich habe eine bestimmte Frequenz, mit der ich die Umgebung abtaste. Die Tatsache des Ereignisses selbst im Terminal und die Tatsache der Umweltveränderung folgen also aufeinander. Aber bei mir ist es die Tatsache der Umweltveränderung, die festgehalten wird, nicht das Eintreten des Ereignisses. Das hat seine Vorzüge. Aber Sie leugnen sie trotzdem ;) Es hat also keinen Sinn, darüber zu diskutieren.

Welche Vorzüge leugne ich? Ich habe nur ein Dementi. Ich möchte verstehen, wie die Dinge funktionieren, und wenn es nur möglich ist, Dinge zu verstehen, die nicht in meinem Kopf sind, dann fühle ich mich nicht wohl dabei, sie zu benutzen, und alles, womit ich mich nicht wohlfühle, lehne ich ab. Ich habe Ihnen bereits gesagt, dass Sie mehr Briefe schreiben, als ich in meinem ganzen Leben lesen kann. Lassen Sie es nicht an mir aus...

 
Ihor Herasko:
Das ist genau die vernünftigste Lösung. Und es ist auch für MT5 die klügste, weil man sich nicht nur auf OnTrade() und OnTradeTransaction() verlassen kann. Sie sind nicht garantiert.

Sie sind hoffnungslos unzeitgemäß!

Diese Ereignisse sind seit langem garantiert!

 
Kommunikationsfehler während (nach) der Ausführung von OrderSend (-Async) - Verlust von OnTrade*.
 
prostotrader:

Sie sind hoffnungslos unzeitgemäß!

Diese Ereignisse sind schon seit langem garantiert!

Und die Verfügbarkeit von Licht und Internet? Ganz zu schweigen von den üblichen Netzwerk-Paketverlusten. Wie cool MetaQuotes geworden ist - sie garantieren alles! ))