With what to replace OnTradeTransaction() in mql4? - page 9

 
Dmitry Fedoseev:

Suppose an event occurred in OnTradeTransaction() after which some action needs to be performed, but an error occurred at the first attempt to perform this action. What to do? Obviously, we must try to do it again, and for this we need to save somewhere data about necessity of these actions repetition - most likely, this data is saved in global variables of Expert Advisor or in static functions. And suddenly I had to restart the terminal... the data is gone.

And when you analyze the current situation and history - nothing has gone anywhere.

If the terminal crashed, then after the restart in OnInit() and so it is customary to conduct a full inventory.

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

This can even be used as an incomplete OnTrade()

void OnTrade()
 {
  ...
 }

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

Yes, I've read everything in this thread and concluded that this solution is simple, reliable and "cheap". I will try to look through all functions of mql4 once again, if I find something, I will add it to this post. Thanks for the help.

I also remembered the logs of Metatrader 4 terminal, as a rule all trade events are added there. Also, there are also notifications to the mobile terminal about trade events. upd: unfortunately. these events also cannot be accessed without dll

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