Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1230

Добавлено: evge » 06 фев 2016, 16:19

Тема: HMA (Hull Moving Average) – скользящая средняя Халла

Текст сообщения:

Скользящая средняя Халла – индикатор, в котором осуществлена попытка минимизировать запаздывание при усреднении цен. Для этого считается разница между WMA с разными периодами, которые отличаются в 2 раза

Полученное значение добавляется к младшей WMA.

Итоговое значение получается сглаживанием MMA взвешенной средней с периодом √P

Типовые параметры:

Автор рассматривает значение P = 16, половина которого равна 8, а корень – 4.

Сигналы:

Так как средняя Халла имеет малое запаздывание и часто втягивается в саму цену, то наиболее рациональным сигналом является изменение ее направления.

Пример:

HMA-00.png
HMA-00.png (27.29 КБ) 89389 просмотров


Исходный текст:

Код: Выделить всё

function Initialize()
{
IndicatorName = "HMA";                     
AddInput("Input", Inputs.Price);     
AddSeries("HMA", DrawAs.Custom, Color.Green);   
AddSeries("MMA", DrawAs.Line, Color.Green, false);   

PriceStudy = true;                           
AddParameter("P", 16, 2);   
}

function Evaluate()
{
// AlfaDirect. 2015. OX
// HMA (Hull Moving Average) - скользящая средняя Халла.
// http://alanhull.com/hull-moving-average

if ( CurrentIndex > P)
{
  double WMA1 = WMA(Input, 0.5*P)[0];
  double WMA2 = WMA(Input, P)[0];
  MMA = 2.0*WMA1 - WMA2;
  double P3 = Math.Truncate(Math.Sqrt(P));
  var sum = 0.0;
  var sumZ = 0.0;
  for (var i = 0; i < P3; i++)
  {
     sum = sum + MMA[-i]*(P3-i);
     sumZ = sumZ + (i+1);
  }
  HMA = sum/sumZ;
  if ( HMA > HMA[-1] )
     HMA.DrawLine(Color.LightBlue, Line.Solid, 1);
  else
     HMA.DrawLine(Color.Orange, Line.Solid, 1);
}
else
  HMA = Input[0];
}