Аллигатор

 
Аллигатор
Уважаемые разработчики, не подскажите ли по какой формуле Вы сглаживаете скользящее среднее? Имеется в виду smoothed?
 
у нас только английский вариант описания алгоритма
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.
 
Спасибо!
 
Ха ха ха.
А не проще ли было сказать, что вы фактически сглаживаете SМА тем что к этой SМА применяете еще одну SMA c периодом 3?

А как насчет того метода средневзвешенных цен про которые я уже писал в этом форуме? Слабо было так сделать? Ведь это "родной" алгоритм аллигатора.
 
Для справки об аллигаторе и др...
В Метастоке индикаторы, написанные Биллом Вильямсом (или его коллегами) имеют следующий вид:
Profitunity - PTG Alligator Green: Ref(Mov(((H+L)/2),9,E),-3)
Profitunity - PTG Alligator Red: Ref(Mov(((H+L)/2),15,E),-5)
Profitunity - PTG Alligator Blue: Ref(Mov(((H+L)/2),25,E),-8)
Здесь E - это Exponential Moving Average Method.

Ну и для полной картины далее:
Profitunity - PTG AC Green: (If((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S))-Mov((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S)),5,S)>(Ref(Mov(((H+L)/2),5,S),-1)-Ref(Mov(((H+L)/2),34,S),-1))-Mov((Ref(Mov(((H+L)/2),5,S),-1)-Ref(Mov(((H+L)/2),34,S),-1)),5,S),(Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S))-Mov((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S)),5,S),0))
Profitunity - PTG AC Red: If((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S))-Mov((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S)),5,S)<(Ref(Mov(((H+L)/2),5,S),-1)-Ref(Mov(((H+L)/2),34,S),-1))-Mov((Ref(Mov(((H+L)/2),5,S),-1)-Ref(Mov(((H+L)/2),34,S),-1)),5,S),(Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S))-Mov((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S)),5,S),0)
Profitunity - PTG AO Green: If((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S))>(Ref(Mov(((H+L)/2),5,S),-1)-Ref(Mov(((H+L)/2),34,S),-1)),(Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S)),0)
Profitunity - PTG AO Red: If((Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S))<(Ref(Mov(((H+L)/2),5,S),-1)-Ref(Mov(((H+L)/2),34,S),-1)),(Mov(((H+L)/2),5,S)-Mov(((H+L)/2),34,S)),0)

А поле для ввода текста так и не сделали поболее, а обещали после выставки... И что-то типа MtGetVersion в новой версии mtapi я не увидел...
 
а что такое средневзвешенная цена?
это всего лишь (O+H+L+C)/4. И взвешенный MA - это ни что иное как SMA, применённый к средневзвешенной цене. Во всех индикаторах, где рассчитывается скользящее среднее, SMA и EMA применяются к цене Close. Иное дело аллигаторские индикаторы. Там скользящее среднее применяется к MedianPrice, что есть (H+L)/2. Но тут я спешу успокоить читателей форума - мы сделаем в индикаторах ещё один параметр, где можно будет применять для расчёта не только цену Close, но и Open, High, Low, (H+L)/2, (H+L+O+C)/4 на выбор. Это уже стоит в очереди на реализацию.
 
в параметрах аллигатора Вы можете выбрать экспоненциальный метод и любой период и смещение для сигнальных линий
это пока не реализовано в экспертной функции iAlligator (надо ли это реализовывать?).
Теперь про экспоненциальную скользящую среднюю. Зайдите на http://yamdex.narod.ru/books/Williams/New/Indexnew.htm
там есть интересное примечание от FuzzAlex, которое я Вам процитирую
===
Если построить линии баланса в популярной программе MetaStock , то они будут соответствовать:
Синяя – 25 перидное ЕМА по Median point, сдвинутое как указано;
Красная – 15 перидное ЕМА по Median point, сдвинутое как указано;
Зеленая – 9 перидное ЕМА по Median point, сдвинутое как указано

Более того, в программе MetaStock 7.0 pro есть видео ролики, в которых Билл Вильямс собственной персоной повествует о том, что вы сейчас читаете, применительно к вашей текущей позиции!
===
Просто я подозреваю (но не уверен), что в МетаСтоке не реализована формула сглаженной скользящей средней.
Мы сравнивали наши значения со значениями, полученными в InvestorsDream, - точность до 6 знака после запятой (просто там больше знаков и не выводится)
 
КРУТО!
действительно было бы хорошо так. Это не мелочный каприз как вы наверное подумали, а суровая реальность аллигатора. В Метастоке можно сразу увидеть разницу между этими методами. А там где вопрос идет о точном факте и времени пересечения MA с ценой - это фажно, особенно для торговли по экспертам.

А вот бы еще индикатор добавить. Если уж вы сделаете такой, у кооторого параметры задаются, то может быть сделаете его "клон" , назвав его в примеру FormulaMA, где параметр для вычисления - это строка MQLII кода? ))
 
про разные формулы
когда мы программировали аллигатора, мы рассматривали разные формулы. и экспоненциальные скользящие средние, и средневзвешенные - практически все, которые нашли в разных обсуждениях на разных форумах (в том числе и нашем). и сравнивали результаты с данными InvestorsDream. так вот во всех случаях была разница в 3 или 4 порядке. единственная формула дала нам совпадение результатов до 6 знака после запятой. именно та, что мы процитировали в начале этого треда - формула сглаженной скользящей средней.
про Ваше предложение. можно поподробнее?
 
ОК. Подробнее попробуйте так
ОК. Подробнее так:

((close*2)+high+low)/4

Но коли уж вы реально добили 6-й знак... Был разговор о том что именно в этом "фишка" аллигатора -- своеобразное смещение акцента на цену закрытия бара. Сам доверяю этому потому-что Вильямс помешан на цене закрытия. Вспомните его условия в книгах. Когда закрытие в нижней или верхней трети, или когда закрытие выше или ниже предыдущего high / low - такие бары он вообще особо выделяет в Профитунити...
Попробуйте.
 
дополнение маленькое
Лирическое отсупление/дополнение.

Когда есть акцент на цену закрытия это во первых дате быстрее реакцию на бычий/медвежий бар.
А во-вторых увеличивает реакцию трех линий баланса, особенно на значительных барах, у которых цена закрытия или ниже/выше предыдущего high/low. Фракталы, которые так же любит Вильямс тоже будут более знаковыми. Фрактал вверх "вытянет" три линни баланса вверх и наоборот, потому-что на нечетном колчестве баров количество цен закрытия при фрактале вверх будет как минимум 3 из 5, если фрактал считать на 5-ти барах, или если считать на трех барах, то бычих цен закртия будет 2 из 3-х - линни баланса все равно вытянутся вверх. Обычная средняя цена не даст этого эффекта. Самая близкая из всех неродных версий, та которая в Метастоке считает "среднюю цену" бара как (H+L) / 2 игнорируя акцент закрытия.

P.S. Как вариант возможно стоит попробовать просто (H+L+C)/3
Причина обращения: