Как быстро обновляется история сделок в МТ5

 

Как быстро обновляется история сделок в МТ5

 

спрашиваю потому что заметил что при закрытии сделки на терминале, она вроде есть в истории сделки сразу,

но эксперты выводит информацию о предпоследней сделке,

и только через 3 секунде о той которая была закрыта последней.  

 

Обычно за время в пределах пинга.

Сами замерьте время появления простым скриптом, не забывая о стандартных ошибках кеширования счетчиков.

 

получается долго.

пинг вроде нормальный

вот пример:

эксперт каждый тик выводит информацию о сколько сделок в истории:

LN      0       17:26:42.126    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=305
OO      0       17:26:44.153    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GL      0       17:26:44.504    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
HM      0       17:26:44.615    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
LJ      0       17:26:44.945    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GK      0       17:26:45.143    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
OI      0       17:26:48.418    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GF      0       17:26:49.464    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GG      0       17:26:49.635    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
CD      0       17:26:49.699    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
RE      0       17:26:49.986    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GR      0       17:26:50.161    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
CS      0       17:26:50.343    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
JP      0       17:26:50.515    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
CN      0       17:26:50.585    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
FO      0       17:26:51.484    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
NL      0       17:26:51.530    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
DM      0       17:26:51.608    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
HJ      0       17:26:51.657    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
JK      0       17:26:51.721    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
DH      0       17:26:52.557    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
RI      0       17:26:52.920    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
MG      0       17:26:53.089    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
LD      0       17:26:55.070    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=307

 

а теперь смотрим в журнал:

OI      0       17:10:01.837    Terminal        stopped
CM      0       17:26:24.931    Terminal        MetaTrader 5 Alfa-Forex build 999 started (Альфа-Форекс)
RE      0       17:26:25.442    OpenCL  Device #0: GPU NVIDIA Corporation GeForce GTX 560 Ti with OpenCL 1.1 (8 units, 1645 MHz, 1024 Mb, version 340.52, rating 584)
PG      0       17:26:26.415    Network '50004487': authorized on AlfaForex-Real through Access Server_4
OG      0       17:26:26.415    Network '50004487': previous successful authorization performed from 109.86.244.240 on 2014.10.31 18:09:48
EG      0       17:26:26.508    Network '50004487': terminal synchronized with Альфа-Форекс
FP      0       17:26:26.945    Experts expert Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1) loaded successfully
OM      0       17:26:37.245    Trades  '50004487': instant sell 1.00 EURUSD at 1.25130
NF      0       17:26:37.292    Trades  '50004487': accepted instant sell 1.00 EURUSD at 1.25130
RQ      0       17:26:37.292    Trades  '50004487': order #108383399 sell 1.00 / 1.00 EURUSD at 1.25130 done in 46 ms
GR      0       17:26:37.292    Trades  '50004487': deal #107337618 sell 1.00 EURUSD at 1.25130 done (based on order #108383399)
GJ      0       17:26:49.163    Trades  '50004487': instant sell 1.00 EURUSD at 1.25127
IG      0       17:26:49.209    Trades  '50004487': accepted instant sell 1.00 EURUSD at 1.25127
IN      0       17:26:49.209    Trades  '50004487': order #108383400 sell 1.00 / 1.00 EURUSD at 1.25127 done in 45 ms
RS      0       17:26:49.209    Trades  '50004487': deal #107337619 sell 1.00 EURUSD at 1.25127 done (based on order #108383400)
LD      0       17:28:02.841    Experts AutoTrading is disabled

 

 

например я открыл сделку  

GR      0       17:26:37.292    Trades  '50004487': deal #107337618 sell 1.00 EURUSD at 1.25130 done (based on order #108383399)

но запись в эксперте , который выводит количество сделок появилась только :

 OO      0       17:26:44.153    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306

 

 

далее открыл еще одну сделку:

 RS      0       17:26:49.209    Trades  '50004487': deal #107337619 sell 1.00 EURUSD at 1.25127 done (based on order #108383400)

 

но запись появилась только :

 LD      0       17:26:55.070    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=307

 

 

Т.е. 7 секунд спустя, поэтому простой код по нахождению последней сделки, а именно, профит ли был получен на последней сделке или нет - не работает.

Хотя в тестере все ок.

 

Сама функция определения стопа:

int isCloseLastPosByStop(string sym="")
  {
   int total=0; // Всего сделок в списке выбранной истории
   ulong ticket=0; // Тикет сделки
   string deal_symbol=""; // Символ сделки
   double deal_price=-1; 

  datetime end=TimeCurrent();
//--- начальную границу установим на 3 дня назад
   datetime start=end-3*PeriodSeconds(PERIOD_D1);
//--- запросим в кэш программы торговую историю за последние 3 дня
   HistorySelect(start,end);
        {
      // Получим количество сделок в полученном списке
      total=HistoryDealsTotal()-1;
      //---
      // Пройдем в цикле по всем сделкам в полученном списке
      // от последней сделки в списке к первой
      for(int i=total; i>=0; i--)
        {

         // Если тикет сделки по её позиции в списке получен, то...
         if((ticket=HistoryDealGetTicket(i))>0)
            if(HistoryDealGetInteger(ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT)
              {
               ticket=HistoryDealGetTicket(i);
               deal_symbol=HistoryDealGetString(ticket,DEAL_SYMBOL); // получим символ сделки
               deal_price=HistoryDealGetDouble(ticket,DEAL_PROFIT); // получим цену сделки
               //---
               // Если символ сделки и текущий символ равны, остановим цикл
               if(deal_symbol==sym) { break; }
              }
        }
     }


   if(deal_price<0) return(1);
   if(deal_price==0) return(2);
   return(0);
  }
 

А почему вы на тиках ловите?

 

Совершили сделку и начинайте проверять наличии транзакции в истории, делая Sleep(1) между запросами

 
Renat:

А почему вы на тиках ловите?

 

Совершили сделку и начинайте проверять наличии транзакции в истории, делая Sleep(1) между запросами

всмысле через OnTrade? 

так какая разница, Все равно даже после сделки он возвращает старое значение сделок:

  RS      0       17:26:49.209    Trades  '50004487': deal #107337619 sell 1.00 EURUSD at 1.25127 done (based on order #108383400) Это моя сделка 

OO      0       17:26:44.153    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GL      0       17:26:44.504    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
HM      0       17:26:44.615    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
LJ      0       17:26:44.945    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GK      0       17:26:45.143    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
OI      0       17:26:48.418    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GF      0       17:26:49.464    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GG      0       17:26:49.635    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
CD      0       17:26:49.699    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
RE      0       17:26:49.986    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
GR      0       17:26:50.161    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
CS      0       17:26:50.343    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
JP      0       17:26:50.515    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
CN      0       17:26:50.585    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
FO      0       17:26:51.484    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
NL      0       17:26:51.530    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
DM      0       17:26:51.608    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
HJ      0       17:26:51.657    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
JK      0       17:26:51.721    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
DH      0       17:26:52.557    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
RI      0       17:26:52.920    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
MG      0       17:26:53.089    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=306
LD      0       17:26:55.070    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    isCloseLastPosByStopProfit=1.28HistoryDealsTotal()=307 появилась только здесь 
 
эксперт то торгует от тиков :-) или я не понял Вас? 
 

что то не то: код:

 

 

void OnTrade()
{
Print("OnTrade HistoryDealsTotal()="+HistoryDealsTotal());

}
void OnTick()
  {
Print("OnTick HistoryDealsTotal()="+HistoryDealsTotal());
}

список в логах эксперта:

MP      0       17:59:44.054    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=0
DL      0       17:59:44.118    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
LI      0       17:59:44.196    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
GE      0       17:59:44.540    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
MQ      0       17:59:45.080    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
NM      0       17:59:45.092    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
GI      0       17:59:45.129    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
LE      0       17:59:45.270    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
EQ      0       17:59:45.448    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
DM      0       17:59:45.867    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
MF      0       17:59:46.285    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
OR      0       17:59:46.579    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
KQ      0       17:59:46.587    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
KE      0       17:59:46.587    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
KI      0       17:59:46.587    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
JM      0       17:59:46.588    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
PN      0       17:59:46.590    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
HJ      0       17:59:46.798    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
KF      0       17:59:46.894    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
DR      0       17:59:46.961    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
KN      0       17:59:47.176    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
KJ      0       17:59:47.323    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
EG      0       17:59:47.475    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
ES      0       17:59:47.703    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
LO      0       17:59:47.768    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
RK      0       17:59:48.064    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
NG      0       17:59:48.091    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
DS      0       17:59:48.440    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
NO      0       17:59:48.873    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
ID      0       17:59:48.880    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
JH      0       17:59:48.881    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
JL      0       17:59:48.881    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
JP      0       17:59:48.881    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
JK      0       17:59:49.232    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
KD      0       17:59:49.453    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
OP      0       17:59:49.545    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
GL      0       17:59:49.596    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
QH      0       17:59:49.705    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
ID      0       17:59:49.895    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
NP      0       17:59:50.146    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
QL      0       17:59:50.426    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
IH      0       17:59:50.785    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
CJ      0       17:59:50.980    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
EN      0       17:59:50.982    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
GR      0       17:59:50.984    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
HF      0       17:59:50.985    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
IJ      0       17:59:50.986    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307
MQ      0       17:59:50.989    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
EM      0       17:59:51.102    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
CI      0       17:59:53.775    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307
DE      0       17:59:53.854    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
LQ      0       17:59:53.917    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
PM      0       17:59:54.086    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
FI      0       17:59:54.273    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
GE      0       17:59:54.443    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
PN      0       17:59:54.554    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
KJ      0       17:59:54.641    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
FF      0       17:59:54.691    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
OR      0       17:59:54.740    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
PN      0       17:59:54.815    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308
JJ      0       17:59:55.004    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
QF      0       17:59:55.597    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
PR      0       17:59:55.820    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
QO      0       17:59:56.051    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
NK      0       17:59:56.254    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
RG      0       17:59:56.436    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
FS      0       17:59:56.816    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=309
PO      0       17:59:57.006    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310
IK      0       17:59:58.000    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310
DG      0       17:59:58.177    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310
IS      0       17:59:58.242    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310
OL      0       17:59:58.303    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310
EH      0       17:59:58.518    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310
KD      0       17:59:58.752    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=310

 

 

открывал сделки в такое время:

LD      0       17:59:46.453    Trades  '50004487': instant sell 1.00 EURUSD at 1.25288
HL      0       17:59:46.535    Trades  '50004487': accepted instant sell 1.00 EURUSD at 1.25288
NH      0       17:59:46.535    Trades  '50004487': order #108383590 sell 1.00 / 1.00 EURUSD at 1.25289 done in 82 ms
LI      0       17:59:46.535    Trades  '50004487': deal #107337790 sell 1.00 EURUSD at 1.25289 done (based on order #108383590)
PE      0       17:59:48.716    Trades  '50004487': instant sell 1.00 EURUSD at 1.25280
LM      0       17:59:48.797    Trades  '50004487': accepted instant sell 1.00 EURUSD at 1.25280
JI      0       17:59:48.797    Trades  '50004487': order #108383592 sell 1.00 / 1.00 EURUSD at 1.25281 done in 80 ms
MJ      0       17:59:48.798    Trades  '50004487': deal #107337792 sell 1.00 EURUSD at 1.25281 done (based on order #108383592)
LR      0       17:59:50.823    Trades  '50004487': instant sell 1.00 EURUSD at 1.25284
HN      0       17:59:50.923    Trades  '50004487': accepted instant sell 1.00 EURUSD at 1.25284
KH      0       17:59:50.923    Trades  '50004487': deal #107337794 sell 1.00 EURUSD at 1.25284 done (based on order #108383594)
RG      0       17:59:50.923    Trades  '50004487': order #108383594 sell 1.00 / 1.00 EURUSD at 1.25284 done in 100 ms
LN      0       17:59:58.809    Experts expert Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1) removed

 Т.е. открыл например в 

 

 LI      0       17:59:46.535    Trades  '50004487': deal #107337790 sell 1.00 EURUSD at 1.25289 done (based on order #108383590)

 

Запись в журнале трейд:

 KQ      0       17:59:46.587    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTrade HistoryDealsTotal()=307

Запись в тиках

 PN      0       17:59:46.590    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=307

 И только :

 DE      0       17:59:53.854    Exp - max-4@list.ru ZigZag MT5 4 (EURUSD,M1)    OnTick HistoryDealsTotal()=308

спустя 7 секунд появилась запись 

 
а ну да я же историю не запросил....
 

тот же самый эффект, история не обновляется сразу.

void OnTrade()
  {
  
  datetime end=TimeCurrent();
//--- начальную границу установим на 3 дня назад
   datetime start=end-3*PeriodSeconds(PERIOD_D1);
//--- запросим в кэш программы торговую историю за последние 3 дня
   HistorySelect(start,end);
   Print("OnTrade HistoryDealsTotal()="+HistoryDealsTotal());

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void  OnTradeTransaction(
                         const MqlTradeTransaction&    trans,        // структура торговой транзакции
                         const MqlTradeRequest&        request,      // структура запроса
                         const MqlTradeResult&         result        // структура ответа
                         )

  {
  
  datetime end=TimeCurrent();
//--- начальную границу установим на 3 дня назад
   datetime start=end-3*PeriodSeconds(PERIOD_D1);
//--- запросим в кэш программы торговую историю за последние 3 дня
   HistorySelect(start,end);
   Print("OnTradeTransaction HistoryDealsTotal()="+HistoryDealsTotal());

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
  
  datetime end=TimeCurrent();
//--- начальную границу установим на 3 дня назад
   datetime start=end-3*PeriodSeconds(PERIOD_D1);
//--- запросим в кэш программы торговую историю за последние 3 дня
   HistorySelect(start,end);
   Print("OnTick HistoryDealsTotal()="+HistoryDealsTotal());
  }

 

 

Что можно придумать чтобы история сразу обновлялась?  

 
Vladon:

Как быстро обновляется история сделок в МТ5

 

спрашиваю потому что заметил что при закрытии сделки на терминале, она вроде есть в истории сделки сразу,

но эксперты выводит информацию о предпоследней сделке,

и только через 3 секунде о той которая была закрыта последней.  

Заметил вот какую штуку. При отправки асинхронного торгового приказа например на открытие ордера по рынку, через некоторое время приходит событие OnTradeTransaction.  В нем структура MqlTradeResult содержит идентификатор сделки, которая была совершена. Однако счетчик сделок HistoryDealsTotal молчит а попытки получить ее свойства прямо в OnTradeTransaction заканчиваются неудачей. Через миллисекунд 100-150 сделка попадает в историю сделок, HistoryDealsTotal возвращает новое значение, и ее свойства становятся доступны.

В общем складывается впечатления что событие о совершении сделки приходит раньше чем обновляется торговое окружение.
 
хм, да вот я уже 3 день не могу понять почему при закрытии одной сделки и сразу же открытии другой - последняя не получает данные от предпоследней сделке, Т.е. предпоследней сделки в истории нет, поэтому получается бяка. 
Причина обращения: