Торговая сессия & Котировочная сессия. Вопросы остаются... - страница 3

 
Alexey Viktorov:

Извините что встреваю, если можно один вопрос:

Сегодня, понедельник, случилось что эти строки

выдали что tNew 23 часа пятницы

Не может-ли это быть связано с проблемой торговой и котировочной сессией? Как я понял, в момент выполнения CopyRates сегодняшний бар не обозначился и нулевым считался последний бар пятницы.

Это МТ5, форекс.

Ф-ции которые обращаются к таймсериям  -вредные ф-ции. После них надо контролировать ошибки, а то такое вернут.....

Для 4 , (баловался вместо iOpen) , я делаю по такой заготовке, вместо CopyOpen  можно  подставить  CopyRates

double dz_CopyOpen(string symbolF, ENUM_TIMEFRAMES timeFrameF, int shiftF)
{
   int WhTi=0, Err=-1, Rez=-10; 
   
   double varF[1];
   
   varF[0] = 0;
   
   while(!IsStopped() )
   {
      RefreshRates();
   
      Rez = CopyOpen(symbolF, timeFrameF, shiftF, 1, varF);
      
      Err = GetLastError();
      
      if(varF[0] > 0 && Err == 0 && Rez == 1) break;


      if(WhTi % 100 == 0) Print("!!! dz_CopyOpen(", symbolF, "  ", EnumToString(timeFrameF), "  ", shiftF,")= ", varF[0], "   Err= ", Err , "   Rez= ", Rez, "   Try= ", WhTi);
      
      Sleep(1000);
      
      WhTi++;
   }

   return(varF[0]); 
}
 
Dmytro Zelenskyy:

Ф-ции которые обращаются к таймсериям  -вредные ф-ции. После них надо контролировать ошибки, а то такое вернут.....

Для 4 , (баловался вместо iOpen) , я делаю по такой заготовке, вместо CopyOpen  можно  подставить  CopyRates

Спасибо, но вопрос был не об этом. Уже не первая функция mql5 неадекватно себя ведёт, новый бар вроде-бы есть, но функции его не видят.
 
Alexey Viktorov:
Спасибо, но вопрос был не об этом. Уже не первая функция mql5 неадекватно себя ведёт, новый бар вроде-бы есть, но функции его не видят.

Как раз об этом.

Функция инициирует подкачку данных, а возвращает то, что есть. 

Вы же не с родного инструмента/ТФ запрашиваете данные, правда? 

 
Andrey Khatimlianskii:

Как раз об этом.

Функция инициирует подкачку данных, а возвращает то, что есть. 

Вы же не с родного инструмента/ТФ запрашиваете данные, правда? 

В этом случае именно с родного. Но я не хотел разбавлять чужую тему посторонними вопросами, потому и был конкретный вопрос не может-ли обсуждаемая в этой теме проблема повлиять на видимость нового бара. Прошёл новый тик, значит появился новый бар, разве не так? Но функция CopyRates с параметрами 1 элемент начиная с нулевого бара в понедельник копирует данные пятницы. Как это обойти можно будет обсудить в другой теме, если она будет создана.
 
Alexey Viktorov:

Извините что встреваю, если можно один вопрос:

Сегодня, понедельник, случилось что эти строки

выдали что tNew 23 часа пятницы

Не может-ли это быть связано с проблемой торговой и котировочной сессией? Как я понял, в момент выполнения CopyRates сегодняшний бар не обозначился и нулевым считался последний бар пятницы.

Это МТ5, форекс.

2016.07.25 00:00:41.299 00 (GBPUSD,M15) GBPUSD TimeCurrent 2016.07.25 00:00:40 tOld 1970.01.01 00:00:00 tNew 2016.07.22 23:00:00 

Можно порассуждать чисто теоретически.

То что касаемо темы обсуждений, котировочная сессия для GBPUSD скорее всего начинается с 00:00 у данного брокера, значит в праве смотреть 0-й бар. 

Но прошло всего 40 сек от начала, и первый тик скорее всего еще не пришел и не нарисовал свечу понедельника М15.

Вызов  CopyRates был или из OnInit или с другого символа (цитата  "В этом случае именно с родного.",  тут вопрос - тик был или не был?) , вот CopyRates и вернула время типа 0-го бара который оказался еще в пятнице.

Но контролить на ошибки функции CopyRate  CopyOpen  iOpen   iTime.....  и т.д.  ОБЯЗАТЕЛЬНО! И повторять вызов до победного, пока не подкачается вся запрашиваемая история.

 
Dmytro Zelenskyy:

Можно порассуждать чисто теоретически.

То что касаемо темы обсуждений, котировочная сессия для GBPUSD скорее всего начинается с 00:00 у данного брокера, значит в праве смотреть 0-й бар. 

Но прошло всего 40 сек от начала, и первый тик скорее всего еще не пришел и не нарисовал свечу понедельника М15.

Вызов  CopyRates был или из OnInit или с другого символа (цитата  "В этом случае именно с родного.",  тут вопрос - тик был или не был?) , вот CopyRates и вернула время типа 0-го бара который оказался еще в пятнице.

Но контролить на ошибки функции CopyRate  CopyOpen  iOpen   iTime.....  и т.д.  ОБЯЗАТЕЛЬНО! И повторять вызов до победного, пока не подкачается вся запрашиваемая история.

Это счёт MetaQuotes-Demo конечно сессия начинается в 00:00

С контролем я согласен, но... как-же сработал советник поставленный на GBPUSD если по символу не пришёл тик и не нарисовал свечу? Если-бы сов стоял на EURUSD а запрашивал данные GBPUSD или вызов был по таймеру то конечно могло и такое случиться, но символ родной, код начал работать по тику. Тик есть, а бара нетуууу.

В общем, моя проблема никак не связана с обсуждаемой здесь проблемой.

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