Скачать MetaTrader 5

Получение котировок - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vadim Zhunko
5227
Vadim Zhunko  
evillive:
Предусмотрено. Медленный вариант с симуляцией ручного удержания HOME.

Это не поможет. Надо именно "обновить график".
Николай Осипов
223
Николай Осипов  

12/11/2013 получил ответ от тех.поддержки брокера.
Предложили :

Для загрузки полной истории котировок по нужному инструменту необходимо:
1. запустить торговый терминал
2. перейти в сервис - настройки - графики
3. в поле максимальное количество баров в истории прописать 2147483647, затем нажать ОК
4. перейти в архив котировок, выбрать инструмент, таймфрейм, загрузить
Если история загрузится не полностью, то необходимо отключить терминал, перейти в корневую папку МТ4, найти папку history и отчистить ее содержимое за исключением файла news.dat,
после чего запустить терминал и последовать инструкции, приведенной выше.

Выполнил, все потерянные данные появились. Не было с 28/10 по 05/11
Значит исправили.
George
505
George  

Уважаемые господа разработчики, к вам вопрос:

заходим на эту страничку и читаем:

"При запросе данных из индикатора, если запрашиваемые таймсерии еще не построены или их необходимо загрузить с сервера, то функция сразу же вернет -1, но при этом сам процесс загрузки/построения будет инициирован.

При запросе данных из эксперта или скрипта, будет инициирована загрузка с сервера, если локально этих данных у терминала нет, либо начнется построение нужной таймсерии, если данные можно построить из локальной истории, но они еще не готовы. Функция вернет то количество данных, которые будут готовы к моменту истечения таймаута, но загрузка истории будет продолжаться, и при следующем аналогичном запросе функция вернет уже больше данных."

Аналогично для CopyTime(), CopyOpen() и т.п.  

Почему-то озвученный в документации процесс (то, что выделено красным) не хочет работать.

Проверял следующим образом:

1. Выбрал инструмент, по которому в терминале нет данных (всего 5 баров) 

2. На графике другого инструмента и другого таймфрейма запустил индикатор, в котором в функции OnTimer() каждую секунду выполнял запрос:

   int copied=CopyRates(Symb,MyTF,0,1000,rates); //естественно, были верно заданы все входящие переменные : MqlRates rates[]; и т.п.

   Print("Скопировано баров: "+copied); 

3. Так вот - количество скопированных баров всё время равнялось 5.

4. Далее я открыл график с инструментом  Symb и таймфреймом MyTF. При этом не нажимал кнопку Home. С сервера подгрузилось определенное количество баров. Закрыл этот график.

5. Снова на графике (см. п. 2) выполнил запрос. Количество скопированных баров увеличилось до 299, но далее загрузка не продолжалась, несмотря на продолжающиеся запросы.

Пожалуйста, разъясните эту нестыковочку и, если не сложно, подскажите, как правильно подгружать историю с помощью программного запроса.

Спасибо. 

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий