Проверка идёт сразу по двум парам. Теперь "отсутствие" минутного бара GBPUSD в 01:03 становится понятным. Все сгенерированные тики сортируются по времени и по идентификатору символа. Время 01:03:00 совпало у тиков по EURUSD и GBPUSD. Однако, в силу сортировки тик EURUSD пришёл раньше, то есть на этот момент соответствующий бар GBPUSD ещё не начал формироваться (в общем-то, как в жизни). Это место менять не будем.
А вот с явным отсутствием "чужих" баров в начале первых суток тестирования будем разбираться. Спасибо, что представили код, иллюстрирующий проблему.
А что мы будем делать если по одному из инструментов тики не прийдут и соответственно бар не будет сформирован?
Текущий вариант построен с учетом жесткого контроля новых баров на всех инструментах/таймфреймах.
В принципе, чтобы не ждать какой-то инструмент(это может быть например из-за разного торгового/котировочного времени), а продолжать работу, можно немного поправить код следующим образом:
if(Tics[i]>=NewBars[i][COUNT_PERIODS-1]) // появился новый бар на младшем TF
{
BarsMonitoring(); // запускаем мониторинг появления новых баров на остальных TF
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Interesting Ну понятное дело что надо проверять время каждого бара, например я это делал так:
Но здесь речь не о том, в тестере происходит чтото непонятное, особенно до часа ночиЕсли так, то тут проблемы тестера. Но алгоритм кода все равно не очень подходит для выполнения поствленой задачи (ТИМХО)...
Это для того чтоб не загромождать, и сразу показать проблемму.
Я несколько видоизменил Ваш код
Проверка идёт сразу по двум парам. Теперь "отсутствие" минутного бара GBPUSD в 01:03 становится понятным. Все сгенерированные тики сортируются по времени и по идентификатору символа. Время 01:03:00 совпало у тиков по EURUSD и GBPUSD. Однако, в силу сортировки тик EURUSD пришёл раньше, то есть на этот момент соответствующий бар GBPUSD ещё не начал формироваться (в общем-то, как в жизни). Это место менять не будем.А вот с явным отсутствием "чужих" баров в начале первых суток тестирования будем разбираться. Спасибо, что представили код, иллюстрирующий проблему.
Все сгенерированные тики сортируются по времени и по идентификатору символа.
А почему тогда некоторые совпадают?
А почему тогда некоторые совпадают?
Я ошибся, сказав про сортировку по идентификатору символа. Её убрали ради повышения скорости генерации.
Поэтому порядок следования тиков с одним и тем же временем неопределён.
Я ошибся, сказав про сортировку по идентификатору символа. Её убрали ради повышения скорости генерации.
Поэтому порядок следования тиков с одним и тем же временем неопределён.
Я проверил свой индикатор, вродебы стало совпадать.
Значит действительно надо проверять сформированность баров на всех инструментах.
Осталась дождаться решения проблемы с началом теста и можно считать вопрос закрытым.
Предлагаю рассмотреть каркас простого мультивалютного/мультипериодного эксперта, основанного на таймере
Чтото я не очень уверен в слове "простого"
А что мы будем делать если по одному из инструментов тики не прийдут и соответственно бар не будет сформирован?
Чтото я не очень уверен в слове "простого"
А что мы будем делать если по одному из инструментов тики не прийдут и соответственно бар не будет сформирован?
Текущий вариант построен с учетом жесткого контроля новых баров на всех инструментах/таймфреймах.
В принципе, чтобы не ждать какой-то инструмент(это может быть например из-за разного торгового/котировочного времени), а продолжать работу, можно немного поправить код следующим образом:
Для получения времени открытия текущего (последнего бара) по символу/таймфрейму есть более короткий путь:
Смотрите Информация об исторических данных по инструменту