Что значит "задирать конец"?
Вот так это происходит.
До тика:
После:
Вот так это происходит.
Вот так это происходит.
Есть ли универсальные способы борьбы с этим злом? :)
Хочу еще раз указать, что при limit=Bars все расчитывается правильно!
int start() { int i,limit,counted_bars=IndicatorCounted(); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; for(i=0;i<limit;i++) { } return(0); }
Эта конструкция меня еще не подводила.
limit=Bars-IndicatorCounted(); for(i=limit-1; i>=0; i--) { ... }Попробуйте так. Ваш способ еще два лишних бара просчитывает, а кто его знает, как там ваш индикатор устроен. Если это не поможет, тогда то, что Rosh написал.
limit=Bars-IndicatorCounted(); for(i=limit-1; i>=0; i--) { ... }Попробуйте так. Ваш способ еще два лишних бара просчитывает, а кто его знает, как там ваш индикатор устроен. Если это не поможет, тогда то, что Rosh написал.
Спасибо за помощь всем, кто предложил варианты! К сожалению, предложенные способы решения проблемы не помогли.
Очевидно, выходом из сложившейся ситуации могло бы стать ограничение количества считаемых баров. Это несколько ускоряет процесс расчета индикатора, не влияя на результат. Если поставить, к примеру, вместо Bars значение 1000;
Но все же это недостаточно быстро.
Наверно что-то с сохранением предыдущих значений в переменных.
Спасибо за помощь всем, кто предложил варианты! К сожалению, предложенные способы решения проблемы не помогли.
Очевидно, выходом из сложившейся ситуации могло бы стать ограничение количества считаемых баров. Это несколько ускоряет процесс расчета индикатора, не влияя на результат. Если поставить, к примеру, вместо Bars значение 1000;
Но все же это недостаточно быстро.
Однозначно - индикатор написан далеко не оптимальным образом. Почитайте пример оптимизации - Оптимизированный вариант адаптивной скользящей средней Кауфмана AMA от wellx
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ни у кого не возникало проблемы, когда при вставке в индикатор функции IndicatorCounted() правильно работающий для всех баров (Bars) инидкатор начинает задирать конец при приходе нового тика? Конструкция примерно такая:
Если limit=Bars, все работает нормально, но медленно, невозможно оптимизировать.