8.Примеры Пользовательских Индикаторов Метасток (Формулы) (Sample Custom Indicators Metastock)

В этом разделе руководства Метасток (Metastock) приводятся примеры нескольких популярных индикаторов Metastock и их формул написанных при помощи синтаксиса пользовательских индикаторов Metastock. Заметим, что это только примеры; все из приведенных ниже индикаторов входят в стандартный набор Метастока (т.е. их не нужно создавать, чтобы строить графики). Однако, это показательные примеры синтаксиса пользовательских индикаторов. Информацию по интерпретации индикаторов см. в разделе "Interpretation" Metastock.


 

8.1 Аккумуляция/Дистрибуция в Метасток (Accumulation/Distribution Metastock)

В эта формуле («Accumulation/Distribution») используется функция cum() (см. «Cumulate»), которая накапливает изменчивые показатели дневных значений.

cum( (((C-L) - (H-C)) / (H-L)) * V)

8.2 Полосы Боллинжера в Метасток (Bollinger Bands Metastock)

Здесь используется функция stdev() (см. «Standard Deviation»), чтобы рассчитать верхнюю и нижнюю границы полос.

Верхняя полоса рассчитывается, как:

mov( C, 20, S ) + ( 2 * stdev( C, 20 ))

Нижняя полоса рассчитывается, как:

mov( C, 20, S ) - ( 2 * stdev( C, 20 ))

8.3 Осциллятор A/D Чайкина в Метасток (Chaikin A/D Oscillator Metastock)

mov( ad(), 3, E) - mov( ad(), 10, E)

Этот индикатор может ссылаться на встроенный индикатор «Accumulation/Distribution indicator»  используя функцию ad(), как показано выше,  или же можно использовать формулу «Accumulation/Distribution formula» как показано ниже.

mov(cum((((C-L)-(H-C))/(H-L)) * V),3,E)-mov(cum((((C-L)-(H-C))/(H-L)) * V),10,E)

8.4 Средняя цена в Метасток (Median Price Metastock)

(high + low) / 2

8.5 Момент в Метасток (Momentum Metastock)

Формула момента использует функцию ref() (см. Reference), чтобы сослаться на цену закрытия 12 периодов назад.

(close / ref( close, -12 )) * 100

8.6 Скользящая средняя MACD в Метасток (Moving Average MACD Metastock)

Большинство аналитиков (включая аналитиков EQUIS International's) утверждают, что MACD-индикатор представляет собой «разницу между 12- и 26 дневными экспоненциальными скользящими средними». Однако, реально это разница между 0.15 и 0.075 экспоненциальными скользящими средними. (более точно  0.153846 и 0.076923).

См. «Moving Average Calculation Methods»  для более подробной информации по методам калькуляции MACD.

Учитывая эти небольшие отличия в экспоненциальных значениях, заметим, что следующая формула будет слегка отличаться от встроенного MACD-индикатора. Помните, что истинный MACD-индикатор Вы сможете нарисовать, только используя встроенную функцию macd()  (см. MACD).

mov( close, 12, E) - mov( close, 26, E)

MACD-триггер (9-дневная экспоненциальная скользящая средняя MACD) может быть рассчитан, как показано ниже:

mov( macd(), 9, E)

8.7 Индекс негативного объема в Метасток (Negative Volume Index Metastock)

Встроенному индексу негативного объема соответствует функция nvi(). Однако, для пользовательского индикатора можно использовать следующую формулу:

cum( if( V < ref(V,-1), roc(C,1,%), 0 ))

8.8 Баланс Объема в Метасток (On Balance Volume Metastock)

Следующая формула рассчитывает индикатор баланс объема («On Balance Volume»):

cum( if( C > ref(C,-1),+V, if( C < ref(C,-1),-V, 0) ))

Далее объясняется каждый компонент приведенной выше формулы:

cum(               Расчет куммуляты, следующих величин

if(                    если,

C                     цена закрытия сегодня

>                     больше, чем

ref(C,-1),         цена закрытия предыдущего дня

+V,                  тогда прибавь сегодняшний объем

if(                    в противном случае, если

C                     цена закрытия сегодня

<                     меньше, чем

ref(C,-1),         цена закрытия предыдущего дня

-V,                  вычесть объем

))         в противном случае,  ничего не делать.

8.9 Индекс положительного Объема в Метасток (Positive Volume Index Metastock)

Встроенному индексу положительного объема соответствует функция pvi(). Однако, для пользовательского индикатора можно использовать следующую формулу:

cum( if( V > ref(V,-1), roc(C,1,%), 0 ))

8.10 Ценовой осциллятор в Метасток (Price Oscillator Metastock)

Следующая формула рассчитывает 10/20 - дневный Прайс-осциллятор выраженный  в абсолютных значениях:

mov( close, 10, E) - mov( close, 20, E)

Приведенная ниже формула рассчитывает 10/20 - дневный Прайс-осциллятор выраженный  в процентах:

(( mov(C, 10, E) - mov(C, 20, E) )/mov(C, 20, E)) * 100

8.11 Коэффициент изменения цены в Метасток (Price Rate-Of-Change Metastock)

Следующая формула рассчитывает 12-дневную степень изменения цены (“Price Rate-Of-Change”):

(( C - ref(C,-12)) / ref(C,-12)) * 100

Можно также использовать функцию roc():

roc( close, 12, % )

Чтобы выразить показатели индикатора в абсолютных значениях можно использовать следующую формулу:

close - ref(close, -12)

8.12 Объемно-ценовой тренд в Метасток (Price Volume Trend Metastock)

Следующая формула использует функцию cum() для расчета объемно-ценового тренда

cum( ((C - ref(C,-1)) / ref(C,-1)) * V)

Эту формулу также можно написать при помощи функции roc(), как показано ниже:

cum( roc(close, 1, %) * volume )

8.13 Стандартное отклонение в Метасток (Standard Deviation Metastock)

4-дневное стандартное отклонение может быть рассчитано при помощи двух формул. Первая формула это просто 4-дневная простая скользящая средняя. Формулу, показанную ниже, будем именовать “4-period ma”

mov( close, 4, S )

Вторая формула суммирует квадрат разницы между скользящей средней и ценой закрытия каждого из четырех предшествующих дней, а затем извлекает квадратный корень из этой суммы.:

sqrt(( power(fml("4-period ma") - C, 2) +

power(fml("4-period ma") - ref(C,-1), 2) +

power(fml("4-period ma") - ref(C,-2), 2) +

power(fml("4-period ma") - ref(C,-3), 2) ) / 4 )

Более легкий способ- это извлечь квадратный корень из вариации  цены закрытия за 4-дневный период (функция var( close, 4 )):

sqrt( var( close, 4 ) )

Конечно, на самом деле Вы можете использовать встроенную функцию стандартного отклонения  stdev() (см. Standard Deviation).

8.14 Стохастический осциллятор в Метасток (Stochastic Oscillator Metastock)

Следующая формула рассчитывает 5-дневный %K Стохастический Осциллятор с 3-дневным замедлением:

(sum( C - llv(L,5), 3 ) / sum(hhv(H,5) - llv(L,5), 3) ) * 100

Приведенная ниже формула калькулирует 3-дневный %D от %K в предыдущей формуле.

mov( stoch(5,3), 3, E )

8.15 Волатильность, Чайкин в Метасток (Volatility, Chaikin Metastock)

Формула волатильности показанная ниже использует 10-дневную скользящую среднюю и 12-дневный rate-of-change:

roc( mov( high-low, 10, E), 12, %)

8.16 Объемный Осциллятор в Метасток (Volume Oscillator Metastock)

Следующая формула рассчитывает 10/20 - дневный Volume-осциллятор выраженный  в абсолютных значениях:

mov( volume, 10, E) - mov( volume, 20, E)

Приведенная ниже формула рассчитывает 10/20 - дневный Volume -осциллятор выра

женный  в процентах:

(( mov(V, 10, E) - mov(V, 20, E) )/mov(V, 20, E)) * 100

8.17 Коэффициент изменения объема в Метасток (Volume Rate-Of-Change Metastock)

(( V - ref(V,-12)) / ref(V,-12)) * 100

Также может быть использована функция roc(), показанная ниже:

roc( volume, 12, % )

8.18 Взвешенная цена закрытия в Метасток (Weighted Close Metastock)

Для расчета взвешенной цены закрытия цену закрытия умножают на 2, добавляют значения максимальной и минимальной цен, и полученное значение делят на 4.

((close * 2) + high + low ) / 4

8.19 Аккумуляция/Дистрибуция Вилльямса в Метасток (Williams' Accumulation/Distribution Metastock)

Чтобы упростить объяснение этой формулы, мы разобьем ее на 3 формулы. Первая формула возвращает “истинное значение” максимальной цены ("True Range High")

max( ref(close, -1), high )

Аналогичным образом, вторая формула возвращает “истинное значение” минимальной цены ("True Range Low").

min( ref(close, -1), low )

Третья формула (предполагается, что приведенные выше формулы были поименованны как "True Range High" и "True Range Low"), рассчитывает значения индикатора.

cum(if(C  > ref(C,-1),C - fml("True Range Low"), if(C < ref(C,-1),C - fml("True Range High"),0)))

%R Вилльямса (Williams' %R)

Эта формула рассчитывает 14-дневный %R Вильямса. Заметим, что формула была инвертированна умножением ее на 100

((hhv(H,14) - C)/(hhv(H,14) - llv(L,14))) * -100

Информацию по интерпретации индикаторов см. в разделе "Interpretation" Metastock

Matastock Formula Primer - Формулы Метасток

Фондовый навигатор

Добавить комментарий


Защитный код
Обновить

Комментарии