Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В четверке будем исправлять - переборщили с агрессивной выгрузкой неиспользуемых чартов.
Ренат, Вы читали мой начальный пост? Почему он не используемый? К нему запросы идут каждый тик, гораздо чаще, чем раз в 10 секунд. Или не используемый = не открытый? Поясните пожалуйста.
Однако очень рад, что Вы прислушались к моим словам.
Если МТ5-функцию SeriesInfoInteger не использовать, а вместо неё пользоваться старыми функциями МТ4, iBars, iTime, MarketInfo и т.д., то проблема остается?
Используя конструкцию iTime( _Symbol, period, Bars( _Symbol, period )-1 ) можно получить время первой доступной свечи на чарте.
Но, чтобы получить время первой свечи на сервере, я что-то не придумал какую конструкцию написать.
С использованием SeriesInfoInteger все делается просто: SeriesInfoInteger( _Symbol, period, SERIES_SERVER_FIRSTDATE );
Ренат, Вы читали мой начальный пост? Почему он не используемый? К нему запросы идут каждый тик, гораздо чаще, чем раз в 10 секунд. Или не используемый = не открытый? Поясните пожалуйста.
Вот поэтому я и пишу "переборщили с агрессивной выгрузкой".
Обязательно разберемся.
Используя конструкцию iTime( _Symbol, period, Bars( _Symbol, period )-1 ) можно получить время первой доступной свечи на чарте.
Но, чтобы получить время первой свечи на сервере, я что-то не придумал какую конструкцию написать.
С использованием SeriesInfoInteger все делается просто: SeriesInfoInteger( _Symbol, period, SERIES_SERVER_FIRSTDATE );
А разве МТ4 перед обращением к таймсерии не подгружает её полностью? То есть если сделать обращение iBar к "незнакомой" таймсерии в скрипте МТ4 с промежутком в секунду, то результат будет отличаться?
Смотрите. Можно ограничить доступность истории настройкой терминала Макс. баров в окне. Тогда на сервере будет истории больше, чем на чарте. Все логично.
Если же обращаться через функцию SeriesInfoInteger(), то, дабы постоянно иметь доступ к данным, если эта функция вернет 0 - вызвать функцию iTime() с нужного символа/периода. Но это, во-первых, нигде не задокументировано, во-вторых, не корректно, т.к. гарантировано получить данные из функции, можно только с помощью другой функции. Тогда зачем нужна эта функция?!
Но, как я уже сказал, свойство SERIES_SERVER_FIRSTDATE, похоже, не дублируется. А значит хотя бы поэтому, функция SeriesInfo.. нужна.
Если же обращаться через функцию SeriesInfoInteger(), то, дабы постоянно иметь доступ к данным, если эта функция вернет 0 - вызвать функцию iTime() с нужного символа/периода.
Я бы понял актуальность этой проблемы если бы вдруг вместо получения данных с искомого ТФ функции МТ4 - iHigh, iLow, ... iBars и т.д. вернули ошибку (0). Функции МТ5 в Мт4 просто не нужны, там нет асинхронной загрузки данных, насколько я понимаю. И нет смысла все усложнять.
Есть или нет смысла - вопрос другой.
Но еще раз говорю, что я не знаю способа получить дату первого доступного бара на сервере по символу, кроме как не через функцию SeriesInfoInteger(). Может быть Вы знаете?
Есть или нет смысла - вопрос другой.
Но еще раз говорю, что я не знаю способа получить дату первого доступного бара на сервере по символу, кроме как не через функцию SeriesInfoInteger(). Может быть Вы знаете?
А зачем Вам её получать?
Хотя бы потому, что она заявлена в документации, и я хочу ее использовать.
Для закачки и проверки истории, по аналогии с МТ5: https://www.mql5.com/ru/docs/series/timeseries_access
Повторю вопрос, Вы знаете, как можно средствами старого mql4 получить эту дату?