МТ4 извещает стратегию о том что старый бар удаляется при приходе нового если история ограничена по размеру (количество баров в истроии)?

 
Вот из-за того что есть ограничение на количесво баров в истории, то в какой то момент, когда количество баров, пришедших от брокера достигнет предела, то старые удалятся а новые запишутся в буфер истроии. Но так как я в стратегии хочу знать сколько пришло новых баров (из-за разрыва связи например несколкьо баров может стратегия пропустить, но ей могут потребоваться эти бары).
Индикатор я тоже хочу написать с этим алгоритмом что мне нужно знать количесво новых баров. Чтобы просчитать значение для текущего нужено по крайней мере количество баров назад равное периоду.
Я сейчас сохраняю значения времени начала бара и потом уже сравниваю время вновь пришедшего чтобы узнать сколько пришло новых баров. Это сущесвенно замедлит аглиритм особенно для оптимизации. А если буду сохранять индексы баров и знать только количесво баров на данный момент то это существенно упростит алгоритм. Я думаю, что может быть есть какой-то способ, которым мт4 извещает стратегию перед тем как изменить индексы свечей когда удалится самый старый в буфеер истроии при приходе нового.
 
Я с трудом продрался через текст, и боюсь не до конца понял всей глубины мысли. Кратко: сделайте два варианта определения нового бара, один для онлайна и один для тестирования и переключайте их по IsTesting()
 
Когда терминал копит данные в рилтайме, то он не подрезает свою историю чтобы не нарушить логику индикаторов и экспертов. То есть, параметр "Максимальное количество баров на графике" учитывается только при открытии графика. При накоплении данных история накапливается без ограничений.
 
Renat:
Когда терминал копит данные в рилтайме, то он не подрезает свою историю чтобы не нарушить логику индикаторов и экспертов. То есть, параметр "Максимальное количество баров на графике" учитывается только при открытии графика. При накоплении данных история накапливается без ограничений.
Да вобщем-то половина текста что я написал в его суть и не надо вникать. :) Просто в двух словах что я думал что из-за ограничения макс кол баров в истории может настать момент что приходять новые тики и формируются новые бары а место ограничено в настроках мт4 и терминал может удалять самый старый бар в истории, освободив место для нового.
В настройках два параметра. "Максимальное количесво баров в истории" и "максимальное количество баров на графике".
Кстати, когда я меняю вот первый параметр, то соотвественно и пересчёт из архива исторических данных (History Data Center) идёт с ограничением параметра на максимальное количесво баров в истории (видно в диалоге архив котировак). А на графике ограниченно вторым параметром и грузятся данные только ограниченные по этому параметру в момент старта терминала.
Но как сказал Ренат что когда приходят новые данные, то новые бары сформированные лежат в памяти оперативной и не ограничивается их количество а когда закрываем терминал то они сохраняются в файлы истроии hst и вероятно в этот момент история может обрезаться параметром "Максимальное количество баров в истории".
 
Шьорт побери, короткие рубленные фразы для понимания смысла самое то. Но если Вы большой начальник и разговариваете с подчиненными , которые от Вас зависят - нет проблем. :)
 
А я Рената не совсем понял. То есть получается что при работающем терминале если он не закрывался то все мои сохранённые индексы в пеерменных в стратегии будут указывать на правильные бары от начала истроии и не получится так что они сдвинуться? Получается что при перезагрузке если например я сохранил эти индексы баров, необходимые стратегии, в глобальных переменных терминала или в файле то при новом старте терминала из-за того что могу поменять "макс число баров в окне" могут уже эти индексы указывать не на те бары которые были в предыдущем сеансе работы.
Вот что я опасаюсь. Но думаю что лучше я от греха подальше буду согранять время начала бара. Для оптимизации буду использовтаь просто индексы баров - собсвенна как и сказал Rosh
 
elritmo:
Получается что при перезагрузке если например я сохранил эти индексы баров, необходимые стратегии, в глобальных переменных терминала или в файле то при новом старте терминала из-за того что могу поменять "макс число баров в окне" могут уже эти индексы указывать не на те бары которые были в предыдущем сеансе работы.

Никто не дает никаких гарантий, что сохраненные индексы совпадут. Даже наоборот - индексы после рестарта практически гарантированно будут неверными.
 
Спаибо за разъяснение. А зачем нужно ограничивать количесво баров в hst параметром "макс кол-во баров в истории"? Я понимаю смысл ограничения макс количесво баров в окне - мы ограничиваем количество загружаемых в память исторических баров что актуально для компов с ограниченной оперативкой и чтобы не тормозил терминал. А смысл первого ограничения я не вижу пока. Разъясните
этот момент. Вообще путсь бы было ограничение или его вообще можно было бы убрать развыделив галочку. Хотя можно указать максимальное значение MAX_INT которое достаточно большое конечно же.
Причина обращения: