ошибка в metatrader5

 

Здравствуйте,

обнаружил ошибку:

при тике приходящем на новой минуте в нулевую секунду, например после тика в 01.22.59 новый тик в 01.23.00

Тиковые объемы приходят старые - от 23 и 21 минуты. А по идее должны за 23 и 22 минуты. Т.е. по текущей 23 минуте правильно, а предыдущая смещена на 1 дополнительную минуту, вместо 22 - 21.

пример кода

   long Arr[2];
   CopyTickVolume(vSymb, PERIOD_M1, 0, 2, Arr);

   curVal=Arr[1];

   preVal=Arr[0];


На следующих тиках приходящих на секунде>1 все становится правильно.

Ошибку сейчас обхожу условием && tm.sec>0

Не проверял, но могу предположить, что ошибка возникает не только по тиковым объемам, но и по др. параметрам.

 
elibrarius:

Здравствуйте,

обнаружил ошибку:

при тике приходящем на новой минуте в нулевую секунду, например после тика в 01.22.59 новый тик в 01.23.00

Тиковые объемы приходят старые - от 23 и 21 минуты. А по идее должны за 23 и 22 минуты. Т.е. по текущей 23 минуте правильно, а предыдущая смещена на 1 дополнительную минуту, вместо 22 - 21.

пример кода

   long Arr[2];
   CopyTickVolume(vSymb, PERIOD_M1, 0, 2, Arr);

   curVal=Arr[1];

   preVal=Arr[0];


На следующих тиках приходящих на секунде>1 все становится правильно.

Ошибку сейчас обхожу условием && tm.sec>0

Не проверял, но могу предположить, что ошибка возникает не только по тиковым объемам, но и по др. параметрам.

круто.  в сервисдеск отправил ?
 
MetaDriver:
круто.  в сервисдеск отправил ?

Думал разработчики тут увидят...

Теперь отправил.

 
elibrarius:

Думал разработчики тут увидят...

Поэтому Вы задали вопрос в разделе "Автоматические торговые системы", а не в разделе "Эксперты" или "Общее обсуждение", где даже специальная ветка открыта
 
MetaDriver:
круто.  в сервисдеск отправил ?
Неизвестно, что находится в переменной vSymb. Автор этого не сказал.
 
elibrarius:

Ошибку сейчас обхожу условием && tm.sec>0

Не проверял, но могу предположить, что ошибка возникает не только по тиковым объемам, но и по др. параметрам.

Попробуйте проверить таким экспертом:

//+------------------------------------------------------------------+
//|                                           CheckTicksOnNewBar.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

int last_minute=-1;
//---
long Arr[2],curVal,preVal;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---   
   MqlDateTime dt;
   datetime time=TimeCurrent(dt);
   if(dt.min!=last_minute)
     {
      long currTicks[2];
      CopyTickVolume(Symbol(),PERIOD_M1,0,2,currTicks);
      PrintFormat("%s curVal=%d  preVal=%d",TimeToString(time),curVal,preVal);
      if(currTicks[0]!=curVal  && (last_minute!=-1))
        {
         PrintFormat("Achtung! Volume[1]=%d  was %d at previous minute",currTicks[0],curVal);
        }
      last_minute=dt.min;
     }
   CopyTickVolume(Symbol(),PERIOD_M1,0,2,Arr);
   curVal=Arr[1];
   preVal=Arr[0];
   Comment(StringFormat("%s curVal=%d  preVal=%d",TimeToString(time),curVal,preVal));
  }
//+------------------------------------------------------------------+

если проблемы нет, то будет наблюдать ежеминутный вывод в журнал "Эксперты" похожих строк


Причина обращения: