Com o que substituir a OnTradeTransaction() em mql4? - página 9

 
Dmitry Fedoseev:

Suponha que ocorreu um evento na OnTradeTransaction() após o qual alguma ação precisa ser executada, mas um erro ocorreu na primeira tentativa de executar essa ação. O que fazer? Obviamente, devemos tentar fazer isso novamente, e para isso precisamos salvar em algum lugar dados sobre a necessidade de repetição dessas ações - muito provavelmente, esses dados são salvos em variáveis globais do Expert Advisor ou em funções estáticas. E de repente tive que reiniciar o terminal... os dados desapareceram.

E quando você analisa a situação atual e a história - nada foi a lugar algum.

Se o terminal falhar, então após o reinício no OnInit() e, portanto, é costume conduzir um inventário completo.

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

Isto pode até ser usado como um 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(); // запомним количество в истории
   }

Sim, li tudo neste tópico e concluí que esta solução é simples, confiável e "barata". Tentarei procurar em todas as funções do mql4 mais uma vez, se encontrar algo, acrescentarei a este posto. Obrigado pela ajuda.

Também me lembrei dos logs do terminal Metatrader 4, como regra geral todos os eventos comerciais são adicionados lá. Além disso, há também notificações para o terminal móvel sobre eventos comerciais. upd: infelizmente. estes eventos também não podem ser acessados sem a dll

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