Разъясните пожалуйста что в этой функции может быть не так? - страница 7

 

По этой ссылке говорится

Механизм обращения к серверу за данными не зависит от того, каким образом был инициирован запрос — пользователем при навигации по графику или программным способом на языке MQL5.


видимо это о более старых данных, а последние, самые свежие??? должны быть получены просто потому, что график инструмента открыт? Или нет?

В чём-же разница при получении данных разными функциями?

 
Slawa:
Вы полностью читали в документации про организацию доступа к данным?

Слава, а вы в мою заявку заглядывали?

MQL5: error #4806
Открыта, Начата: 2016.02.15 11:22, #1409574

Не работает поддержание кэша через дергание индикаторов.

Запустите приложенного советника, через какое-то время получите ошибку в логах.

 
Andrey Khatimlianskii:

Слава, а вы в мою заявку заглядывали?

Не работает поддержание кэша через дергание индикаторов.

Запустите приложенного советника, через какое-то время получите ошибку в логах.

Да, заглянул. Но никакого советника там не обнаружил.

Я проверил своим советником. Повторяю: наличие хендла любого индикатора (в моём случае iMA) предотвращает выгрузку исторического кеша.

Давайте своего советника сюда (а можно и в вышеуказанной заявке) - я его запущу в разных терминалах. Посмотрим

 
Alexey Viktorov:

Дмитрий, а не странно это? Новый бар появился, но считать мы его пока не будем.

Слушайте, а не это-ли является причиной такого поведения SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE); ? Новый бар появился, тик имеется код выполняется, а время пока не учитывается???

С точки зрения использования времени - правильно. Принято, что верхняя граница указанного временик диапазону не относится. Но в данном случае неудобно - это да.

Про SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE); не знаю, не приходилось пользоваться и наверно не буду, если потребуется время бара, буду использовать CopyTime() или CopyRates().

Стоило бы разработчикам сделать аналог iBarShift(), немного перепилить Bars() и получилось бы.

 
Slawa:

Да, заглянул. Но никакого советника там не обнаружил.

Я проверил своим советником. Повторяю: наличие хендла любого индикатора (в моём случае iMA) предотвращает выгрузку исторического кеша.

Давайте своего советника сюда (а можно и в вышеуказанной заявке) - я его запущу в разных терминалах. Посмотрим

Советник был приложен в первом же сообщении (zip, 58.91 KB). У вас не хранятся файлы нигде?

Собрал ту версию, с которой все началось, и приложил. Пробуйте. Условия тестов и сет-файл там же.

 
Dmitry Fedoseev:

С точки зрения использования времени - правильно. Принято, что верхняя граница указанного временик диапазону не относится. Но в данном случае неудобно - это да.

Про SeriesInfoInteger(_Symbol, PERIOD_D1, SERIES_LASTBAR_DATE); не знаю, не приходилось пользоваться и наверно не буду, если потребуется время бара, буду использовать CopyTime() или CopyRates().

Стоило бы разработчикам сделать аналог iBarShift(), немного перепилить Bars() и получилось бы.

Принято и в других языках программирования?

Ну попадание верхней границы в диапазон это полбеды. То что Вы назвали неудобством я назвал глупостью к которой можно привыкнуть и её учитывать при использовании в своих программах.

Просто обнаружив неадекватное поведение функции, а по-другому это назвать не получается, я попытался объяснить это разработчикам. Но вместо попытки понять что происходит ... всё... молчу. Никому это не надо.

Я тоже уже отказался от использования этой функции и заменил её на CopyRates() просто по инерции продолжал объяснять, наверное потому, что барабашка переименовал тему так, что я прошу подсказку, а не сообщаю о проблеме в mql5.

 
Andrey Khatimlianskii:

Советник был приложен в первом же сообщении (zip, 58.91 KB). У вас не хранятся файлы нигде?

Собрал ту версию, с которой все началось, и приложил. Пробуйте. Условия тестов и сет-файл там же.

Заработался совсем вчера. Оказывается, есть зип с исходником эксперта в первом же сообщении. Его и использую
 
Alexey Viktorov:

Просто обнаружив неадекватное поведение функции, а по-другому это назвать не получается, я попытался объяснить это разработчикам. Но вместо попытки понять что происходит ... всё... молчу. Никому это не надо.


Где Вы видите неадекватное поведение функции? Вы документацию внимательно читали?

SeriesInfoInteger

Возвращает информацию о состоянии исторических данных.

Возвращает информацию о состоянии исторических данных. Не обновляет информацию, не инициирует подкачку данных. Просто возвращает то, что есть на данный момент

 
Slawa:

Где Вы видите неадекватное поведение функции? Вы документацию внимательно читали?

Возвращает информацию о состоянии исторических данных. Не обновляет информацию, не инициирует подкачку данных. Просто возвращает то, что есть на данный момент

Если Вас не затруднит пройдите по ссылке https://www.mql5.com/ru/forum/89213/page6#comment_2605980 там всё сказано.

SERIES_LASTBAR_DATE Время открытия последнего бара по символу-периоду. А когда появляется новый бар, но функция это то видит, то не видит, это как называется? Культурно выражаясь "НЕСТАБИЛЬНАЯ работа функции" а попросту неадекватное поведение...

Во-вторых, не надо было нести ахинею в первых ответах на мою заявку в СД.

 
Alexey Viktorov:

SERIES_LASTBAR_DATE Время открытия последнего бара по символу-периоду. А когда появляется новый бар, но функция это то видит, то не видит, это как называется? Культурно выражаясь "НЕСТАБИЛЬНАЯ работа функции" а попросту неадекватное поведение...


Если соответствующие исторические данные выгрузились по таймауту, то что должна возвратить функция SeriesInfoInteger с запросом SERIES_LASTBAR_DATE?

А кто будет проверять результат GetLastError()?

Ваша заявка в сервисдеск называется "Странное невыполнение условия if(condition)". (Ёлы-палы! ИФ НЕ РАБОТАЕТ!!!) И именно Вы несли ахинею в этой заявке. Вы там вообще всё в кучу смешали. Перечитайте Вашу заявку ещё раз в более спокойном состоянии, глазами стороннего человека.

И не нужно наездов - здесь технический форум, и аргументы должны быть грамотно подготовлены.

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