Ошибка в MQL5. Просьба к разработчикам исправить. Не можем торговать.
ничего удивительного, на пример в мт4 онтаймер в тестере с момента сотворения мира не работает и никто не возникает, тестируйте свои функции в онтике, а потом просто замените на онтаймер
я подожду официального ответа разработчиков
Мне необходимо получать котировки и таймсерии в неторговое время.
Говорите ошибка проявляется именно на второй день?
В общем поставил Ваш код и свой
//+------------------------------------------------------------------+ //| CopyTime.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.00" //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create timer EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- datetime dGMT=TimeGMT(); MqlDateTime mdt_gmt; TimeToStruct(dGMT,mdt_gmt); datetime dCurDay[]; ResetLastError(); int copy_time_d1=CopyTime(Symbol(),PERIOD_D1,0,1,dCurDay); if(copy_time_d1==-1) { Print(__FUNCTION__,", ERROR CopyTime: ",GetLastError()); return; } MqlDateTime mdt_cur; TimeToStruct(dCurDay[0],mdt_cur); PrintFormat("The date today: GMT - %.04d.%.02d.%.02d, CopyTime - %.04d.%.02d.%.02d", mdt_gmt.year, mdt_gmt.mon, mdt_gmt.day, mdt_cur.year, mdt_cur.mon, mdt_cur.day); } //+------------------------------------------------------------------+
на AFLT.MM,H1 , реал Just2Trade.
Завтра вечером посмотрю развитие ситуации.
Итак, мой терминал и операционная система:
2019.02.07 15:43:39.562 MetaTrader 5 x64 build 1981 started (MetaQuotes Software Corp.) 2019.02.07 15:43:39.565 Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i3-3120M @ 2.50GHz, Memory: 2814 / 8077 Mb, Disk: 102 / 415 Gb, GMT+2 2019.02.07 15:43:39.565 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Был запущен мой код (принтовал каждый 60 секунд) и проверочный код.
В итоге, всё отработало правильно и без ошибок:
2019.02.07 18:59:41.995 test_error (AFLT.MM,H1) The date today: GMT - 2019.02.07, CopyTime - 2019.02.07 2019.02.07 19:27:48.958 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.07, CopyTime - 2019.02.07 2019.02.07 19:28:48.957 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.07, CopyTime - 2019.02.07 2019.02.07 19:29:48.957 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.07, CopyTime - 2019.02.07 *** 2019.02.08 17:56:53.867 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08 2019.02.08 17:57:53.885 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08 2019.02.08 17:58:53.890 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08 2019.02.08 17:59:53.883 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08 2019.02.08 18:00:27.346 test_error (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08 2019.02.08 18:00:53.886 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08 2019.02.08 18:01:53.892 CopyTime (AFLT.MM,H1) The date today: GMT - 2019.02.08, CopyTime - 2019.02.08
Здравствуйте. С некоторых времен, начиная с декабря или ноября прошлого года, начала наблюдаться следующая ошибка. Наш робот котировок готовит данные для торгового робота после окончания торгов на российской бирже. Соответственно, все расчеты вызываются в процедуре OnTimer. Так вот процедура CopyTime, вызванная из процедуры OnTimer, со второго дня работы терминала, начинает показывать некорректные значения, а возможно и процедуры CopyHigh, CopyLow, CopyClose, и т.д.
Я выделил предполагаемую ошибку в отдельный тестовый модуль и запустил его на выделенном сервере. Ошибка проявилась.
Код тестового модуля:
На второй день работы, этот советник начал выдавать некорректное значение даты, полученной из функции CopyTime (см. аттач)
Укажите пожалуйста номер сборки (build) вашего терминала.
TimeGMT - почему вы работаете с GMT временем вместо времени сервера?
Так легко же получить дельту в несколько часов.
Прошел день. Ситуация еще хуже.
Скриншот бага и билд терминала см. аттач. (build 1940)
У вас дневной график открыт? Если нет, то возможно, что первый запрос возвращает устаревшие данные. Сделайте проверку на количество скопированных элементов и код последней ошибки.
Извиняюсь, вижу что проверка есть, но код ошибки лучше проверять даже если CopyTime возвращает 1.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте. С некоторых времен, начиная с декабря или ноября прошлого года, начала наблюдаться следующая ошибка. Наш робот котировок готовит данные для торгового робота после окончания торгов на российской бирже. Соответственно, все расчеты вызываются в процедуре OnTimer. Так вот процедура CopyTime, вызванная из процедуры OnTimer, со второго дня работы терминала, начинает показывать некорректные значения, а возможно и процедуры CopyHigh, CopyLow, CopyClose, и т.д.
Я выделил предполагаемую ошибку в отдельный тестовый модуль и запустил его на выделенном сервере. Ошибка проявилась.
Код тестового модуля:
На второй день работы, этот советник начал выдавать некорректное значение даты, полученной из функции CopyTime (см. аттач)