¿Con qué sustituir OnTradeTransaction() en mql4? - página 9

 
Dmitry Fedoseev:

Supongamos que se produce un evento en OnTradeTransaction() tras el cual es necesario realizar alguna acción, pero se produce un error en el primer intento de realizar esta acción. ¿Qué hacer? Obviamente, debemos intentar hacerlo de nuevo, y para ello necesitamos guardar en algún lugar los datos sobre la necesidad de la repetición de estas acciones - lo más probable es que estos datos se guarden en las variables globales del Asesor Experto o en las funciones estáticas. Y de repente tuve que reiniciar el terminal... los datos han desaparecido.

Y cuando se analiza la situación actual y la historia, nada ha ido a ninguna parte.

Si el terminal se estrelló, a continuación, después de la reanudación en OnInit () y por lo que es habitual para llevar a cabo un inventario completo.

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

Esto puede incluso utilizarse como un OnTrade() incompleto

void OnTrade()
 {
  ...
 }

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

Sí, he leído todo en este hilo y he llegado a la conclusión de que esta solución es sencilla, fiable y "barata". Intentaré revisar todas las funciones de mql4 una vez más, si encuentro algo, lo añadiré a este post. Gracias por la ayuda.

También me acordé de los registros del terminal Metatrader 4, por regla general todos los eventos de comercio se añaden allí. Además, también hay notificaciones al terminal móvil sobre eventos comerciales. upd: desgraciadamente, tampoco se puede acceder a estos eventos sin dll

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