Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
У тебя Linux? Узнай, как установить на нее MetaTrader!
Serhii Lendych
207
Serhii Lendych 2013.11.14 08:33 

При расчете CCI с периодом 2, и равных текущей и предыдущей цены TYPICAL возникают неправильные значения: 66.66666667 или -66.66666667

А должен быть 0.

См. индикатор.

Файлы:
testcci.mq4 1 kb
Dmitry Fedoseev
41184
Dmitry Fedoseev 2013.11.14 10:05  
Да ну!
Serhii Lendych
207
Serhii Lendych 2013.11.14 10:51  
Integer:
Да ну!


Таки да. https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B0

Формула CCI:

CCI


В числителе для периода 2 будет так:

CCI = P0 - (P0 + P1)/2;

Если P0 = P1, тогда

CCI = P0 - (2*P0) /2 =>

CCI = P0 - P0 =>

CCI = 0

Dmitry Fedoseev
41184
Dmitry Fedoseev 2013.11.14 10:53  
Значит тоже у вас ошибка в эксперименте.
Serhii Lendych
207
Serhii Lendych 2013.11.14 10:55  
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color2 Red 

int init()
{
   int i, limit = Bars;
    
   double currPrice, prevPrice, cci;    
   
   for(i = 0; i < limit; i++)
   {
      //тест1 - сравниваю CCI по Typical ценам, как наиболее часто используемым
      //при равенстве текущей и прошлой цен индикатор должен вернуть 0.
      
      currPrice = (High[i] + Low[i] + Close[i]) / 3;
      prevPrice = (High[i+1] + Low[i+1] + Close[i+1]) / 3;
      
      //currPrice = iMA(NULL,0,1,0,MODE_SMA,PRICE_TYPICAL,i);
      //prevPrice = iMA(NULL,0,1,0,MODE_SMA,PRICE_TYPICAL,i+1);
      
      
      if (currPrice == prevPrice)
      {
         cci = iCCI(Symbol(), 0, 2, PRICE_TYPICAL, i);
         if (cci!=0)
            Print(DoubleToStr(cci, 12), " TYPICAL does not equal to 0 (prices: ", DoubleToStr(currPrice, 12), ", ", DoubleToStr(prevPrice, 12), " ).");
         else   
            Print("TYPICAL correct" );
      }   
   }         
}
Где именно ошибка?
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий