ArrayCopySeries

 

Вопрос к разработчикам, или кто знает.
Какой максимальный размер массива-таймсерии я могу скопировать посредством ArrayCopySeries()?
Если конкретно - хотел скопировать минутки, получился массив, размером в 250028 значений, хотя на минутном графике больше баров.

 
Вроде ограничений нет. Проверьте еще раз, пожалуйста.
И укажите, сколько ожидали (точное значение), сколько получилось и сколько точно баров доступно для графика в базе данных HistoryCenter.
 

Да, рановато я в панику ударился :)
В любом случае спасибо за подсказку...

 

Столкнулся с проблемой использования функции . Хотя разработчики и говорят об отсутствии ограничений по колличеству возвращаемых значений однако при использовании кода:

double tmp[ ];
int itmp;
itmp= ArrayCopySeries(tmp,MODE_HIGH,Symbol(),PERIOD_H1);
Print("READ FILE ", itmp); // itmp=1001?

возвращает только 1001 скопированных элементов, при этом архив котировок показывает 59866 записей. В чем может быть дело? Если не трудно подскажите.

 
в каком месте копируешь, то и получаешь, в смысле: в init(0, start(), Тестер Стратегий....
 
Korey писал (а) >>
в каком месте копируешь, то и получаешь, в смысле: в init(0, start(), Тестер Стратегий....

т.е. в Тестере нельзя иметь больше данных?

 

to NAO

у меня в Тестере вообще чудеса - Bars доступная индикатору то растет от 1000 до 3000 то снова 1000 ))))
разбираться не стал, лучше обойти чем мучаться

P.S. При старте тестера Bars может быть меньше 300

 
Korey писал (а) >>

to NAO

у меня в Тестере вообще чудеса - Bars доступная индикатору то растет от 1000 до 3000 то снова 1000 ))))
разбираться не стал, лучше обойти чем мучаться

P.S. При старте тестера Bars может быть меньше 300

Утешает что я не одинок, а то перетряс все настройки - без результатов. Если не трудно, то как обошел?

 

to NAO

-Если история в тестере нужна в пределах 1000 баров - то в советнике ставим програмно дату начала работы, т.е . даем тестеру полосу разгона (для подкачки истории)
-Если истории нужно больше чем 1000 баров то я просто отказываюсь от проверки таких идей)))
Мне кажется что в старых сборках МТ такой обрезки левых баров не было, а появилось когда MQ победили утечку памяти строк в тестере.


Механика появления обрезки такова:

каждому экземпляру индикатора выделяется собственная память, все торговые серии копируются, == получается,
что копия тайм-серий для индикатора значительно короче той что изoбражается на экране.

Более того, эта копия тайм-серий незакреплена в точке Старт, левый край копии ползет за индюком)))

- по штатному завершениею тестирования индикатор отображается без обрезки, !!! индикатор пересчитывается на всю длину истории для обозрения, чтоб люди видели))))

т.е. Тестер по концу своей работы передает экран Терминалу, а терминал восстанавливает ранее обрезанные границы.

//
- при ручном завершении тестирования кнопкой Стоп индикaтор не пересчитыается на всю историю.

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

 
кстати, я не смотрел какое значение имеет Bars в советнике, м.б. для советнiка тайм серии не обрезаются, и тогда есть выход вставить индикатор в советник.
ну, в общем чего нет в описании - принтами вытаскивать
 

to Korey

Спасибо, за развернутый ответ. Действительно данные ограничения существуют. Решение с разбегом по времени - понятно, но не решает проблему. Придётся поработать с файлами .hst.

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