Здравствуйте!
Вопрос, наверное, к Sergey Gorokhov, так как он вроде писал индикаторы.
По ряду причин решил проверить значения индикатора CCI в Quik.
Написал свой простейший для проверки, отобразил в одном окне, значения не совпали.
Свой вариант программировал по классическим формулам, смотри, например, на википедии CCI, вот здесь:
Обратите внимание на формулу Среднего абсолютного отклонения (MAD), она рассчитывается через значения своего MA на каждой точке расчёта.
Посмотрел формулу Среднего абсолютного отклонения в индикаторе CCI из Quik: MD = MD + math.abs(b_ma - Value(i, VT, ds)), здесь вроде используется значение MA не на каждой точке, а просто берётся MA последней точки. Думаю, это неправильно.
Привожу код своего индикатора CCI:
Settings = {
Name = "*CCI_My_v1",
period_CCI = 13,
line =
 {
 {Name = "CCI_My", Type = TYPE_LINE, Color = #00fafa, Width = 1}
 }
}
   
function Init()
 return 1
end
function OnCalculate(index)
 local periodCCI = Settings.period_CCI
 
 if index < periodCCI*2 then return nil
 else
  
  local myCCI = 0
  local meanDeviation = 0
  
  for i = index-periodCCI+1, index do
  
   --Вычисление SMA для каждого i
   local smaMD = 0
   for j = i-periodCCI+1, i do
        smaMD = smaMD + C(j)
   end--for j
   smaMD = smaMD / periodCCI
  
   --Суммирование отклонения для i
      meanDeviation = meanDeviation + math.abs(smaMD - C(i))
  end--for i
  
--Вычисление среднего отклонения для index
  meanDeviation = meanDeviation / periodCCI
  
   --Вычисление SMA для index
   local sma = 0
   for i = index-periodCCI+1, index do
       sma = sma + C(i)
   end--for i
   sma = sma / periodCCI
   
  --Вычисление CCI
    myCCI = (C(index) - sma)/(0.015*meanDeviation)
  return myCCI
  
 end--else
end
