Всё правильно. Запрос на обновление истории посылается всего один раз. Поэтому всего один раз и возвращается код 4066
Так как же тогда проверить что данные (все данные!) уже пришли? Вопрос-то в основном в этом!
Уважаемые разработчики, ответьте пожалуйста!
Уважаемые разработчики, ответьте пожалуйста!
Гарантированного способа нет процессы подкачки асинхронны.
В качестве решения, после отлова 4066 лучше всего вообще отказаться от торговли в ближайшие 30 сек - пару минут.
Ок, но хотя бы можно сделать так чтоб данные приходили последовательно - вначале старые, потом новые? Без этого некоторые рассчеты абсолютно неправильны.
Ок, но хотя бы можно сделать так чтоб данные приходили последовательно - вначале старые, потом новые? Без этого некоторые рассчеты абсолютно неправильны.
Сначала приходят ближайшие данные, а только потом - более старые.
То есть, можно ли считать что когда пришли самые старые - то все остальные уже есть?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я тут немного поигрался с примером из хелпа по использованию ArrayCopySeries() с ожиданием по ERR_HISTORY_WILL_UPDATED - так вот, по-моему есть проблема:
1) ERR_HISTORY_WILL_UPDATED возвращается только в первый раз - во всяком случае, я ни разу не наткнулся на обратное. Это происходит вне зависимости от таймаута который давать Sleep()-у.
2) После того, как ArrayCopySeries() вернул ERR_NO_ERROR (второй вызов), данные часто еще не подкачены. Видел 2 варианта: а) возвращаются старые данные б) подкачалось около 500 самых последних баров, получился пропуск между этими 500 и старыми; через некоторое время пропуск заполняется.
Игрался на минутках, билд 195.
Да, забыл добавить - использовал инструмент для которого нет открытого графика.