Индикаторы: CMA

 

CMA:

Индикатор CMA

CMA

Автор: Scriptor

 

Здраствуйте! Почему индикатор на открытый график ложится идеально, но при тестировании ломанными линиями отображается?


На графике с периодом 14 идеально смотрится, на деле при тестировании с периодом 100 даже ломанными линиями рисуется? В чем подвох?

 
Temirarious #:

Здраствуйте! Почему индикатор на открытый график ложится идеально, но при тестировании ломанными линиями отображается?


На графике с периодом 14 идеально смотрится, на деле при тестировании с периодом 100 даже ломанными линиями рисуется? В чем подвох?

Ну, судя по коду, не совсем понятно, что он отображает вообще и отображает ли, вот в чём вопрос!? Но в будущее он копает для перерисовывания прошлого не слабо.

 
Nikolay Kositsin #:

Ну, судя по коду, не совсем понятно, что он отображает вообще и отображает ли, вот в чём вопрос!? Но в будущее он копает для перерисовывания прошлого не слабо.

Где он там копает? Вчера ради интереса глядел код. Не увидел заглядывания в будущее. Впрочем, глядел по диагонали, но интересно знать - ради простого интереса.

 

Ну, такое зрение, значит! Вот в этом коде:

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      if(i>period2)
         BufferCMA[i]=GetSMA(rates_total,i-period2,period_ma,BufferPrice);
      else
         BufferCMA[i]=(GetSMA(rates_total,0,i+period2,BufferPrice)*(period2+i+1)+GetSMA(rates_total,0,1,BufferPrice)*(period2-i-1+odd))/period_ma;
     }

Вот здесь:

BufferCMA[i]=GetSMA(rates_total,i-period2

Означает, что мы залезаем в будущее на 

i-period2

Делаем на этом баре усреднение и кладём в буферный массив на текущем баре в прошлое.

 
Nikolay Kositsin #:

Ну, такое зрение, значит! Вот в этом коде:

Вот здесь:

Означает, что мы залезаем в будущее на 

Делаем на этом баре усреднение и кладём в буферный массив на текущем баре в прошлое.

Плохой индикатор) 
Причина обращения: