И снова о некорректной подстановке баров

 
Уважаемые господа разработчики!
Более месяца назад была поднята тема ("Перерисовка стандартных индикаторов?!")
о некорректной подстановке баров из валют отличных от текущей в операциях iTime,iOpen,iClose и т.д.
Был так же непродолжительный диалог с Ренатом ("Новый клиентский терминал MetaTrader 4 build 199") где я выполнил его просьбу описать проблему более сжато.
Однако за весь этот месяц(!) от Вас не было НИ ЕДИНОГО комментария по этой проблеме. А между тем ничего не изменилось даже с появлением 200 билда.
Вы не считаете проблему достойной Вашего внимания? Будьте так любезны, если Вы не занимаетесь решением данной проблемы (а может быть даже и не собираетесь решать в принципе) то объявите об этом официально. Т.к. Ваше молчание, мягко говоря, воспринимается не однозначно.

P.S. 2Rosh. Вы помнится занялись изучением данной проблемы и достаточно глубоко в нее вникли. Однако в какой-то момент все стихло и Вы так и не написали, к какому выводу Вы пришли.
 
Нет никакой проблемы.
Попробуйте прогнать вот этого эксперта на 3-х парах: GBPUSD, EURGBP и EURUSD. 4-часовки по ценам открытия. Графики должны быть предварительно открыты.
//+------------------------------------------------------------------+
//|                                                     TestTime.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int      period=Period();
   datetime time1,time2,time3;
//----
   time1=iTime("GBPUSD",period,0);
   time2=iTime("EURGBP",period,0);
   time3=iTime("EURUSD",period,0);
   if(time1!=0 && time2!=0 && time3!=0)
     {
      if(time1!=time2 || time1!=time3 || time2!=time3)
         Print("GBPUSD  ",TimeToStr(time1),"   EURGBP  ",TimeToStr(time2),"   EURUSD  ",TimeToStr(time3));
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+


И поанализируйте, что и почему выведено в журнал

У меня получилось вот что

17:44:14 TestTime started for testing
17:44:14 2006.04.10 00:00  TestTime GBPUSD,H4: GBPUSD  2006.04.10 00:00   EURGBP  2006.04.09 23:00   EURUSD  2006.04.10 00:00
17:44:14 2006.04.17 00:00  TestTime GBPUSD,H4: GBPUSD  2006.04.17 00:00   EURGBP  2006.04.16 23:00   EURUSD  2006.04.17 00:00
17:44:14 2006.04.24 00:00  TestTime GBPUSD,H4: GBPUSD  2006.04.24 00:00   EURGBP  2006.04.23 23:00   EURUSD  2006.04.24 00:00
17:44:14 2006.05.01 00:00  TestTime GBPUSD,H4: GBPUSD  2006.05.01 00:00   EURGBP  2006.04.30 23:00   EURUSD  2006.05.01 00:00
17:44:14 2006.05.08 00:00  TestTime GBPUSD,H4: GBPUSD  2006.05.08 00:00   EURGBP  2006.05.07 23:00   EURUSD  2006.05.08 00:00
17:44:14 2006.05.15 00:00  TestTime GBPUSD,H4: GBPUSD  2006.05.15 00:00   EURGBP  2006.05.14 23:00   EURUSD  2006.05.15 00:00
17:44:14 2006.05.22 00:00  TestTime GBPUSD,H4: GBPUSD  2006.05.22 00:00   EURGBP  2006.05.21 23:00   EURUSD  2006.05.22 00:00
17:44:14 2006.05.29 00:00  TestTime GBPUSD,H4: GBPUSD  2006.05.29 00:00   EURGBP  2006.05.28 23:00   EURUSD  2006.05.29 00:00
17:44:14 2006.05.29 20:00  TestTime GBPUSD,H4: GBPUSD  2006.05.29 20:00   EURGBP  2006.05.29 16:00   EURUSD  2006.05.29 20:00
17:44:14 2006.05.30 00:00  TestTime GBPUSD,H4: GBPUSD  2006.05.30 00:00   EURGBP  2006.05.29 23:00   EURUSD  2006.05.30 00:00
17:44:14 2006.06.05 00:00  TestTime GBPUSD,H4: GBPUSD  2006.06.05 00:00   EURGBP  2006.06.04 23:00   EURUSD  2006.06.05 00:00
17:44:14 2006.06.12 00:00  TestTime GBPUSD,H4: GBPUSD  2006.06.12 00:00   EURGBP  2006.06.11 23:00   EURUSD  2006.06.12 00:00
17:44:14 2006.06.26 00:00  TestTime GBPUSD,H4: GBPUSD  2006.06.26 00:00   EURGBP  2006.06.25 23:00   EURUSD  2006.06.26 00:00
17:44:14 2006.07.03 00:00  TestTime GBPUSD,H4: GBPUSD  2006.07.03 00:00   EURGBP  2006.07.02 23:00   EURUSD  2006.07.03 00:00
17:44:14 2006.07.10 00:00  TestTime GBPUSD,H4: GBPUSD  2006.07.10 00:00   EURGBP  2006.07.09 23:00   EURUSD  2006.07.10 00:00
17:44:14 2006.07.17 00:00  TestTime GBPUSD,H4: GBPUSD  2006.07.17 00:00   EURGBP  2006.07.16 23:00   EURUSD  2006.07.17 00:00
17:44:14 2006.07.24 00:00  TestTime GBPUSD,H4: GBPUSD  2006.07.24 00:00   EURGBP  2006.07.23 23:00   EURUSD  2006.07.23 23:00
17:44:14 2006.07.31 00:00  TestTime GBPUSD,H4: GBPUSD  2006.07.31 00:00   EURGBP  2006.07.30 23:00   EURUSD  2006.07.30 23:00
17:44:14 2006.08.07 00:00  TestTime GBPUSD,H4: GBPUSD  2006.08.07 00:00   EURGBP  2006.08.06 23:00   EURUSD  2006.08.06 23:00
17:44:14 2006.08.14 00:00  TestTime GBPUSD,H4: GBPUSD  2006.08.14 00:00   EURGBP  2006.08.13 23:00   EURUSD  2006.08.13 23:00
17:44:14 2006.08.21 00:00  TestTime GBPUSD,H4: GBPUSD  2006.08.21 00:00   EURGBP  2006.08.20 23:00   EURUSD  2006.08.20 23:00
17:44:14 2006.08.28 00:00  TestTime GBPUSD,H4: GBPUSD  2006.08.28 00:00   EURGBP  2006.08.27 23:00   EURUSD  2006.08.27 23:00
17:44:14 2006.09.04 00:00  TestTime GBPUSD,H4: GBPUSD  2006.09.04 00:00   EURGBP  2006.09.03 23:00   EURUSD  2006.09.03 23:00
17:44:14 2006.09.11 00:00  TestTime GBPUSD,H4: GBPUSD  2006.09.11 00:00   EURGBP  2006.09.10 23:00   EURUSD  2006.09.10 23:00
17:44:14 2006.09.18 00:00  TestTime GBPUSD,H4: GBPUSD  2006.09.18 00:00   EURGBP  2006.09.17 23:00   EURUSD  2006.09.17 23:00
17:44:14 2006.09.25 00:00  TestTime GBPUSD,H4: GBPUSD  2006.09.25 00:00   EURGBP  2006.09.24 23:00   EURUSD  2006.09.24 23:00
17:44:14 2006.10.02 00:00  TestTime GBPUSD,H4: GBPUSD  2006.10.02 00:00   EURGBP  2006.10.01 23:00   EURUSD  2006.10.01 23:00
17:44:14 2006.10.09 00:00  TestTime GBPUSD,H4: GBPUSD  2006.10.09 00:00   EURGBP  2006.10.08 23:00   EURUSD  2006.10.08 23:00
17:44:14 2006.10.16 00:00  TestTime GBPUSD,H4: GBPUSD  2006.10.16 00:00   EURGBP  2006.10.15 23:00   EURUSD  2006.10.15 23:00
17:44:14 2006.10.23 00:00  TestTime GBPUSD,H4: GBPUSD  2006.10.23 00:00   EURGBP  2006.10.22 23:00   EURUSD  2006.10.22 23:00
17:44:14 2006.10.30 00:00  TestTime GBPUSD,H4: GBPUSD  2006.10.30 00:00   EURGBP  2006.10.29 23:00   EURUSD  2006.10.29 23:00
17:44:14 2006.11.06 00:00  TestTime GBPUSD,H4: GBPUSD  2006.11.06 00:00   EURGBP  2006.11.05 23:00   EURUSD  2006.11.05 23:00
17:44:14 2006.11.13 00:00  TestTime GBPUSD,H4: GBPUSD  2006.11.13 00:00   EURGBP  2006.11.12 23:00   EURUSD  2006.11.12 23:00
17:44:14 2006.11.20 00:00  TestTime GBPUSD,H4: GBPUSD  2006.11.20 00:00   EURGBP  2006.11.19 23:00   EURUSD  2006.11.19 23:00
17:44:14 2006.11.27 00:00  TestTime GBPUSD,H4: GBPUSD  2006.11.27 00:00   EURGBP  2006.11.26 23:00   EURUSD  2006.11.26 23:00



17:54:09 TestTime started for testing
17:54:09 2006.03.26 23:00  TestTime EURGBP,H4: GBPUSD  2006.03.24 20:00   EURGBP  2006.03.26 23:00   EURUSD  2006.03.24 20:00
17:54:09 2006.04.02 23:00  TestTime EURGBP,H4: GBPUSD  2006.03.31 20:00   EURGBP  2006.04.02 23:00   EURUSD  2006.03.31 20:00
17:54:09 2006.04.09 23:00  TestTime EURGBP,H4: GBPUSD  2006.04.07 20:00   EURGBP  2006.04.09 23:00   EURUSD  2006.04.07 20:00
17:54:09 2006.04.16 23:00  TestTime EURGBP,H4: GBPUSD  2006.04.14 20:00   EURGBP  2006.04.16 23:00   EURUSD  2006.04.14 20:00
17:54:09 2006.04.23 23:00  TestTime EURGBP,H4: GBPUSD  2006.04.21 20:00   EURGBP  2006.04.23 23:00   EURUSD  2006.04.21 20:00
17:54:09 2006.04.30 23:00  TestTime EURGBP,H4: GBPUSD  2006.04.28 20:00   EURGBP  2006.04.30 23:00   EURUSD  2006.04.28 20:00
17:54:09 2006.05.07 23:00  TestTime EURGBP,H4: GBPUSD  2006.05.05 20:00   EURGBP  2006.05.07 23:00   EURUSD  2006.05.05 20:00
17:54:09 2006.05.14 23:00  TestTime EURGBP,H4: GBPUSD  2006.05.12 20:00   EURGBP  2006.05.14 23:00   EURUSD  2006.05.12 20:00
17:54:09 2006.05.21 23:00  TestTime EURGBP,H4: GBPUSD  2006.05.19 20:00   EURGBP  2006.05.21 23:00   EURUSD  2006.05.19 20:00
17:54:09 2006.05.28 23:00  TestTime EURGBP,H4: GBPUSD  2006.05.26 20:00   EURGBP  2006.05.28 23:00   EURUSD  2006.05.26 20:00
17:54:09 2006.05.29 23:00  TestTime EURGBP,H4: GBPUSD  2006.05.29 20:00   EURGBP  2006.05.29 23:00   EURUSD  2006.05.29 20:00
17:54:09 2006.06.04 23:00  TestTime EURGBP,H4: GBPUSD  2006.06.02 20:00   EURGBP  2006.06.04 23:00   EURUSD  2006.06.02 20:00
17:54:09 2006.06.11 23:00  TestTime EURGBP,H4: GBPUSD  2006.06.09 20:00   EURGBP  2006.06.11 23:00   EURUSD  2006.06.09 20:00
17:54:09 2006.06.25 23:00  TestTime EURGBP,H4: GBPUSD  2006.06.23 20:00   EURGBP  2006.06.25 23:00   EURUSD  2006.06.23 20:00
17:54:09 2006.07.02 23:00  TestTime EURGBP,H4: GBPUSD  2006.06.30 20:00   EURGBP  2006.07.02 23:00   EURUSD  2006.06.30 20:00
17:54:09 2006.07.09 23:00  TestTime EURGBP,H4: GBPUSD  2006.07.07 20:00   EURGBP  2006.07.09 23:00   EURUSD  2006.07.07 20:00
17:54:09 2006.07.16 23:00  TestTime EURGBP,H4: GBPUSD  2006.07.14 20:00   EURGBP  2006.07.16 23:00   EURUSD  2006.07.14 20:00
17:54:09 2006.07.24 00:00  TestTime EURGBP,H4: GBPUSD  2006.07.23 23:00   EURGBP  2006.07.24 00:00   EURUSD  2006.07.23 23:00
17:54:09 2006.07.31 00:00  TestTime EURGBP,H4: GBPUSD  2006.07.30 23:00   EURGBP  2006.07.31 00:00   EURUSD  2006.07.30 23:00
17:54:09 2006.08.07 00:00  TestTime EURGBP,H4: GBPUSD  2006.08.06 23:00   EURGBP  2006.08.07 00:00   EURUSD  2006.08.06 23:00
17:54:09 2006.08.14 00:00  TestTime EURGBP,H4: GBPUSD  2006.08.13 23:00   EURGBP  2006.08.14 00:00   EURUSD  2006.08.13 23:00
17:54:09 2006.08.21 00:00  TestTime EURGBP,H4: GBPUSD  2006.08.20 23:00   EURGBP  2006.08.21 00:00   EURUSD  2006.08.20 23:00
17:54:09 2006.08.28 00:00  TestTime EURGBP,H4: GBPUSD  2006.08.27 23:00   EURGBP  2006.08.28 00:00   EURUSD  2006.08.27 23:00
17:54:09 2006.09.04 00:00  TestTime EURGBP,H4: GBPUSD  2006.09.03 23:00   EURGBP  2006.09.04 00:00   EURUSD  2006.09.03 23:00
17:54:09 2006.09.11 00:00  TestTime EURGBP,H4: GBPUSD  2006.09.10 23:00   EURGBP  2006.09.11 00:00   EURUSD  2006.09.10 23:00
17:54:09 2006.09.18 00:00  TestTime EURGBP,H4: GBPUSD  2006.09.17 23:00   EURGBP  2006.09.18 00:00   EURUSD  2006.09.17 23:00
17:54:09 2006.09.25 00:00  TestTime EURGBP,H4: GBPUSD  2006.09.24 23:00   EURGBP  2006.09.25 00:00   EURUSD  2006.09.24 23:00
17:54:09 2006.10.02 00:00  TestTime EURGBP,H4: GBPUSD  2006.10.01 23:00   EURGBP  2006.10.02 00:00   EURUSD  2006.10.01 23:00
17:54:09 2006.10.09 00:00  TestTime EURGBP,H4: GBPUSD  2006.10.08 23:00   EURGBP  2006.10.09 00:00   EURUSD  2006.10.08 23:00
17:54:09 2006.10.16 00:00  TestTime EURGBP,H4: GBPUSD  2006.10.15 23:00   EURGBP  2006.10.16 00:00   EURUSD  2006.10.15 23:00
17:54:09 2006.10.23 00:00  TestTime EURGBP,H4: GBPUSD  2006.10.22 23:00   EURGBP  2006.10.23 00:00   EURUSD  2006.10.22 23:00
17:54:09 2006.10.30 00:00  TestTime EURGBP,H4: GBPUSD  2006.10.29 23:00   EURGBP  2006.10.30 00:00   EURUSD  2006.10.29 23:00
17:54:09 2006.11.06 00:00  TestTime EURGBP,H4: GBPUSD  2006.11.05 23:00   EURGBP  2006.11.06 00:00   EURUSD  2006.11.05 23:00
17:54:09 2006.11.13 00:00  TestTime EURGBP,H4: GBPUSD  2006.11.12 23:00   EURGBP  2006.11.13 00:00   EURUSD  2006.11.12 23:00
17:54:09 2006.11.20 00:00  TestTime EURGBP,H4: GBPUSD  2006.11.19 23:00   EURGBP  2006.11.20 00:00   EURUSD  2006.11.19 23:00
17:54:09 2006.11.27 00:00  TestTime EURGBP,H4: GBPUSD  2006.11.26 23:00   EURGBP  2006.11.27 00:00   EURUSD  2006.11.26 23:00



17:58:56 TestTime started for testing
17:58:56 2006.04.24 00:00  TestTime EURUSD,H4: GBPUSD  2006.04.24 00:00   EURGBP  2006.04.23 23:00   EURUSD  2006.04.24 00:00
17:58:56 2006.05.01 00:00  TestTime EURUSD,H4: GBPUSD  2006.05.01 00:00   EURGBP  2006.04.30 23:00   EURUSD  2006.05.01 00:00
17:58:56 2006.05.08 00:00  TestTime EURUSD,H4: GBPUSD  2006.05.08 00:00   EURGBP  2006.05.07 23:00   EURUSD  2006.05.08 00:00
17:58:56 2006.05.15 00:00  TestTime EURUSD,H4: GBPUSD  2006.05.15 00:00   EURGBP  2006.05.14 23:00   EURUSD  2006.05.15 00:00
17:58:56 2006.05.22 00:00  TestTime EURUSD,H4: GBPUSD  2006.05.22 00:00   EURGBP  2006.05.21 23:00   EURUSD  2006.05.22 00:00
17:58:56 2006.05.29 00:00  TestTime EURUSD,H4: GBPUSD  2006.05.29 00:00   EURGBP  2006.05.28 23:00   EURUSD  2006.05.29 00:00
17:58:56 2006.05.29 20:00  TestTime EURUSD,H4: GBPUSD  2006.05.29 20:00   EURGBP  2006.05.29 16:00   EURUSD  2006.05.29 20:00
17:58:56 2006.05.30 00:00  TestTime EURUSD,H4: GBPUSD  2006.05.30 00:00   EURGBP  2006.05.29 23:00   EURUSD  2006.05.30 00:00
17:58:56 2006.06.05 00:00  TestTime EURUSD,H4: GBPUSD  2006.06.05 00:00   EURGBP  2006.06.04 23:00   EURUSD  2006.06.05 00:00
17:58:56 2006.06.12 00:00  TestTime EURUSD,H4: GBPUSD  2006.06.12 00:00   EURGBP  2006.06.11 23:00   EURUSD  2006.06.12 00:00
17:58:56 2006.06.26 00:00  TestTime EURUSD,H4: GBPUSD  2006.06.26 00:00   EURGBP  2006.06.25 23:00   EURUSD  2006.06.26 00:00
17:58:56 2006.07.03 00:00  TestTime EURUSD,H4: GBPUSD  2006.07.03 00:00   EURGBP  2006.07.02 23:00   EURUSD  2006.07.03 00:00
17:58:56 2006.07.10 00:00  TestTime EURUSD,H4: GBPUSD  2006.07.10 00:00   EURGBP  2006.07.09 23:00   EURUSD  2006.07.10 00:00
17:58:56 2006.07.17 00:00  TestTime EURUSD,H4: GBPUSD  2006.07.17 00:00   EURGBP  2006.07.16 23:00   EURUSD  2006.07.17 00:00
17:58:56 2006.07.24 00:00  TestTime EURUSD,H4: GBPUSD  2006.07.23 23:00   EURGBP  2006.07.23 23:00   EURUSD  2006.07.24 00:00
17:58:56 2006.07.31 00:00  TestTime EURUSD,H4: GBPUSD  2006.07.30 23:00   EURGBP  2006.07.30 23:00   EURUSD  2006.07.31 00:00
17:58:56 2006.08.07 00:00  TestTime EURUSD,H4: GBPUSD  2006.08.06 23:00   EURGBP  2006.08.06 23:00   EURUSD  2006.08.07 00:00
17:58:56 2006.08.14 00:00  TestTime EURUSD,H4: GBPUSD  2006.08.13 23:00   EURGBP  2006.08.13 23:00   EURUSD  2006.08.14 00:00
17:58:56 2006.08.21 00:00  TestTime EURUSD,H4: GBPUSD  2006.08.20 23:00   EURGBP  2006.08.20 23:00   EURUSD  2006.08.21 00:00
17:58:56 2006.08.28 00:00  TestTime EURUSD,H4: GBPUSD  2006.08.27 23:00   EURGBP  2006.08.27 23:00   EURUSD  2006.08.28 00:00
17:58:56 2006.09.04 00:00  TestTime EURUSD,H4: GBPUSD  2006.09.03 23:00   EURGBP  2006.09.03 23:00   EURUSD  2006.09.04 00:00
17:58:56 2006.09.11 00:00  TestTime EURUSD,H4: GBPUSD  2006.09.10 23:00   EURGBP  2006.09.10 23:00   EURUSD  2006.09.11 00:00
17:58:56 2006.09.18 00:00  TestTime EURUSD,H4: GBPUSD  2006.09.17 23:00   EURGBP  2006.09.17 23:00   EURUSD  2006.09.18 00:00
17:58:56 2006.09.25 00:00  TestTime EURUSD,H4: GBPUSD  2006.09.24 23:00   EURGBP  2006.09.24 23:00   EURUSD  2006.09.25 00:00
17:58:56 2006.10.02 00:00  TestTime EURUSD,H4: GBPUSD  2006.10.01 23:00   EURGBP  2006.10.01 23:00   EURUSD  2006.10.02 00:00
17:58:56 2006.10.09 00:00  TestTime EURUSD,H4: GBPUSD  2006.10.08 23:00   EURGBP  2006.10.08 23:00   EURUSD  2006.10.09 00:00
17:58:56 2006.10.16 00:00  TestTime EURUSD,H4: GBPUSD  2006.10.15 23:00   EURGBP  2006.10.15 23:00   EURUSD  2006.10.16 00:00
17:58:56 2006.10.23 00:00  TestTime EURUSD,H4: GBPUSD  2006.10.22 23:00   EURGBP  2006.10.22 23:00   EURUSD  2006.10.23 00:00
17:58:56 2006.10.30 00:00  TestTime EURUSD,H4: GBPUSD  2006.10.29 23:00   EURGBP  2006.10.29 23:00   EURUSD  2006.10.30 00:00
17:58:56 2006.11.06 00:00  TestTime EURUSD,H4: GBPUSD  2006.11.05 23:00   EURGBP  2006.11.05 23:00   EURUSD  2006.11.06 00:00
17:58:56 2006.11.13 00:00  TestTime EURUSD,H4: GBPUSD  2006.11.12 23:00   EURGBP  2006.11.12 23:00   EURUSD  2006.11.13 00:00
17:58:56 2006.11.20 00:00  TestTime EURUSD,H4: GBPUSD  2006.11.19 23:00   EURGBP  2006.11.19 23:00   EURUSD  2006.11.20 00:00
17:58:56 2006.11.27 00:00  TestTime EURUSD,H4: GBPUSD  2006.11.26 23:00   EURGBP  2006.11.26 23:00   EURUSD  2006.11.27 00:00



Все указанные расхождения я проверил вручную. Сервер MIG-Demo

 
Уважаемый Slawa!
Не сочтите за труд пояснить какие выводы я должен сделать из приведенных Вами логов?
Если я Вас правильно понял, то Вы хотите сказать, что подобные несоответствия - норма? Пожалуйста, поясните, почему?
Сразу хочу оговриться, что на момент написания данного поста мне недоступен терминал MIG, я запустил на STS Finance. Соответствующие графики открыты. Бары присутствуют. Но все те же не соответствия. Выпадает та валюта, от лица которой тестим. Хотя глядя на Ваши логи - и это утверждение не всегда верно.
Заодно, поясните пожалуйста, как на прилагаемом скрине видны ДВА(!) бара с одним и тем же временем 2006.11.28 00:00 ? Стрелки указателя на скрине не видно, однако в выпавшем окне данных Close меньше чем Open, т.е. бар вниз, а "такой же" на котором стоит красная вертикальная линия - бар вверх.
 
То, что бары могут не соответствовать - это норма. Я даже не знаю, как это объяснить, потому что мне кажется, что и так ясно. Самый яркий пример - минутки. На одном инструменте есть бар 09:58, на другом инструменте может не быть такого бара (есть, например, 09:56, а следующий 09:59).

Если за период таймфрейма не пришло ни одного тика, то и соответствующего бара не будет.

Для этого мы и создали функцию iBarShift, чтобы находить ближайший к запрашиваемому времени бар.
Я немного модифицировал эксперта, вставил данную функцию.
//+------------------------------------------------------------------+
//|                                                     TestTime.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int      shift,period=Period();
   datetime time1,time2,time3,time;
//----
   time1=iTime("GBPUSD",period,0);
   time2=iTime("EURGBP",period,0);
   time3=iTime("EURUSD",period,0);
   if(time1!=0 && time2!=0 && time3!=0)
     {
      if(time1!=time2 || time1!=time3 || time2!=time3)
        {
         Print("  GBPUSD  ",TimeToStr(time1),"   EURGBP  ",TimeToStr(time2),"   EURUSD  ",TimeToStr(time3));
         time=Time[0];
         shift=iBarShift("GBPUSD",period,time);
         time1=iTime("GBPUSD",period,shift);
         shift=iBarShift("EURGBP",period,time);
         time2=iTime("EURGBP",period,shift);
         shift=iBarShift("EURUSD",period,time);
         time3=iTime("EURUSD",period,shift);
         Print("2 GBPUSD  ",TimeToStr(time1),"   EURGBP  ",TimeToStr(time2),"   EURUSD  ",TimeToStr(time3));
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+



Но дублирования баров быть не должно! Обращайтесь с вопросами в соответствующую компанию. Если Вы покажете дублирование на наших данных, вот тогда и будем разбираться.

 
Для этого мы и создали функцию iBarShift, чтобы находить ближайший к запрашиваемому времени бар.

Точнее, последний перед запрашиваемым временем бар.

Может быть, в других терминах это звучало бы корректнее. Если, например, рассматривать любой бар как OHLC продолжительностью с начала бара (Time[i]) до начала следующего бара (Time[i + 1], то iBarShift как раз и возвращает i.
 
Точнее, последний перед запрашиваемым временем бар.

Совершенно верно. Я неточно выразился, извините.
 
Ах вот Вы о чем!
Извините, но мне кажется Вы не совсем детально прочитали указанные мной ссылки на форум. Там подобная версия была отброшена достаточно быстро.
Про "дыры" в истории речи не идет. Да и согласитесь, маловероятна ситуация, что за четыре часа не пришло ни одного тика, тем более с таким систематическим постоянством.
Речь идет о том, что бары которые ПРИСУТСТВУЮТ в истории (они есть на графике, они есть в истории котировок), и имеют время, открытие, закрытие, и т.д. НЕ ВИДЯТСЯ из другой валюты.
В Вашем же примере один и тот же бар в одной ситуации виден, а в другой нет. Разве это норма?
Что касается моей картинки - раскрою фокус. Бар на котором стоит красная линия - действительно ПРЕДЫДУЩИЙ, т.е. 2006.27.11, но установить вертикальную линию (равно как и любой другой объект) на бар со стрелочкой (28.11.2006 00:00) - НЕВОЗМОЖНО. Как мне кажется - это наглядный пример того, что имеет место быть некорректная обработка НЕКОТОРЫХ(!) баров даже вне MQL, а в самом интерфейсе.
Сейчас поставлю Ваш терминал и попробую воспроизвести данный фокус у Вас.
 
Вот пожалуйста. Терминал скачен с Вашего сайта. Правда в нем забит адрес MIG DEMO... :о\
Все аналогично моему предыдущему посту. Заметьте, данный "фокус" происходит точно с теми барами, которые "выпадают" в тестировании.


Если подскажете адрес Вашего сервера - попробую воспроизвести картинку на Вашем.
 
demo.metaquotes.net

Я воспроизвёл Вашу картинку. Вертикальная линия несмотря на то, что указано 2006.11.06 16:00 на самом деле находится на баре 2006.11.05 23:00. Попытаюсь разобраться
 
Проблема оказалась в неправильном подсчёте координат для объектов. (Вертикальная линия, помеченная 0 часов на самом деле стоит на 23-часовом баре).

Ошибка исправлена. Спасибо.
 
Проблема оказалась в неправильном подсчёте координат для объектов. (Вертикальная линия, помеченная 0 часов на самом деле стоит на 23-часовом баре).

Ошибка исправлена. Спасибо.

A "daily" ne ogidaetsia na dniah slu4aem? ;;)
Причина обращения: