Потому что где limit нужно отнять размер периода Signal
Евгений, спасибо! Все действительно теперь работает как надо!
for( int i = limit - Signal; i >= 0 && !IsStopped(); i--){
double sum = 0.0;
for( k = 0; k < Signal; k++){ sum += Buffer[i + k]; }
SignalBuffer[i] = sum/Signal;
for( int i = limit - Signal; i >= 0 && !IsStopped(); i--){
И это, предположительно, не очень правильно. Посмотрите, используя функцию Comment(), чему равно limit - Signal. Очень вероятно, что на каждом тике выполняется много лишних расчетов.
Вот так работает!!!! Одному сложновато искать ошибки, а на форуме в обсуждении сразу все получается))
Правда теперь нет реакции на поступление новых тиков ((((((((((
Почему [i -k] ?
Это что вообще ?В таком варианте средняя линия не отображается на графике и индикатор перестает реагировать на поступление новых тиков(((
Потому что где limit нужно отнять размер периода Signal
" Надо правильно вычислить начала обсчета." - это я понимаю)))
Поздравляю!
попробуйте так
Реакции на тики не появилось(( Пересчитывается только при добавление на график, хотя раньше реагировал на изменение таймфрейма.
Потому что где limit нужно отнять размер периода Signal
Евгений, спасибо! Все действительно теперь работает как надо!
Извиняюсь за то что туплю местами)))
Я только учусь писать алгоритмы!
Евгений, спасибо! Все действительно теперь работает как надо!
Извиняюсь за то что туплю местами)))
Я только учусь писать алгоритмы!
А за что отвечает это, вы знаете, или просто скопипастили откуда-то?
А за что отвечает это, вы знаете, или просто скопипастили откуда-то?
Скопипастил из предыдущей моей темы, где Вы на писали "Шедеврально"
И это, предположительно, не очень правильно. Посмотрите, используя функцию Comment(), чему равно limit - Signal. Очень вероятно, что на каждом тике выполняется много лишних расчетов.