Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
VWMA (Volume-Weighted Moving Average) – взвешенная по объему скользящая средняяВзвешенная по объему скользящая средняя – это скользящая средняя, для которой в качестве весовой функции используется объем. Формула для расчета Код Альфа-Директ function Initialize() { IndicatorName = "VWMA"; PriceStudy = true; AddInput("Input", Inputs.Candle); AddSeries("VWMA", DrawAs.Line, Color.Red); AddParameter("Period", 20, 1); } function Evaluate() { // AlfaDirect. 2015. OX // VWMA (VWMA – Volume-WEIGHTED MOVING AVERAGE) - ВЗВЕШЕННАЯ по объему СКОЛЬЗЯЩАЯ СРЕДНЯЯ var cWMA = 0.0; var cZn = 0.0; for ( var i=0; i { cWMA = cWMA + Input.Close[-i]*Input.Volume[-i]; cZn = cZn + Input.Volume[-i]; } VWMA = cWMA/cZn; } СКОЛЬЗЯЩИЕ СРЕДНИЕ C МИНИМАЛЬНЫМ ЗАПАЗДЫВАНИЕМHMA (HULL MOVING AVERAGE) –СКОЛЬЗЯЩАЯ СРЕДНЯЯ ХАЛЛАСкользящая средняя Халла – индикатор, в котором осуществлена попытка минимизировать запаздывание приусреднении цен. Для этого считается разница между WMA с разными периодами, которые отличаются в 2 раза Полученное значение добавляется к младшей WMA. Итоговое значение получается сглаживанием MMAвзвешенной средней с периодом Типовые параметры: Автор рассматривает значение P = 16, половина которого равна 8, а корень – 4. Сигналы: Так как средняя Халла имеет малое запаздывание и часто втягивается в саму цену, то наиболее рациональным сигналом является изменение ее направления. Автор: Алан Халл(Alan Hull). Первоисточник: http://www.alanhull.com/ Код Альфа-Директ 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, (int)(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]; } EHMA (EXPONENTIAL HULL MOVING AVERAGE) – ЭКСПОНЕНЦИАЛЬНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ ХАЛЛАЭкспоненциальная скользящая средняя Халла – индикатор, в котором осуществлена попытка минимизировать запаздывание приусреднении цен. Для этого считается разница между WMA с разными периодами, которые отличаются в 2 раза Полученное значение добавляется к младшей EMA. Итоговое значение получаем сглаживая EMMAвзвешенной средней с периодом Для EMA можно показать, что если цена двигается монотонно С(t) = at , то С =EMA1 + (EMA1-EMA2) Типовые параметры: Автор рассматривает значение P = 16, половина которого равна 8, а корень – 4. Сигналы: Так как данная средняя имеет малое запаздывание и часто втягивается в саму цену, то наиболее рациональным сигналом является изменение ее направления. Код Альфа-Директ function Initialize() { IndicatorName = "EHMA"; AddInput("Input", Inputs.Price); AddSeries("EHMA", DrawAs.Custom, Color.LightGreen); PriceStudy = true; AddParameter("P", 16, 2); AddGlobalVariable("EMA1", Types.Double, 0.0); AddGlobalVariable("EMA2", Types.Double, 0.0); } function Evaluate() { // AlfaDirect. 2015. OX // EHMA (Exponential Hull Moving Average) - эксп. скользящая средняя Халла. if (CurrentIndex > 0) { var SC1 = 2.0 / (0.5*P + 1.0); var SC2 = 2.0 / (P + 1.0); var SC3 = 2.0 / (Math.Sqrt(P) + 1.0); EMA1 = (1.0 - SC1)*EMA1 + SC1*Input[0]; EMA2 = (1.0 - SC2)*EMA2 + SC2*Input[0]; EHMA = (1.0 - SC3)*EHMA[-1] + SC3*(2.0*EMA1 - EMA2); if ( EHMA > EHMA[-1] ) EHMA.DrawLine(Color.Cyan, Line.Solid, 1); else EHMA.DrawLine(Color.Yellow, Line.Solid, 1); } else { EMA1 = Input[0]; EMA2 = Input[0]; EHMA = Input[0]; } } |