Wodurch soll OnTradeTransaction() in mql4 ersetzt werden? - Seite 9

 
Dmitry Fedoseev:

Angenommen, in OnTradeTransaction() ist ein Ereignis eingetreten, nach dem eine Aktion ausgeführt werden muss, aber beim ersten Versuch, diese Aktion auszuführen, ist ein Fehler aufgetreten. Was ist zu tun? Natürlich müssen wir versuchen, es noch einmal zu tun, und dafür müssen wir irgendwo die Daten über die Notwendigkeit dieser Aktionen Wiederholung zu speichern - am ehesten, diese Daten in üblichen globalen Variablen von Expert Advisor oder in statischen Funktionen gespeichert ist. Und plötzlich musste ich das Terminal neu starten... die Daten sind weg.

Und wenn man die aktuelle Situation und die Geschichte analysiert, hat sich nichts verändert.

Wenn das Terminal abgestürzt ist, dann ist es üblich, nach dem Neustart in OnInit() und so eine vollständige Inventur durchzuführen.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Vitaly Muzichenko:

Dies kann sogar als unvollständiges OnTrade() verwendet werden

void OnTrade()
 {
  ...
 }

static __OTotal = -1;
static __HTotal = -1;
int OT=OrdersTotal();
int HT=OrdersHistoryTotal();
  if(OT!=__OTotal || HT!=__HTotal) // если изменилось - выполняем
   {
     OnTrade(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
     __OTotal=OrdersTotal(); // запомним текущее количество
     __HTotal=OrdersHistoryTotal(); // запомним количество в истории
   }

Ja, ich habe alles in diesem Thread gelesen und bin zu dem Schluss gekommen, dass diese Lösung einfach, zuverlässig und "billig" ist. Ich werde versuchen, alle Funktionen von mql4 noch einmal durchzusehen, und wenn ich etwas finde, werde ich es zu diesem Beitrag hinzufügen. Vielen Dank für die Hilfe.

Ich erinnerte mich auch an die Logs des Metatrader 4 Terminals, in der Regel werden dort alle Handelsereignisse hinzugefügt. Außerdem werden auf dem mobilen Endgerät Benachrichtigungen über Handelsereignisse angezeigt. upd: Leider kann auf diese Ereignisse auch nicht ohne dll zugegriffen werden.

Мобильные приложения MetaTrader 5 для iPhone/iPad и Android
Мобильные приложения MetaTrader 5 для iPhone/iPad и Android
  • www.metatrader5.com
Мобильный трейдинг в MetaTrader 5 — это возможность торговать на Форексе, фондовой бирже, а также фьючерсами в любое время из любой точки мира. Имея смартфон или планшет с установленным приложением MetaTrader 5 для iOS или Android, вы всегда будете в курсе рыночной ситуации и сможете совершать торговые операции 24 часа в сутки. Все возможности...