Расчет волатильности

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Расчет волатильности

Сообщение Haos » 18 окт 2018, 16:36

В соответствие с темой Волатильность на основе относительного изменения, напишем код для расчета волатильности согласно приведенному в указанной теме алгоритму:
Для удобства дальнейшего применения, организуем реализацию поставленной задачи в виде кода функции f_GetVola(), которая будет иметь два параметра:
na - имя актива;
pe - кол-во периодов (элементов массива).
Оба эти параметра нужно задавать во внешних параметрах скрипта (советника и т.п.).

Код: выделить все
double f_GetVola(string na, int pe)

   // na - имя актива
   // pe - кол-во периодов (элементов массива)
   double dblVol[], dblHig, dblLow, dblSMA;
   ArrayResize(dblVol, pe);
   for(int i = 0; i < pe; i++)
   { 
      dblHig = iHigh(na, 0, i);
      dblLow = iLow(na, 0, i);
      if(dblHig > 0 && dblLow > 0) { dblVol[i] = (dblHig / dblLow - 1) * 100; }
   }
   dblSMA = f_GetAve(dblVol);

return(dblSMA);
}

Для работы данной функции требуются две функции, написанные ранее:

Код: выделить все
double f_GetSum(double &Y[])
{
// Функция возвращает сумму элементов массива
   int size = ArraySize(Y);
   double Sum = 0.0;
   for(int i = 0; i < size; i++) { Sum += Y[i]; }
   
return(Sum);
}

double f_GetAve(double &Y[])
{
// Функция возвращает среднее арифметическое элементов массива
// Используется функция f_GetSum()
   int size = ArraySize(Y);
   double Sum = f_GetSum(Y);
   return(Sum / size);
}


Позже я выложу скрипт для расчета волатильности в соответствующем разделе форума.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Расчет волатильности

Сообщение Haos » 23 окт 2018, 11:10

Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения