Руслан (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Расчет EMA, Формула расчета в Quik?
 
И хотя я уже написал письмо в поддержку, решил попробовать то, что мне пришло в голову за ночь, а именно, протянуть обратную формулу до самого начала, и эврика -) все таки сошлось:
Скрытый текст

Итого, начальные значения берутся от начала расчета и выражаются на начало периода.
Расчет EMA, Формула расчета в Quik?
 
ок, Спасибо.
Расчет EMA, Формула расчета в Quik?
 
И снова здравствуйте.

Нашел на форуме все что есть по EMA, в особенности тему Индикаторы, много думал -)
Складывается впечатление, как будто у поддержки нет связи с разработчиками, хотя среди первых есть специалисты способные воспроизвести работу индикаторов,
и вместе с тем, как именно происходит расчет в самой программе - неизвестно, а при воспроизведении не сходятся значения.
В представленных индикаторах нашел код по ADX:
Код
--[[Exponential Moving Average (EMA)
EMAi = (EMAi-1*(n-1)+2*Pi) / (n+1)]]
function F_EMA() 
   local tmp = {pp=nil, p=nil}
   local it = {p=0, l=0}
return function(I, P, VT, ds)
   if I == 1 then
      tmp = {pp=nil, p=nil}
      it = {p=0, l=0}
   end
   if CandleExist(I,ds) then
      if I~=it.p then 
         it = {p=I, l=it.l+1} 
         tmp.pp = tmp.p
      end
      if it.l == 1 then
         tmp.p = GetValueEX(it.p,VT,ds)
      else
         tmp.p = (tmp.pp*(P-1) + 2*GetValueEX(it.p,VT,ds)) / (P+1)
      end
      if it.l >= P then
         return tmp.p
      end
   end
return nil
end
end
Из которого следует "if it.l == 1 then tmp.p = GetValueEX(it.p,VT,ds)", что начальное значение берется равным вычисляемому, однако в самой программе все не так однозначно,
да и при вычислении по индикаторам это было бы не вполне уместно, поскольку попадаются нулевые значения.

Возвращаясь к таблице из предыдущего сообщения, очевидно, что все формулы работают и вычисления происходят верно,
так, если подставить начальные значения из выгруженных программой, то все становится на свои места:

Скрытый текст

то есть предыдущие и дальнейшие вычисления происходят верно.
Путем обратных вычисления и постигая дзен -) я сделал обратный расчет из выгруженных данных:

Скрытый текст

Добавил столбцы DX и ADX, а за начальное значение ADX взял выгруженное значение.
Так откуда же берутся эти начальные значения? 11,71 для +DI, 30.63 для -DI и 28,31 для ADX?

Скрытый текст

Судя по различиям начальных значений в колонках +SDI=0.00 и -SDI=37.50 и их результатам по +DI = 11.71 и -DI = 30.63, я пришел к выводу, что они так же считаются по формуле, то есть EMA(DI1)=(DI0*(14-1)+2*SDI14)/(14+1),
поскольку они не являются ни средними значениями, ни средними отклонениями, ни стандартными.
а вот каким берется DI0 - путем неимоверных обратных вычислений вычислений -) я нашел следующие значения: +DI0 = 13.51 и -DI0 = 29.57
Подставляя эти нулевые значения в ту же формулу, получаются начальные значения соответственно, но откуда берутся они сами, остается загадкой.
Можно было бы предположить, что они вычисляются от какой нибудь далекой начальной свечи, однако в Quik'е просто нет других данных и ему неоткуда их взять кроме как вычислить из представленных столбцов по +SDI и -SDI.
+DI0 = 13.51 похоже на какую то манипуляцию с периодом по той же формуле, а -DI0 уже с участием второго аргумента.
Может быть кто нибудь однажды раскроет эту загадку, раз уж не удается связаться с разработчиками и выяснить определенно.
Расчет EMA, Формула расчета в Quik?
 
Цитата
Egor Zaytsev написал:
Цитата
Александр Комаров написал:
Цитата
Сергей   написал:
Большое спасибо всем поучаствовавшим.
Решение видно. Совпадение расчетной ЕМА с ЕМА из Quik точное.
И какое решение? Я в точности все делаю по мануалу, вручную считаю ЕМА, но все же результат разнится.
Здравствуйте, ответили Вам почтой.


Здравствуйте.

Хотелось бы тоже приобщиться к таинству и узнать каким образом в Quik'е вычисляется начальное значение EMA, поскольку оно явно не равно среднему значению за условный период,
а в расчетах по индикаторам оно так же не может равняться начальному условному значению, т.е. EMA0=P0, ведь в руководстве сказано, что подобное лишь при расчете по цене.

Как правило, начальное значение не играет особой роли и в приближении, спустя некоторое количество периодов, значения выравниваются и разница стремится к нулю.
Однако в краткосрочное перспективе, в течение дня, значения могут не успеть сойтись, что существенно усложняет просчет предполагаемых значений относительно индикаторов.

Далее приведена таблица с примером расчета:
Скрытый текст
Страницы: 1
Наверх