Да ну!
Integer:
Да ну!
Да ну!
Формула CCI:
В числителе для периода 2 будет так:
CCI = P0 - (P0 + P1)/2;
Если P0 = P1, тогда
CCI = P0 - (2*P0) /2 =>
CCI = P0 - P0 =>
CCI = 0
Значит тоже у вас ошибка в эксперименте.
Где именно ошибка?#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" ); } } }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При расчете CCI с периодом 2, и равных текущей и предыдущей цены TYPICAL возникают неправильные значения: 66.66666667 или -66.66666667
А должен быть 0.
См. индикатор.