И снова о некорректной подстановке баров - страница 2

 
Ну да, я так и писал - что на самом деле линия стоит на другом баре. И путем "подергиваний" и перестановок от нее можно добиться правильных показаний.
Slawa, к Вам вопрос: а после исправления ошибки стало возможным установка объектов на эти злополучные бары? Т.е. в моем примере (самая последняя картинка) можно поставить объект на бар с координатами 2006.11.06 00:00 ?
Просто до сих пор объекты "перескакивали" на соседний бар.
И еще, после исправления этой ошибки - перестали ли эти бары "выпадать" в програмных примерах выше?
 
Это - 2 разные ошибки.

Сейчас объекты будут устанавливаться правильно. А вот про выпадение баров я так и не понял.

Давайте дождёмся исправленного билда. И если проблема останется, Вы ещё раз расскажете, более подробно.
 
To Slava | Сейчас объекты будут устанавливаться правильно. А вот про выпадение баров я так и не понял|

Как мне видится Проблема лежит гораздо глубже у вас в терминале не правильно организованно построение временной шкалы.
Временная шкала не должна зависеть от котировок брокера если даже брокер не дал несколько котировок
Торговый терминал сам должен сформировать временную шкалу с линейным шагом в зависимости от установленного пользователем рабочего таймфрейма и уже потом на нее накладываются котировки.
В месте где бары не представлены должна получится временная дара и это должно быть видно визуально. Посмотрите например как сделано в Omega TradeStation временная шкала строго линейна и не зависит от котировок. А у вас получается что все индикаторы которые в расчетах используют реальное время выдают не правильные значения. Лично мне так и не удалось перенести свои наработки на вашу платформу из-за этой проблемы постоянно происходят смешения объектов пришлось все делать в древней Омеге. В настоящее время вашу платформу для серьезного анализа не использую, не сочтите за критику устранять все проблемы вы конечно не обязаны.
 
To Slava | Сейчас объекты будут устанавливаться правильно. А вот про выпадение баров я так и не понял|

Как мне видится Проблема лежит гораздо глубже у вас в терминале не правильно организованно построение временной шкалы.
Временная шкала не должна зависеть от котировок брокера если даже брокер не дал несколько котировок
Торговый терминал сам должен сформировать временную шкалу с линейным шагом в зависимости от установленного пользователем рабочего таймфрейма и уже потом на нее накладываются котировки.
В месте где бары не представлены должна получится временная дара и это должно быть видно визуально. Посмотрите например как сделано в Omega TradeStation временная шкала строго линейна и не зависит от котировок. А у вас получается что все индикаторы которые в расчетах используют реальное время выдают не правильные значения. Лично мне так и не удалось перенести свои наработки на вашу платформу из-за этой проблемы постоянно происходят смешения объектов пришлось все делать в древней Омеге. В настоящее время вашу платформу для серьезного анализа не использую, не сочтите за критику устранять все проблемы вы конечно не обязаны.

Эта проблема уже давным давно решена и каждый желающий может воспользоваться линейной временной шкалой и в МТ4:
"MQL4: Графики без "дыр""
 
Это - 2 разные ошибки.

Сейчас объекты будут устанавливаться правильно. А вот про выпадение баров я так и не понял.

Давайте дождёмся исправленного билда. И если проблема останется, Вы ещё раз расскажете, более подробно.


Итак, билда дождались. Причем не одного, а сразу трех. Билд 203, скачал с Вашего сайта, MIG demo. Ошибка повторяется точь-в точь. Речь идет не о рисовании вертикальной линии, она-то ставится нормально. А вот бары по-прежнему имеют разное время.
Если вкратце, то при запросе из эксперта (тестер) бара с номером Х на, например, трех смежных валютных парах, мы получаем, что две валютные пары возвращают для указанного бара время Time1, а третья - Time2. Причем если поменять пару от лица которой ведется тест, то картина такая же, но уже другие две пары дают одно время, а третья - другое.
В этой же ветке видно, что у Slawa получилось воспроизвести эту проблему, но вразумительного объяснения, как это возможно (например, на периодах 1Н-4Н) так и не последовало.
Может вернемся к этой проблеме?
 
Slawa! Ау! Так что на счет данной проблемы? Вы воспроизвели ее, признали ее как ошибку, однако ничего не изменилось... :о(
 
Вы про "выпадание баров"? Как я понял, Вы имеете в виду отсутствие некоторых баров на графике.
Мы неоднократно заявляли нашу позицию по этому вопросу:
"Если в течение таймфрейма (минуты, часа etc) не было ни одного тика, то нет и соответствующего бара"

Если я Вас неправильно понял, то не отправляйте меня по ссылкам, а ясно сформулируйте проблему.
 
Итак, пусть с задержкой, но вернемся к указанной проблеме.
Увы, Slawa, Вы меня неправильно поняли, я неоднократно подчеркивал, что речь НЕ ИДЕТ о барах, которых НЕТ (отсутствие тиков, или просто отсутствие в истории). Бары ЕСТЬ. ВСЕ. На самом деле, проблема описывалась неоднократно с четкими примерами. Не понимаю, почему ее надо описывать снова "с нуля". Ну да ладно... Главное - чтобы был результат. Итак...
Берем эксперта написанного ВАМИ. Размещен он несколькими постами выше, но я его повторю.
//+------------------------------------------------------------------+
//|                                                     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);
  }
//+------------------------------------------------------------------+



