Несколько моментов по поводу получения котировок

 

 В мт4 котировки можно было загрузить через F2 и выбор инструмента + нажать загрузить котировки по нужному ТФ. В мт5 этого нет. Я так понял всё нужно делать программно. Тут как-бы вопроса нет...

Вопрос появляется дальше. Я написал себе бибилотеку для получения данных из таймсерий рыночных данных. Попутно прооптимизировал её и теперь при работе в "идеальных условиях" всё мне нравится. Я, конечно, понимал, что дальше нужно будет решать вопрос с пробелами в котировках, но как-то подобных ситуаций не возникало и было не до того.

Так вот сегодня случилась нужная мне ситуация. Я увидел следующее при тестировании (отладке) индикатора:

2018.04.19 21:20:11.680 GBPUSD,H1: history cache allocated for 12291 bars and contains 12072 bars from 2015.01.02 09:00 to 2016.12.09 23:00

2018.04.19 21:20:11.681 GBPUSD,H1: history begins from 2015.01.02 09:00

Так вот,

вопрос №1: Самое интересное, что подобная ситуация возникла первый раз. По скольку это не реальная торговлю, но мне стало интересно, почему тестер сам не подкачивает котировки за период на коором тестируетс яиндикатор (эксперт)? Как по мне это логично. Про реальную торговлю я не говорю..

вопрос №2: получение элемента из таймсерии для меня вообще странная вещь. Вот смотретие справку по CopyClose():

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

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

Я хочу обратить внимание на то, что если отсутствуют данные исторические получаемые функцией Copy****() и функция эта т.е. Copy****() находится т.е. вызывается из индикатора, то сразу возвращается ошибка т.е. -1, а если функция Copy****() вызывается из эксперта, то ошибка не возвращается, а начнётся загрузка с удалённого сервера. К чему такая избирательность ? Зачем ущемили правка индикаторов ? ))

вопрос №3:

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

Что имеется ввиду под фразой но при этом сам процесс загрузки/построения будет инициирован ? Под инициированием процесса я понимаю начинание, запуск.. Здесь какое-то иное толкование этого процесса?
 

Кстати, вот кратко я озвучил ситуацию: