Несоответствие кода и хелпа?!..

 
Некоторое время назад я уже доставал посетителей этого форума с просьбой разобраться с методом расчёта сглаженной скользящей средней. В итоге, залез в код... Эксгумированная из него формула расчёта несколько отличалась, от той, которая была указана в хелпе.

В хелпе:

SUM1 = SUM (CLOSE (i), N)
SMMA1 = SUM1 / N
Второе и последующие скользящие средние рассчитываются по следующей формуле:
SMMA (i) = (SUM1 - SMMA (i - 1) + CLOSE (i)) / N

(Где:
SUM — сумма;
SUM1 — сумма цен закрытия N периодов, отсчитываемая от предыдущего бара;
SMMA (i - 1) — сглаженное скользящее среднее предыдущего бара;
SMMA (i) — сглаженное скользящее среднее текущего бара (кроме первого);
CLOSE (i) — текущая цена закрытия;
N — период сглаживания.)


В коде:
SUM1 = SUM (CLOSE (i), N)
SMMA1 = SUM1 / N
Второе и последующие скользящие средние рассчитываются по следующей формуле:
SMMA (i) = (SMMA (i - 1)*(N-1) + CLOSE (i)) / N

Формулы в первом и во втором случаях дают совершенно разные результаты! Интересно, есть ли ещё инструменты с похожей ситуацией?

Я бы хотел услышать комментарий разработчиков и простых пользователей по этому поводу.
 
В хелпе некоторая неточность. В формуле:
SMMA (i) = (SUM1 - SMMA (i - 1) + CLOSE (i)) / N
SUM1 - должно быть описано как предыдущая сумма.
На второй итерации это действительно SUM (CLOSE (i), N)
На последующих итерациях - это числитель в предыдущем расчёте.
Спасибо, что обратили наше внимание. Хелп поправим.
 
Хм, интересно... В и-нете в других источниках та же неточность, с одого сайта, что ли, передирали?...
 
Этот текст писали мы. В своё время, когда мы делали набор индикаторов Билла Вильямса, я очень много времени провёл в поиске формул. В итоге нашёл всего один источник (адреса уже не помню). Вот цитата:
===
Smoothed Moving Average
A Smoothed Moving is similar to a simple moving average. However, in a smoothed moving average, rather than subtracting the oldest value, as in a simple moving average, the previous smoothed average value is subtracted.
For the following example the PERIOD = 3.
The first value for a Smoothed Moving Average is determined by the formula SMOOTH. It is plotted on the chart at the third bar from the left side of the screen.
SMOOTH =(PRICE 1 + PRICE 2 + PRICE 3) / PERIOD
The next value would be plotted at the fourth bar from the left side of the screen.
SMOOTH2 = (PREVIOUS SUM - PREVIOUS AVG + PRICE 4) / PERIOD
For the second calculation of SMOOTH, PREVIOUS SUM is the sum of PRICE 1 + PRICE
2 + PRICE 3; and PREVIOUS AVG is the initial value of SMOOTH.
The next value would be plotted at the fifth bar from the left side of the screen.
SMOOTH = (PREVIOUS SUM - PREVIOUS AVG + PRICE 5) / PERIOD
Subsequent values would be determined by subtracting the PREVIOUS AVG from the PREVIOUS SUM, adding the next more recent PRICE, then dividing by the PERIOD.
Example: If the values 1,2,3,4 and 5 were reported for the first 5 bars the 3-period smoothed moving averages for those bars would be calculated as follows:
(1+2 +3)/3 = 2 This is the first value and would be plotted on the 3rd bar from the left.
(6 - 2 + 4)/3 = 2.67 This second value would be plotted on the 4th bar from the left.
(8-2.67+5)/3 = 3.44 This third value would be plotted on the 5th bar from the left.
Etc.
===
Формула подошла идеально - мы сверяли результаты с InvestorDream
Причина обращения: