Jump to content
Sign in to follow this  
AloneVolf

Помогите разобраться с smoothed moving average

Recommended Posts

AloneVolf

Очень нужно разобраться с алгоритмом расчета smoothed moving average. По нескольким причинам обращение к функции iMA не подходит.

Как я понял информацию с https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma

Первый элемент рассчитывается как сумма цен закрытия деленная на период.

Следующие рассчитываются по формуле SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.

Возмем период равный 5 и цены закрытия EUR/USD H1 за период с 24.02.2017 19:00 до 24.02.2017 23.00 (GMT+2) т.е. последние 5 свечей

Цены закрытия - 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.

Соотвественно 1 элемент - 1,056452; 2 элемент - 1,056852 3 элемент - 1,05676 4 элемент - 1,056632 5 элемент - 1,056489

А на графике SMMA 5, close  равно 1.05706 т.е. отличие уже в 3-м знаке

 

Что я считаю не правильно?

И как считать правильно, чтобы получить 1,05706 ?

Share this post


Link to post
Share on other sites
AntFX

 

 

Что я считаю не правильно?

В формулах типа Fi = F(F(i-1)) результат зависит от всех предыдущих баров, а не только от последних 5-и... 

  • Downvote 1

1

Share this post


Link to post
Share on other sites
AloneVolf

В формулах типа Fi = F(F(i-1)) результат зависит от всех предыдущих баров, а не только от последних 5-и... 

К сожалению я не понял Ваш ответ. Не могли бы Вы более подробно объяснить. Или покажите на примере кода функции, что надо исправить. Пожалуйста. У меня уже мозги закипели.

double SMMA(int period)

{

 

// наполняем массив ценами закрытия

  int k=period;

  for(int i=1; i<=period; i++)

  {

   H1_Close=Close[k];

//   Print("H1_Close [",i,"] ",H1_Close," Close [",k,"] ",Close[k]);

   k--;

  }

// расчитываем первый элемент как среднее цен закрытия

  double Summ=0;

  for (int i=1; i<=period;i++)

   Summ=Summ+H1_Close;

  double TmpSMMA=Summ/period;

// расчитываем i-й элемент как SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N

  for(int i=2;i<=period;i++)

   TmpSMMA=(TmpSMMA*(period-1)+H1_Close)/period;

}

Edited by AloneVolf

Share this post


Link to post
Share on other sites
AntFX

 

 

К сожалению я не понял Ваш ответ.

А чего тут не понять? От всего прошлого графика зависит результат данного бара, а не только от последних 5 баров. Поэтому у Вас результат и расходится. 

  • Downvote 1

1

Share this post


Link to post
Share on other sites
AloneVolf

А чего тут не понять? От всего прошлого графика зависит результат данного бара, а не только от последних 5 баров. Поэтому у Вас результат и расходится. 

Тогда как рассчитать SMMA c периодом к примеру 5. Сколько баров надо использовать для расчтета

Share this post


Link to post
Share on other sites
AntFX
Тогда как рассчитать SMMA c периодом к примеру 5. Сколько баров надо использовать для расчтета

Нужно строить индикатор от начала графика. Потому что его значение не является функцией только последних Х баров при периоде Х. Может достаточно какого-то определенного числа баров - что-нибудь типа периода в квадрате или в кубе - поэкспериментируйте визуально на графике, исходники индикатора думаю найти не сложно.

А может оказаться проще вместо SMMA использовать простую SMA с бОльшим периодом :)

Edited by AntFX

1

Share this post


Link to post
Share on other sites
Intuitiv

меняйте параметры окна усреднения


Сторонник "Жах" методов!

Share this post


Link to post
Share on other sites
AloneVolf

Нужно строить индикатор от начала графика. Потому что его значение не является функцией только последних Х баров при периоде Х. Может достаточно какого-то определенного числа баров - что-нибудь типа периода в квадрате или в кубе - поэкспериментируйте визуально на графике, исходники индикатора думаю найти не сложно.

А может оказаться проще вместо SMMA использовать простую SMA с бОльшим периодом :)

Пытался сдвигаться по истории назад но подобрать не смог. Использовать другой тип МА тоже не получается т.к. есть нормальные результаты для ручной торговли нa H4 и вручную на базе анализа H1-H2-H3 но получать графики нестандартных ТФ сложно т.к. скрипт периодически PeriodConverter периодически глючит. Создать массив цен для нестандартного ТФ на базе младшего не проблема, а вот расчитать значения опорных линий не получается. А менять тип или период это фактически создавать все заново, а ломать курицу которая несет пусть не золотые но яйца ОЧЕНЬ не хочется. Мне нужно на базе математики фактически повторить iMA вот только ее исходники я найти не смог.

Share this post


Link to post
Share on other sites
AntFX

 

 

Мне нужно на базе математики фактически повторить iMA вот только ее исходники я найти не смог.
 

Это как же нужно искать, чтобы не найти исходники МА?


1

Share this post


Link to post
Share on other sites
AloneVolf

 

 

Это как же нужно искать, чтобы не найти исходники МА?

 

я конечно прошу прощения, но речь шла об исходниках iMA . Вы наверно не в курсе, что в МТ4 есть такая программа Metaeditor называется. Так вот в ней можно писать индикаторы у них один подход к расчетам ценового ряда а можно писать так называемые советники. При их написании можно обращаться к ряду встроенных программ - программисты их называют функциям. И эти функции по методу расчета сильно отличаются от метода применяемого индикаторами. Вся моя проблема как раз и заключается в том, что я не могу преобразовать код индикатора в функцию. И я очень сожалел именно о том, что исходник функции iMA встроенной в язык MQL4 мне недоступен. Ведь именно недоступность исходника iMA (не путайте пожалуйста с индикатором МА там название на одну букву короче) и заставляет меня пытаться повторить методику расчета. Если бы в МТ4 была возможность использования нестандартных ТФ то и вопроса бы тоже не было. Но увы во первых скрипт PeriodConverter срабатывает не всегда, а во вторых на OFFLINE графиках не генерируется событие onTick.

 

Если Вы окажете мне помощь в вопросе как работает расчет SMMA, исходный код iMA, корректная работа нестандартного ТФ в МТ4. Все 3 вопроса по сути один вопрос. Я могу в ручную хорошо вычислять точки входа используя совместный анализ ряда H1-H2-H3-H4 и хочу автоматизировать этот процесс уменьшив объем геморроя то  я буду Вам очень благодарен. А если Вы никогода не сталкивались с вопросом как считается SMMA и не хотите разобраться, чтобы узнать что-то новое то я не буду отнимать Ваше время.

С наилучшими пожеланиями.

Share this post


Link to post
Share on other sites
AloneVolf

 

 

меняйте параметры окна усреднения

 

Пытаюсь но пока без успеха. Пытался сдвигать расчет по времени назад но пока успехов нет. Нет идей как именно менять параметры ?

Share this post


Link to post
Share on other sites
Warren

Очень нужно разобраться с алгоритмом расчета smoothed moving average. По нескольким причинам обращение к функции iMA не подходит.

Как я понял информацию с https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma#smma

Первый элемент рассчитывается как сумма цен закрытия деленная на период.

Следующие рассчитываются по формуле SMMA (i) = (SMMA (i - 1) * (N - 1) + CLOSE (i)) / N.

Возмем период равный 5 и цены закрытия EUR/USD H1 за период с 24.02.2017 19:00 до 24.02.2017 23.00 (GMT+2) т.е. последние 5 свечей

Цены закрытия - 1,05681; 1,05702; 1,05639; 1,05612; 1,05592.

Соотвественно 1 элемент - 1,056452; 2 элемент - 1,056852 3 элемент - 1,05676 4 элемент - 1,056632 5 элемент - 1,056489

А на графике SMMA 5, close  равно 1.05706 т.е. отличие уже в 3-м знаке

 

Что я считаю не правильно?

И как считать правильно, чтобы получить 1,05706 ?

Наверное, Вам надо для начала посчитать не пять, а 100 тысяч N, а потом уже прибавлять по каждой новой свече.

Share this post


Link to post
Share on other sites
AntFX
И эти функции по методу расчета сильно отличаются от метода применяемого индикаторами

Они полностью идентичны.

Edited by AntFX

1

Share this post


Link to post
Share on other sites
Intuitiv

Пытаюсь но пока без успеха. Пытался сдвигать расчет по времени назад но пока успехов нет. Нет идей как именно менять параметры ?

 

Хотелось бы понять, зачем вам все это?


Сторонник "Жах" методов!

Share this post


Link to post
Share on other sites
WEALTHCRAFT

del

Edited by WEALTHCRAFT

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×