Запускаем его в тестере (сервер MIG) два раза (двух для примера достаточно, хотя можно и три)
1-й прогон. EURUSD 4H c 1 апреля 2007 по текущий день.
2-й прогон. GBPUSD 4H c 1 апреля 2007 по текущий день.
Вот что получается:


На картинке показано, что бары (для примера 2007.04.15 23:00 и 2007.04.16 00:00 по EURUSD) присутствуют в истории и на графике.
Теперь вопросы.
1. Смотрим на первый прогон. Почему когда по EURUSD уже торгуется следующий день (наступил понедельник 2 апреля 00:00) по остальным мы еще "живем" во вчерашнем (воскресенье 1 апреля 23:00)?
2. Сравниваем первый и второй прогон. Почему ситуация в точности поменялась но уже для той пары на которой тестим. Если дело в котировках, то должны быть некая стабильность, т.е. EURUSD всегда на день вперед. А тут уже GBPUSD уже "сегодня", а остальные две пары "вчера". Если протестить на третьей, то картина опять изменится. По всем парам выдается ПРЕДЫДУЩИЙ бар, и лишь на той на которой тестируем выдается ТЕКУЩИЙ. И как видите, это абсолютно не зависит от котировок, а зависит от работы тестера.

Уважаемый Slawa! Я очень надеюсь, что проблему Вам изложил подробно и понятно. Если есть вопросы - спрашивайте. Только убедительная просьба: если Вы считаете что ФАКТ данного поведения тестера является НОРМОЙ, так же подробно и понятно объяснить Вашу позицию по данному вопросу.
С уважением.

 
Действительно интересная проблемка с тестером! Видимо тестер ориентируется на предыдущий бар, высчитывая прошло ли 4 часа с момента открытия бара (последствия боязни дырок на М1 ;o)) прежде чем начинает искать другой бар с другой валютной пары. Либо второй вариант - функция iBarShift в тестере в поисковый участок не включает заданное время, то есть ищет бар "до указанного времени" (присутствует знак "<" вместо "<="). Разработчики всё-таки могли бы постараться дать чёткое объяснение ситуации а также как её обойти.
 
Да, кстати, вдогонку. Данная картина имеет место быть не только для H4. Ее можно увидеть и на 15М, например.
Вот кусок лога. Обратите внимание, тут ситуация возникает не только на "воскресных" барах, но и в течении всей недели.

2007.04.23 09:32:24 2007.04.20 20:30 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.20 20:30 EURGBP 2007.04.20 20:15 EURUSD 2007.04.20 20:30
2007.04.23 09:32:24 2007.04.20 20:30 MigTestBug GBPUSD,M15: GBPUSD 2007.04.20 20:30 EURGBP 2007.04.20 20:15 EURUSD 2007.04.20 20:30
2007.04.23 09:32:24 2007.04.20 20:00 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.20 20:00 EURGBP 2007.04.20 19:45 EURUSD 2007.04.20 20:00
2007.04.23 09:32:24 2007.04.20 20:00 MigTestBug GBPUSD,M15: GBPUSD 2007.04.20 20:00 EURGBP 2007.04.20 19:45 EURUSD 2007.04.20 20:00
2007.04.23 09:32:24 2007.04.19 23:45 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.19 23:45 EURGBP 2007.04.19 23:30 EURUSD 2007.04.19 23:45
2007.04.23 09:32:24 2007.04.19 23:45 MigTestBug GBPUSD,M15: GBPUSD 2007.04.19 23:45 EURGBP 2007.04.19 23:30 EURUSD 2007.04.19 23:45
2007.04.23 09:32:24 2007.04.19 17:30 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.19 17:30 EURGBP 2007.04.19 17:15 EURUSD 2007.04.19 17:30
2007.04.23 09:32:24 2007.04.19 17:30 MigTestBug GBPUSD,M15: GBPUSD 2007.04.19 17:30 EURGBP 2007.04.19 17:15 EURUSD 2007.04.19 17:30
2007.04.23 09:32:24 2007.04.18 04:45 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.18 04:45 EURGBP 2007.04.18 04:30 EURUSD 2007.04.18 04:45
2007.04.23 09:32:24 2007.04.18 04:45 MigTestBug GBPUSD,M15: GBPUSD 2007.04.18 04:45 EURGBP 2007.04.18 04:30 EURUSD 2007.04.18 04:45
2007.04.23 09:32:24 2007.04.18 00:30 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.18 00:30 EURGBP 2007.04.18 00:15 EURUSD 2007.04.18 00:30
2007.04.23 09:32:24 2007.04.18 00:30 MigTestBug GBPUSD,M15: GBPUSD 2007.04.18 00:30 EURGBP 2007.04.18 00:15 EURUSD 2007.04.18 00:30
2007.04.23 09:32:24 2007.04.17 00:30 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.17 00:30 EURGBP 2007.04.17 00:00 EURUSD 2007.04.17 00:30
2007.04.23 09:32:24 2007.04.17 00:30 MigTestBug GBPUSD,M15: GBPUSD 2007.04.17 00:30 EURGBP 2007.04.17 00:00 EURUSD 2007.04.17 00:30
2007.04.23 09:32:24 2007.04.17 00:15 MigTestBug GBPUSD,M15: 2 GBPUSD 2007.04.17 00:15 EURGBP 2007.04.17 00:00 EURUSD 2007.04.17 00:15
2007.04.23 09:32:24 2007.04.17 00:15 MigTestBug GBPUSD,M15: GBPUSD 2007.04.17 00:15 EURGBP 2007.04.17 00:00 EURUSD 2007.04.17 00:15