Библиотека польльских индикаторовзовате. БИБЛИОТЕКА ПОЛЬЗОВАТЕЛЬСКИХ ИНДИКАТОРОВ АЛЬФА-ДИРЕКТ4.0. Инструкция по созданию и импорту пользовательских индикаторов 4 библиотека пользовательских индикаторов 5
Скачать 1.9 Mb.
|
WMA (WEIGHTED MOVING AVERAGE) – ВЗВЕШЕННАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯВзвешенные скользящие средние (WMA – WeightedMovingAverage) «усредняют» цену с учетом веса, значение которого определяется на основании линейной зависимости от удаленности цены от расчетного момента времени. Формула расчета для всех взвешенных средних следующая где WMAt – значение индикатора в расчетной точке t, Ct-i – значения цены в момент времени t-i, Wk – значения веса для соответствующей цены в момент времени t-i. Знаменатель данной формулы исполняет роль нормировки усредненного значения. Одной из задач, решаемых при использовании взвешенных средних, является увеличение чувствительности индикатора WMA к изменению последнего значения цены (при сохранении свойства сглаживания). Для этого в индикаторе придается большие веса последним значениям цены. Второй задачей WMA является избавление от свойства «собака лает дважды», которое проявляется в резком изменении значения индикатора при выходе из окна расчета существенно отличающейся цены от среднего значения. Для этого обычно используется постепенное уменьшение веса к началу окна. WMA – это фильтр с конечно импульсный характеристикой (КИХ), где импульсная характеристика имеет вид Wk = 1… P, Индикатор WMA – является встроенным индикатором, поэтому создавать пользовательский индикатор не имеет смысла. Код Альфа-Директ function Initialize() { IndicatorName = "WMA"; PriceStudy = true; AddInput("Input", Inputs.Price); AddSeries("WMA", DrawAs.Line, Color.Red); AddParameter("Period", 20, 1); } function Evaluate() { // AlfaDirect. 2014. OX // ВЗВЕШЕННАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯ (WMA – MOVING AVERAGE WEIGHTED) if ( CurrentIndex >= Period ) { var cWMA = 0.0; var cZn = 0.0; for (var i=0; i { cWMA = cWMA + Input[-i]*(Period-i); cZn = cZn + (i+1); } WMA = cWMA/cZn; } else WMA = Input[0]; } TMA (Triangular Moving Average) – ТРЕУГОЛЬНАЯ СКОЛЬЗЯЩАЯ СРЕДНЯЯТреугольная скользящая средняя – это скользящая средняя с весовой функцией треугольного вида. Формула расчета следующая где – треугольная весовая функция, N – период. При V-образных формациях движения цены индикатор TMA будет иметь наименьшую потерю амплитуды среди классических индикаторов (т.е. экстремумы цены и индикатора будут наиболее близки по вертикали). В коде для простоты реализован индикатор, в котором в качестве параметра задается полупериод и рассчитывается четный вид весовой функции. Код Альфа-Директ function Initialize() { IndicatorName = "TMA"; PriceStudy = true; AddInput("Input", Inputs.Price); AddSeries("TMA", DrawAs.Line, Color.Red); AddParameter("Period", 10); } function Evaluate() { // AlfaDirect. 2014. OX // TMA (Triangular MA) – МА с треугольным фильтром // Задается полупериод индикатора - всегда четный вариант расчета // Пример весовой функции: Период = 3, W = [1 2 3 3 2 1] if (CurrentIndex < 2*Period) TMA = Input[0]; else { var sum = 0.0; var sumZ = 0.0; for ( var i = 1; i <= Period; i++ ) { sum = sum + (Input[-2*Period + i] + Input[-i+1]) * i; sumZ = sumZ + i + i; } TMA = sum / sumZ; } } |