О запаздывании скользящих средних - страница 3

 
Yuriy Asaulenko:

Не применяю ни SMA, ни EMA. Не знаю кто из них больше.

Запаздывание можно выяснить сравнивая на единичном скачке (ступеньке) -1(t) или дельта-функции. Параметр для фильтров называется - групповая задержка. В Екселе делается оч просто.

Есть еще одна неприятная особенность - для различных частот сигнала эти задержки существенно разные. Иными словами, на разных по частоте синусоидах вы получите разные задержки.

"Запаздывание" взвешенных MA выясняется по вектору весов, без Ёкселя

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

чтобы найти "запаздывание" берётся вектор весов(а он нормирован до 1.0)  и ищется такая позиция что сумма справа=сумма слева=0.5; это и есть пресловутое "запаздывание"

 
Maxim Kuznetsov:

"Запаздывание" взвешенных MA выясняется по вектору весов, без Ёкселя

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

чтобы найти "запаздывание" берётся вектор весов(а он нормирован до 1.0)  и ищется такая позиция что сумма справа=сумма слева=0.5; это и есть пресловутое "запаздывание"

Ну и какова групповая задержка у ЕМА с Т=15? 
 

Может быть, будет интересна статья "Не запаздывающая MA":

https://www.mql5.com/ru/articles/812

И, связанный с этой статьёй, индикатор "Не запаздывающая MA" из CodeBase:

https://www.mql5.com/ru/code/19053

Создание цифровых фильтров, не запаздывающих по времени
Создание цифровых фильтров, не запаздывающих по времени
  • 2014.01.10
  • Konstantin Gruzdev
  • www.mql5.com
В статье рассматривается один из подходов к определению полезного сигнала (тенденции) потоковых данных. Небольшие практические тесты фильтрации (сглаживания) биржевых котировок демонстрируют потенциальную возможность создания цифровых фильтров (индикаторов), которые не запаздывают по времени и не перерисовываются на последних барах. Обычный...
 

В этой теме видел сравнение различных МА с одинаковым периодом.

Период имеет  физический смысл только для SMA. Для остальных типов МА этот период в общем ничего конкретного не означает и носит чисто ориентировочный характер. Отсюда, сравнение разных МА с одинаковым периодом не имеет никакого смысла.

А сравнивать надо так.

Берем разные МА, и, подбирая значения периода, максимально возможно накладываем их друг на друга. Вот теперь они действительно одинаковы и их можно сравнивать.

Выбираем ту из них, которая максимально плавно и хорошо, без изломов, делает сглаживание. А, в общем, критерии по вкусу.)

 

не понимаю, что вы хотите рассчитать ? 

Чем больше период МА, тем больше запаздывает. что еще хотите знать ? 

 
Dmitiry Ananiev:

не понимаю, что вы хотите рассчитать ? 

Чем больше период МА, тем больше запаздывает. что еще хотите знать ? 


я так понимаю вопроса "зачем" не стоит?

 
Vladimir:

1. Аргумент в пользу чего?

2. Правильно-неправильно - не суть, считать должно так, как описано в документации. Запрос параметра должен быть таким, как задокументировали, а не условной заменой по неизвестным правилам.

https://studfiles.net/preview/5301730/page:6/ раздел 5.3 ,  можно вычислять ema как по умолчанию в mql так и другим более сложным/точным способом.
5.1. Сущность метода экспоненциального сглаживания
5.1. Сущность метода экспоненциального сглаживания
  • studfiles.net
9 5. Метод экспоненциального сглаживания. Выбор постоянной сглаживания При использовании метода наименьших квадратов для определения прогнозной тенденции (тренда) заранее предполагают, что все ретроспективные данные (наблюдения) обладают одинаковой информативностью. Очевидно, логичнее было бы учесть процесс дисконтирования исходной информации...
 

В ветке "От теории к практике" https://www.mql5.com/ru/forum/221552/page129#comment_6329657 сослались на эту, а здесь, оказывается, через год вдруг оживление.

Petr Doroshenko, спасибо за ссылку.

Mickey Moose:                   я так понимаю вопроса "зачем" не стоит?   -   Хочу знать, на сколько шагов в среднем EMA отстает от цены.

Dmitiry Ananiev:   не понимаю, что вы хотите рассчитать ? Чем больше период МА, тем больше запаздывает. что еще хотите знать ?  - Не чем - тем, а насколько.

Yuriy Asaulenko :               

В этой теме видел сравнение различных МА с одинаковым периодом.

Период имеет  физический смысл только для SMA. Для остальных типов МА этот период в общем ничего конкретного не означает и носит чисто ориентировочный характер. Отсюда, сравнение разных МА с одинаковым периодом не имеет никакого смысла.

А сравнивать надо так.

Берем разные МА, и, подбирая значения периода, максимально возможно накладываем их друг на друга. Вот теперь они действительно одинаковы и их можно сравнивать.

Выбираем ту из них, которая максимально плавно и хорошо, без изломов, делает сглаживание. А, в общем, критерии по вкусу.)

Конец цитаты.

- Хочу иметь ясное представление для сопоставления разных [типов] средних друг с другом. Не по субъективным признакам "плавно и хорошо" или "что, разве на глаз не видно", а по единому однозначному количественному критерию.

В качестве критерия сведения разных весовых наборов (масшабов, диапазонов) к одному хочу использовать запаздывание значения средней от значения курса. Также, как это запаздывание понимается всюду, например, в

средней Хала http://brokers-fx.ru/articles/skolzyashhaya-srednyaya-xala-hull-moving-average: "Хал начинает с расчета 10-периодного простого скользящего, которое дает для всей серии среднюю величину четыре с половиной. Очевидно, что это значение существенно отстает от самой последней цены."

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

Maxim Kuznetsov                                         2017.12.14 16:08:35               

"Запаздывание" взвешенных MA выясняется по вектору весов, без Ёкселя

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

чтобы найти "запаздывание" берётся вектор весов(а он нормирован до 1.0)  и ищется такая позиция что сумма справа=сумма слева=0.5; это и есть пресловутое "запаздывание"

Конец цитаты

Попробуйте взять вектор весов Wi = 0.1 * exp (-0.1 * i), это к картинке https://www.mql5.com/ru/forum/165546/page2#comment_3974141, и подсчитать запаздывание по своей методике. Получится 7. А реально 10, это разница между медианой (10 * ln(2) = 6.93) и средним (10) для экспоненциального вероятностного распределения (ВИКИ "Экспоненциальное распределение"). Когда считают первый момент распределения (среднее), это и будет положение центра масс весов. Никак не медиана.

 

Мне нравиться вот такой образ EMA. На мой взгляд очень наглядно и просто. Видим характер построения и соответственно запаздывание.

Рычаг Архимеда, проигрываем в расстоянии выигрываем в весе.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Разностное исчисление, примеры.

Aleksey Panfilov, 2018.01.15 08:07


Чтобы начать ряд сравнений, вернемся к хорошо известному.

 
      a1_Buffer[i] =iMA(NULL,0,145,0,MODE_EMA,PRICE_OPEN,i);// a1_Buffer[i]=  ((open[i] - Znach)    +5061600*a1_Buffer[i+1 ]-7489800   *a1_Buffer[i+2 ]+4926624*a1_Buffer[i+3 ]-1215450*a1_Buffer[i+4 ])/1282975;

      a5_Buffer[i+92]=a1_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){        a5_Buffer[i+0+z]=  2*a5_Buffer[i+1+z]  -  1*a5_Buffer[i+2+z]  ;  }}



      a2_Buffer[i]= ( (open[i] - Znach)  + 72   *a2_Buffer[i+1 ] )/73;
      
      a6_Buffer[i+92]=a2_Buffer[i];   if(i<=1) { for(z=92-1;z>=0;z--){         a6_Buffer[i+0+z]=  2*a6_Buffer[i+1+z] -  1*a6_Buffer[i+2+z]  ;  }}

Первая линия a1_Buffer построена как классический EMA  периодом 145 (72*2+1), с опорой на точки открытия и смещена на 72 шага влево. Широкая серая линия на рисунке.

Вторая линия a5_Buffer показывает экстраполяцию при помощи прямой по двум последним точкам первой линии.  Серая линия потоньше на рисунке.

Третья линия a2_Buffer построена непосредственно по разностному  уравнению первой степени. Синяя линия  на рисунке.

1*Y_(-1)-2*Y_0+1*Y_(+1)=0 Разностное уравнение первой степени для равноотстоящих точек.

2*Y_(-1)-3*Y_0+1*Y_(+2)=0 Разностное уравнение первой степени для плеча в 2 интервала.

72*Y_(-1)-73*Y_0+1*Y_(+72)=0 Разностное уравнение первой степени для плеча в 72 интервала.

По сути это уравнение Рычага Архимеда первой степени.

Четвертая линия a6_Buffer показывает экстраполяцию при помощи прямой по двум последним точкам третьей линии.  Красная линия  на рисунке которая опирается на точку открытия.

Мы видим полную идентичность двух построений. Привел пример, чтобы не показывать преобразование кода и вида классической формулы ЕМА к разностному виду.



 
Aleksey Panfilov:

Мне нравиться вот такой образ EMA. На мой взгляд очень наглядно и просто. Видим характер построения и соответственно запаздывание.

Рычаг Архимеда, проигрываем в расстоянии выигрываем в весе.


Ваши посты не проходят мимо, Алексей. Ищу-ищу его в своей ветке, а он вот уже где... Единственный пост с физикой из вчерашних дебатов исчез... Рыдаю навзрыд...

Причина обращения: