Примеры Пользовательских Индикаторов Метасток (Формулы) (Sample Custom Indicators Metastok)
8.Примеры Пользовательских Индикаторов Метасток (Формулы) (Sample Custom Indicators Metastock)
В этом разделе руководства Метасток (Metastock) приводятся примеры нескольких популярных индикаторов Metastock и их формул написанных при помощи синтаксиса пользовательских индикаторов Metastock. Заметим, что это только примеры; все из приведенных ниже индикаторов входят в стандартный набор Метастока (т.е. их не нужно создавать, чтобы строить графики). Однако, это показательные примеры синтаксиса пользовательских индикаторов. Информацию по интерпретации индикаторов см. в разделе "Interpretation" Metastock.
- Аккумуляция/Дистрибуция в Метасток (Accumulation/Distribution Metastock)
- Полосы Боллинжера в Метасток (Bollinger Bands Metastock)
- Осциллятор A/D Чайкина в Метасток (Chaikin A/D Oscillator Metastock)
- Средняя цена в Метасток (Median Price Metastock)
- Момент в Метасток (Momentum Metastock)
- Скользящая средняя MACD в Метасток (Moving Average MACD Metastock)
- Индекс негативного объема в Метасток (Negative Volume Index Metastock)
- Баланс Объема в Метасток (On Balance Volume Metastock)
- Индекс положительного Объема в Метасток (Positive Volume Index Metastock)
- Ценовой осциллятор в Метасток (Price Oscillator Metastock)
- Коэффициент изменения цены в Метасток (Price Rate-Of-Change Metastock)
- Объемно-ценовой тренд в Метасток (Price Volume Trend Metastock)
- Стандартное отклонение в Метасток (Standard Deviation Metastock)
- Стохастический осциллятор в Метасток (Stochastic Oscillator Metastock)
- Волатильность, Чайкин в Метасток (Volatility, Chaikin Metastock)
- Объемный Осциллятор в Метасток (Volume Oscillator Metastock)
- Коэффициент изменения объема в Метасток (Volume Rate-Of-Change Metastock)
- Взвешенная цена закрытия в Метасток (Weighted Close Metastock)
- Аккумуляция/Дистрибуция Вилльямса в Метасток (Williams' Accumulation/Distribution 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
Metastock - Разработка собсвенных индикаторов - Содержание
- Metastock - Метасток Разработка собственных индикаторов
- Диалог "Построитель Индикаторов” Метасток (Indicator Builder Dialog Metastock)
- Диалог “Редактор Индикаторов” Метасток (Indicator Editor Dialog Metastock)
- Копирование и Удаление и Печать Пользовательских индикаторов в Метасток
- Вставка функций в формулы Метасток (Pasting Functions Into Formulas Metastock)
- Примеры Пользовательских Индикаторов Метасток (Формулы) (Sample Custom Indicators Metastok)

Metastock - Примеры пользовательских индикаторов