Нужна помощь в оптимизации циклов - страница 2

 
Peter Vorobyev:

почему 0 - это самый старый ? 
0 - это самый новый бар - нулевая свеча. Ведь ArraySetAsSeries(ExtHistoBuffer, true); указывает что хранение элементов как в тайм серии. Или я чего-то не понимаю?

что -то не увидел у вас в основном коде ArraySetAsSeries. Где вы его вызываете? Каждый раз в ОнКалькулейт точно?

Остальные массивы не забываете также метить ? иначе по одному индексу попадаете в разные бары. Если всё это учли, тогда что-то глубже, дебажить пробовали?

 
Aleksey Mavrin:

что -то не увидел у вас в основном коде ArraySetAsSeries. Где вы его вызываете? Каждый раз в ОнКалькулейт точно?

Остальные массивы не забываете также метить ? иначе по одному индексу попадаете в разные бары. Если всё это учли, тогда что-то глубже, дебажить пробовали?

только в OnInit. Нужно в OnCalculate и до обращения к массиву?


 
Peter Vorobyev:

только в OnInit. Нужно в OnCalculate и до обращения к массиву?


ДА, разметка АсСериес не гарантируется на следующих вызовах ОнКалькулейт, надо вызывать каждый раз. И для остальных массивов учитывать. Но без особой необходимости проще же работать со значением RatesTotal-1, это же и есть последний (нулевой) бар всегда. У вас в коде я особой необходимости не заметил, всё просто)

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