Con cosa sostituire OnTradeTransaction() in mql4? - pagina 9

 
Dmitry Fedoseev:

Supponiamo che si sia verificato un evento in OnTradeTransaction() dopo il quale qualche azione deve essere eseguita, ma si è verificato un errore al primo tentativo di eseguire questa azione. Cosa fare? Ovviamente, dobbiamo provare a farlo di nuovo, e per questo abbiamo bisogno di salvare da qualche parte i dati sulla necessità della ripetizione di queste azioni - molto probabilmente, questi dati sono salvati nelle solite variabili globali di Expert Advisor o nelle funzioni statiche. E improvvisamente ho dovuto riavviare il terminale... i dati sono spariti.

E quando si analizza la situazione attuale e la storia - niente è andato da nessuna parte.

Se il terminale è andato in crash, allora dopo il riavvio in OnInit() e così è consuetudine condurre un inventario completo.

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

Questo può anche essere usato come 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ì, ho letto tutto in questo thread e ho concluso che questa soluzione è semplice, affidabile ed "economica". Cercherò di guardare ancora una volta tutte le funzioni di mql4, se trovo qualcosa, lo aggiungerò a questo post. Grazie per l'aiuto.

Mi sono anche ricordato dei log del terminale Metatrader 4, di regola tutti gli eventi commerciali sono aggiunti lì. Inoltre, ci sono anche notifiche al terminale mobile sugli eventi commerciali. upd: purtroppo anche questi eventi non sono accessibili senza dll

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