Логотип Парус Инвестора
Парусник
Цена деления цифровой шкалы
Системы и стратегии

МетаСток (MetaStock 7.0) - руководство пользователя (User Manual)

Разработка собственных индикаторов

Что такое "Построитель индикаторов"? (What is the Indicator Builder?)

При наличии стольких встроенных индикаторов которые предлагает МетаСток, Вы можете быть удивлены почему необходимо создавать свои собственные индикаторы. Увы, технический анализ постоянно развивается. Новый хорошо работающий сегодня индикатор может быть вскоре оттеснен другим индикатором. По этим причинам, МетаСток снабжен мощным инструментом называемым Indicator Builder, который позволяет Вам создавать индикаторы.

Прочитав о новом индикаторе в специальном журнале или новой книге Вы имеете шанс воспроизвести этот индикатор при помощи Indicator Builder.

Indicator Builder - мощный инструмент, однако это не является основной особенностью программы. Чтобы эффективно его использовать необходимо разбираться в основных математических концепциях и логических выражениях.

Индикаторы разработанные при помощи Indicator Builder используются точно также как и встроенные индикаторы. Они могут быть "перетащены" с панели Indicator QuickList или же вызваны из диалога Indicators. Если Вы хорошо владеете написанием формул в программах для электронных таблиц, то Вы легко освоитесь с формулами здесь и можете начинать разрабатывать Ваши индикаторы немедленно. Если же Вы с этим не знакомы, не огорчайтесь, Учебник по формулам (см. Formula Tutorial) поможет вам быстро во всем разобраться.

Диалог "Построитель Индикаторов" (Indicator Builder Dialog)

"Indicator Builder"-диалог появляется после выбора опции "Indicator Builder" из меню Tools или аналогичной кнопки главной панели инструментов.

New. Выбор этой кнопки приводит к вызову диалога "Indicator Editor dialog", во время которого Вы можете присвоить имя и написать формулу нового индикатора.

Edit. При выборе этой кнопки появляется диалог "Indicator Editor dialog", где Вы можете отредактировать предварительно выбранный пользовательский индикатор.

Copy. При выборе этой кнопки делается копия выбранного индикатора в диалог "Indicator Editor dialog". После внесения изменений, нажмите кнопку OK, чтобы сохранить копию пользовательского индикатора. См. "Copying and Deleting Custom Indicators".

Delete. При помощи этой кнопки удаляется выбранный пользовательский индикатор. См. "Copying and Deleting Custom Indicators".

Print. Выбор этой кнопки распечатывает выбранный индикатор. См. "Printing Custom Indicators"

Диалог "Редактор Индикаторов" (Indicator Editor Dialog)

Диалог "Indicator Editor dialog" используется для создания новых и редактирования существующих пользовательских индикаторов.

Name. Вы можете ввести имя индикатора длинной до 50 символов. Это имя будет появляться в заголовке внутреннего окна в котором отображается график индикатора при его вызове. Список индикаторов в "Indicator Builder dialog" сортируется по имени.

Display in QuickList. Выберите это "окошко" (появляется флажок), если Вы хотите, чтобы имя Вашего индикатора было включено в "QuickList". Наличие индикатора в "QuickList" позволяет использовать метод "захвати и сбрось" аналогично тому как используются другие (встроенные) индикаторы. См. "Using the Indicator QuickList".

Formula. Здесь вводится формула пользовательского индикатора. Формула может содержать до 1 024 символов на нескольких строках. Нажимайте "ENTER" для перехода к другой строке. См. "Formula Tips" для получения информации по использованию нескольких строк. См. "Formula Tutorial".

Functions. Выбор этой кнопки вызывает "Paste Functions dialog", где Вы можете выбрать из необходимую функцию из списка и вставить ее в формулу. Эта кнопка неактивна , пока Ваш курсор находится за пределами окна редактирования формулы "Formula edit box". См. "Pasting Functions Into Formulas". Вы можете использовать стандартные клавиатурные команды во время редактирования формулы(См. "Formula Tips").

Если Вы во время редактирования пользовательского индикатора, теста системы или исследования щелкните по кнопке "Cancel" появится окно с запросом "желаете ли Вы сохранить изменения". Выбор "Yes" сохраняет изменения, выбор "No" не сохраняет изменений.

Копирование и Удаление Пользовательских индикаторов (Copying and Deleting Custom Indicators)

Вы можете сделать копию выбранного пользовательского индикатора в "Indicator Builder dialog" при помощи кнопки "Copy". Это полезно, когда Вы хотите разработать новый индикатор похожий на уже существующий.

Например, ели пользовательский индикатор "А" очень похож на вновь создаваемый, Вы должны используя кнопку "Copy" в диалоге "Indicator Builder dialog" сделать его копию. Затем Вы можете внести необходимые изменения и присвоить индикатору новое имя.

При помощи клавиши "Delete" Вы можете удалить пользовательский индикатор из списка диалога "Indicator Builder dialog". Выбор этой кнопки приводит к появлению диалога "Delete Custom Indicator dialog".

Печать Пользовательских Индикаторов (Printing Custom Indicators)

Используя диалог "Print dialog" Вы можете распечатать имена или формулы пользовательских индикаторов на принтер определенный по умолчанию. Этот диалог можно вызвать щелкнув по кнопке "Print" в диалоге "Indicator Builder dialog".

Print What. Выберите, что Вы хотите печатать, только Имя (Names Only) или вместе Имя и Формулу (Names and Formulas) для выбранных пользовательских индикаторов.

Copies. Введи количество копий.

Print Range. Выберите, хотите ли Вы печатать только выбранный индикатор или все пользовательские индикаторы.

Printer. Показывает диалог, где можно выбрать необходимый принтер, установить ориентацию и размер бумаги.

Вставка функций в формулы (Pasting Functions Into Formulas)

Используя кнопку "Functions" диалога "Indicator Editor dialog", Вы можете вставлять функции непосредственно в формулу, которую в данный момент редактируете. Эта возможность не только экономит время, но также освобождает Вас от необходимости запоминать синтаксис функций (или вводить их вручную) и их параметров.

Диалог "Рaste Functions dialog" подразделяет функции на 11 категорий. Категории собраны в список категорий ("Function Category list") расположенный в левой стороне окна диалога. Функции входящие в выбранную категорию располагаются в правой стороне окна в виде списка их Английских имен или других имен функций в зависимости от того имеется ли флажок в окошке "Show English Names checkbox".

Во время скроллирования списка функций в нижней части окна диалога отображается строка описывающая синтаксис выбранной функции. Если Вы хотите вставить в функцию аргументы, выберите окошко "Paste Arguments checkbox".

Щелчок по клавише "ОК" или двойной щелчок по имени функции вставляет ее в формулу в позицию курсора.

Чтобы вставить функцию надо:

  • В сеансе редактирования формулы щелкнуть по кнопке "Functions".
  • Щелкнуть по необходимой категории в списке "Functions Category list".
  • Выполнить двойной щелчок по имени функции.

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

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


Аккумуляция/Дистрибуция (Accumulation/Distribution)

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

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


Полосы Боллинжера (Bollinger Bands)

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

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

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

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

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


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

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)


Средняя цена (Median Price)

(high + low) / 2


Момент (Momentum)

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

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


Скользящая средняя MACD (Moving Average MACD)

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

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

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

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

mov( macd(), 9, E)


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

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

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


Баланс Объема (On Balance Volume)

Следующая формула рассчитывает индикатор баланс объема ("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, вычесть объем

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


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

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

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


Ценовой осциллятор (Price Oscillator)

Следующая формула рассчитывает 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


Коэффициент изменения цены (Price Rate-Of-Change)

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

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

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

roc( close, 12, % )

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

close - ref(close, -12)


Объемно-ценовой тренд (Price Volume Trend)

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

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

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

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


Стандартное отклонение (Standard Deviation)

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).


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

Следующая формула рассчитывает 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 )


Волатильность, Чайкин (Volatility, Chaikin)

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

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


Объемный Осциллятор (Volume Oscillator)

Следующая формула рассчитывает 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


Коэффициент изменения объема (Volume Rate-Of-Change)

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

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

roc( volume, 12, % )


Взвешенная цена закрытия (Weighted Close)

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

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


Аккумуляция/Дистрибуция Вилльямса (Williams' Accumulation/Distribution)

Чтобы упростить объяснение этой формулы, мы разобьем ее на 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

Бинарные Волны Эчлиса (Achelis Binary Waves)

Этот раздел объясняет как пользовательские индикаторы могут быть использованы для разработки индикаторов "дойной волны", которые показывают рейтинг технической позиции ЦБ. Стивен Эчлис, президент EQUIS International, разработал концепцию Двойных волн.

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


Бинарная волна (The Binary Wave)

Бинарная волна возвращает значение +1 или -1 в зависимости от того как интерпретируется показания индикатора : бычьи или медвежьи. (Термин "Бинарная волна" основывается на этой 1 концепции.). Реальная сила бинарных волн проявляется, когда несколько бинарных волн комбинируются в композитные бинарные волны.

Бинарные волны противопоставляются торговым системам основанным на принципе "черного ящика" (несмотря на то, что и то и другое рассматриваются как экспертные системы). Так, Вы не знаете правил или индикаторов, которые используются при анализе ЦБ в "черном ящике", и напротив, Вы сами специфицируете правила и индикаторы в бинарной волне.


Пример Бинарных Волн (Example Binary Waves)

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


Индикатор Бычий сигнал Медвежий сигнал
MACD > сигнальной линии <= сигнальной линии
Moving Average Сlose > Moving Avg. Close <= Moving Avg.
Rate-Of-Change Rate-Of-Change > 0 Rate-Of-Change <= 0
Stochastic > 50 <= 50

Как показано в таблице, мы предполагаем бычью ситуацию, когда линия MACD выше ее сигнальной линии и медвежью, когда она равна или ниже сигнальной линии. Таким образом, Бинарная Волна будет возвращать ±1 в зависимости от того, выше или ниже сигнальной линии находится линия MACD. Такой же подход реализуется в отношении 3-х оставшихся индикаторов. Затем, мы можем комбинировать 4 Бинарных Волны в композитную Бинарную волну. Если, все 4 Бинарных волны являются бычьими, то значение композитной волны будет +4. Наоборот, если все 4 Бинарных волны медвежьи, то это значение будет равно -4. Когда две волны бычьи, а две волны медвежьи, то значение композитной волны будет равно 0.


Ввод примера (Entering the Example)

Каждая из приведенных выше волн может быть введена как отдельный пользовательский индикатор, а затем вмонтирована в одну композитную волну. Это дает вам возможность проверить валидность индивидуальных волн и легко их модифицировать. Такой подход значительно облегчает понимание композитной бинарной волны.

Первая формула ("MACD Wave") возвращает +1, если линия MACD выше ее 9-дневной сигнальной линии. В противном случае, возвращается -1.

if(macd() > mov(macd(),9,E), +1, -1)

Вторая формула ("Mov Wave") возвращает +1, если цена закрытия выше ее 20-дневной экспоненциальной скользящей средней. В противном случае, возвращается -1.

if(C > mov(C, 20, E), +1, -1)

Третья формула ("ROC Wave") возвращает +1, если 12-дневная процентная степень изменения цены закрытия больше 0. В противном случае, возвращается -1.

if(roc(C,12,%) > 0, +1, -1)

Четвертая формула ("Stoch Wave") возвращает +1, если значение Стохастического осциллятора больше 50. В противном случае, возвращается -1.

if(stoch(5,3) > 50, +1, -1)

Пятая формула ("Total Wave") комбинирует предыдущие 4 формулы в композитную Бинарную волну.

fml("MACD Wave") + fml("Mov Wave") + fml("ROC Wave") + fml("Stoch Wave")

Когда Вы создаете композитную волну, важно, вначале протестировать индивидуальные бинарные волны (от формулы "MACD Wave" до формулы "Stoch Wave"), чтобы проверить их валидность. Хорошая композитная бинарная волна будет приносить результаты, которые превосходят результаты генерируемые индивидуальными бинарными волнами входящими в ее состав.


Интерпретация Бинарной Волны (Interpreting a Binary Wave)

Интерпретация бинарной волны довольно очевидна: высокие значения говорят о бычьей тенденции, а низкие о медвежьей. (Вспомните, что индивидуальные бинарные волны возвращают значения +1 или -1; величина значений композитной бинарной волны зависит от количества индивидуальных бинарных волн в нее включенных.)

Вы также можете создать формулу из семейства MACD для отображения разности между двумя скользящими средними композитной Бинарной волны. Такая формула может быть написана следующим образом (имя - "Smooth Total Wave"):

mov(fml("Total Wave"), 12, E) - mov(fml("Total Wave"), 26, E)

Идею заложенную в эту формулу можно реализовать использовав ее в тесте системы в виде правила для открытия длинной позиции (см. ниже).

Enter Long : when(fml("Smooth Total Wave"), >,0)


Новые возможности (Enhancements)

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

Вместо того, чтобы возвращать значения ±1, вы можете "взвесить" показатели бинарных волн в зависимости от качества их прогностической способности. Например, один компонент композитной бинарной волны может возвращать значение ±5, в то время как другой ±0.75.

Вы можете включить в композитную бинарную волну долгосрочную компоненту. Например, в ранее описанную композитную волну "Total Wave" вы можете добавить следующую компоненту:

if(CLOSE > mov(CLOSE, 200, EXPONENTIAL),+10, -10)

Эта формула принимает значения ±10, в зависимости от того, находится ли цена закрытия выше или ниже ее 200-дневной скользящей средней. Таким образом, композитная бинарная волна может находиться в диапазоне +14 +6, если эта долгосрочная компонента бычья и наоборот в диапазоне -14 -6, если она имеет медвежью направленность. При этом правила торговой системы будут выглядеть следующим образом: вход в длинную позицию если композитная бинарная волна больше +10, закрытие этой позиции если значение волны меньше +10, вход в короткую позицию, если значение композитной волны меньше -10 и выход если соответствующее значение больше -10.

Вы можете сделать так, чтобы в композитную формулу возвращались значения индивидуальных волн различные значения (отличные от ±1). Следующая формула возвращает -2, если стохастический осциллятор меньше 20, -1, если его значение находится между 20 и 40, +1, если между 60 и 80, и +2, когда это значение лежит в диапазоне больше 80.

if( stoch(5,3) < 20, {then} -2,

{else} if( stoch(5,3) < 40, {then} -1,

{else} if( stoch(5,3) < 60, {then} 0,

{else} if( stoch(5,3) < 80, {then} +1,

{else} +2))))

Вы можете сгладить бинарную волну, используя формулу похожую на "Smooth Total Wave" и затем для получения сигнала использовать сигнальную линию скользящей средней. Тест системы должен содержать формулу отлеживающую пересечения линии индикатора и ее сигнальной линии.

Композитная бинарная волна предлагает метод ранжирования "технической ситуации" на рынке акций основанного на ваших критериях. Например Вы можете расценивать ситуацию как умеренно бычью, если значение композитной волны находится между 0 и +2.

Вы можете отобразить график степени изменения композитной волны используя формулу показанную ниже:

roc( fml("Total Wave"), 1, $)

Если этот индикатор больше 0, то это свидетельствует о том, что хотя бы один из индивидуальных бинарных волн стал бычьим. Аналогично, если значение меньше 0, то это указывает на медвежий разворот.


Заключение (Summary)

Бинарные волны отражают эволюцию индикатора в концепции ±1-индикатор. Композитные бинарные волны комбинируют несколько индикаторов индивидуальных бинарных волн, чтобы проиллюстрировать Ваш анализ ЦБ основанный на поведении нескольких индикаторов.

Глоссарий (Glossary)

Глоссарий определяет термины, которые используются в пользовательских индикаторах Метастока. Знание (или запоминание) этих терминов для работы с "Indicator Builder" не требуется. Однако, пополнение этими терминами вашего словарного запаса облегчит общение с другими аналитиками использующими Метасток.

КОММЕНТАРИЙ (COMMENT): Текст записанный внутри формулы, но не являющийся ее частью. Комментарий должен быть заключен в фигурные скобки {комментарий}.

КОНСТАНТА (CONSTANT): Специфический тип параметра, который требует функция. Константы можно подразделить на следующие группы:

КОНСТАНТА МЕТОДОВ КАЛЬКУЛЯЦИИ (CALCULATION METHOD CONSTANT): Используются, чтобы определить способ калькуляции. Имеются процентный и абсолютный способы (PERCENT и POINTS их аббревиатуры, соответственно, % и $)

СРАВНИТЕЛЬНЫЕ КОНСТАНТЫ (COMPARISON CONSTANT): используются с функцией if(), для определения операции сравнения. К ним относятся: >, >=, <, <=, <>, =.

ФОРМУЛЬНАЯ КОНСТАНТА (FORMULA CONSTANT) : используется с функцией fml() для ссылки на другую формулу. Формульная константа специфицируется как имя другой формулы заключенное в двойные кавычки (например, fml( "My Formula" ) ).

КОНСТАНТЫ СКОЛЬЗЯЩИХ СРЕДНИХ (MOVING AVERAGE TYPE CONSTANT): Используются для определения метода расчета скользящей средней. Имеются следующие методы : ЭКСПОНЕНЦИАЛЬНЫЙ (EXPONENTIAL), ПРОСТОЙ (SIMPLE), ВРЕМЕННОЙ (TIME SERIES), ТРИАНГУЛЯРНЫЙ (TRIANGULAR) , ПЕРЕМЕННЫЙ (VARIABLE), или ВЗВЕШЕННЫЙ (WEIGHTED). Могут использоваться аббревиатуры, соответственно E, S, T, TRI, VAR, или W.

ЧИСЛОВЫЕ КОНСТАНТЫ (NUMERIC CONSTANT): Одиночное числовое значение. Функции требующие числовую константу не могут воспринимать массивы данных, так как массивы данных скорее всего содержат множественные, а не одиночные числовые значения. Например "10" является числовой константой в формуле "mov(C, 10, E)."

МАССИВ ДАННЫХ (DATA ARRAY): массив данных определяет специфическим образом организованную информацию (данные), которые используются в формуле. Массивы данных могут быть подразделены на:

МАССИВ ЗНАЧЕНИЙ ФУНКЦИЙ (FUNCTION RESULT ARRAY): массивы, которые создаются в результате выполнения функции.

ЛИТЕРАЛЬНЫЙ МАССИВ (LITERAL ARRAY): массив данных определяющий использование одиночных числовых констант.

МАССИВ ЦЕН (PRICE ARRAY) : Массив содержащий информацию о максимальных (high), минимальных (low) ценах , ценах закрытия (сlose) и т.д.

ФОРМУЛА (FORMULA): комбинация комментариев, констант, функций, математических операторов и/или идентификаторов массива цен.

ФУНКЦИЯ (FUNCTION): предопределенные математические операции, в которые могут подставляться параметры, в результате которых создается необходимый массив данных.

МАТЕМАТИЧЕСКИЙ ОПЕРАТОР (OPERATOR, MATHEMATICAL) : "+", "-" , "*", "/".

ПАРАМЕТР (PARAMETER): идентификатор значений подставляемых в функцию, если функция имеет несколько параметров, они отделяются запятой.

ПРЕЦЕДЕНС/ПРИОРИТЕТ (PRECEDENCE): порядок в котором выполняются операции в формуле (см. "Operator Precedence").

ИДЕНТИФИКАТОРЫ МАССИВА ЦЕН (PRICE ARRAY IDENTIFIERS) : символы или слова используемые для ссылки на массив цен (Open, High, Low, Close, Volume, Open Interest, и выбранный график "Plot").

Математические ошибки в Пользовательских индикаторах (Custom Indicator Math Errors)

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

Деление на ноль (Division by zero). В формулу какое либо значение делиться на ноль. Например, в формуле "(ref(close, -1)-open)/(high - low)" деление на ноль может возникнуть, если "high" будет равно "low".

Ошибочная экспонента (Invalid exponentiation). Ошибка возникает при неправильном использовании экспонент.

Неправильный логарифм (Invalid log). Возникает при попытке рассчитать десятичный логарифм 0 или отрицательного числа. Например, формула "log(high - low)" генерирует ошибку, если "high" и "low" будут равны.

Неправильная степень (Invalid power). Возникает при попытке возвести в степень отрицательное число, если значение степени меньше 1.

Modulus by zero. Возникает, если второй параметр в функции mod() определение остатка од деления равен 0. Например, формула "mod(close, high - low)" будет генерировать ошибку, если "high" равно "low".

Отрицательный квадратный корень (Negative square root). Возникает при попытке извлечь квадратный корень из отрицательного числа. Например, формула "sqrt(open - close)" возвратит ошибку, если "close" больше, чем "open".

Сообщения об ошибках (Error Messages)

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

A reference to a formula name is no longer valid. (Ссылка на имя формулы непригодна)

Эта ошибка появляется, когда пытаются вывести график формулы, содержащей ссылку(т.е., "fml()") на несуществующую формулу.

Does not contain an executable formula. (Не содержит исполнимой формулы)

Попытка выполнить пользовательский индикатор в котором нет "валидных" формул.

Formula too complex. (Формула слишком сложная)

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

Группирование операторов при помощи круглых скобок может устранить эту проблему. Однако, лучшее решение - это расчленение слишком сложной формулы, на несколько небольших формул, а затем "монтирование" их в "главную" формулу при помощи функции fml() (см. Formula Call).

Insufficient memory to continue formula execution.(Недостаточно памяти для продолжения выполнения формулы)

MetaStock ran out of memory to store temporary values. (МетаСток выгрузился из памяти, чтобы сохранить временные значения)

Это может помочь "смягчить" редуцирование текущих загруженных данных или редуцирования ссылок на встроенные формулы.

Overflow in function. (Переполнение в функции)

Результат калькуляции в формуле слишком большой для запоминания.

Формулу в этом случае нужно модифицировать, чтобы результат стал меньше. Например, разделить определенные массивы данных или результаты функций на 100.

Too many numeric constants defined in formula.(Слишком много числовых констант определено в формуле)

Максимум 20 различных числовых констант может быть использовано в каждой формуле. Эта ошибка может быть устранена расщеплением формулы на несколько небольших формул и затем соединение их при помощи функции fml(). (См. Formula Call).

Value out of valid range in function.(Значение выходит за диапазон)

Имеется ошибочный параметр в функции.

Например следующие формулы будут генерировать эту ошибку:

Формула mov(C, -5, E), потому что "-5" является некорректным значением для временного периода скользящей средней.

Формула mov(C, 200, E), если загруженных данных меньше чем 200 периодов.

Формула"mov(macd(), 74, E), если было загружено данных меньше, чем 100 периодов. Это обусловленно тем, что MACD выводится на экран, начиная с 26 дня (периода) и естественно. что скользящая средняяя MACD с периодом 74, начнет выводится на экран начиная с 100 дня (периода). Вы будете вынуждены отредактироать формулу или загрузить больше данных.



Содержание (Contents)
Начало работы
Приветствуем Вас (Welcome)
Аппаратно-программые требования (What you need to run MetaStock for Windows)
Два шага для того, чтобы быстрее начать работу (Two Quick Steps for Getting Up to Speed Fast)
Инсталляция МетаСток (Installing MetaStock)
Запуск программы (Running MetaStock)
Предоставление помощи (Getting Help)
Рабочая область
Стандартные функции Microsoft Windows
Использование меню (Using the Menus)
Использование диалогов (Using Dialogs)
Использование панелей инструментов (Using the Toolbars)
Использование строки состояния (Using the Status Bar)
Помощь! Использование системы помощи "on-line" (HELP! Using MetaStock's on-line Help System)
Изменение внешнего вида рабочей области МетаСток (Changing the Appearance of MetaStock's Workplace)
Концепция Графика
Три способа управления данными (Three Ways to Manage Securities)
Открытие, Закрытие и Сохранение. Общие вопросы. (Opening, Closing and Saving. General)
Удаление файлов Графиков, Шаблонов и Форматов (Deleting Chart, Template, and Layout Files)
Обслуживание данных при помощи ДаунЛоадера (Maintaining Your Data with The DownLoader)
Работа с Графиками
Что такое График ? (What is a Chart?)
Создание нового Графика (Creating a New Chart)
Вывод существующих Графиков (Displaying Existing Charts)
Сохранение Графиков (Saving Charts)
Закрытие Графиков (Closing Charts)
Смена Графика при помощи команды "Change Security" (Scanning Charts with the Change Security Commands)
Прокручивание Графиков (Scrolling Charts)
Клонирование Графиков (Cloning Charts)
Форматы
Что такое формат? (What is a Layout?)
Создание нового формата (Creating a New Layout)
Вывод на экран существующих Форматов (Displaying an Existing Layout)
Модификация Форматов (Making Changes to a Layout)
Сохранение Форматов (Saving a Layout)
Закрытие Формата (Closing a Layout)
Шаблоны
Что такое Шаблон? (What is a Template?)
Создание нового Шаблона (Creating a New Template)
Применение существующих Шаблонов (Applying an Existing Template)
Внесение изменений в Шаблон (Making Changes to a Template)
Сохранение Шаблонов (Saving a Template)
Шаблон по умолчанию (The Default Template)
Свойства Графика
Окно Графика (Chart Window)
Внутренние окна (Inner Windows)
Шкалы (Scales)
Печать
Выбор и конфигурирование принтера (Selecting and Configuring Your Printer)
Customizing the Printout with Page Setup
Предварительный просмотр перед печатью (Previewing Charts Before Printing)
Печать Графиков и Данных (Printing Charts and Data)
Работа с графиками цен
Концепция базовой ЦБ (Base Security Concept)
Типы графиков Цен (Types of Price Plots)
Модификация графика Цен (Modifying a Price Plot)
Копирование, Удаление и Перемещение графиков цен (Copying, Deleting, and Moving Price Plots)
Просмотр данных при помощи Окна данных (Viewing Price Values with the Data Window)
Работа с Индикаторами
Что такое Индикатор (What is an Indicator?)
Построение Индикаторов (Plotting an Indicator)
Модификация Индикаторов (Modifying an Indicator)
Копирование, Удаление и Перемещение Индикаторов (Copying, Deleting, and Moving Indicators)
Просмотр значений индикаторов при помощи Окна данных (Viewing Indicator Values with the Data Window)
Интерпретация Индикаторов в режиме On-line (On-line Indicator Interpretation)
Параметры индикаторов (Indicator Parameters)
Работа с аналитическими линиями
Что такое аналитическая линия (What is a Line Study?)
Построение Аналитических линий (Drawing a Line Study)
Модификация Аналитических линий (Modifying a Line Study)
Подгонка, Копирование, Удаление и Перемещение Аналитических линий (Adjusting, Copying, Deleting, and Moving Line Studies)
Параметры Аналитических линий (Line Study Parameters)
Учебник по формулам (Formula Tutorial)
Начало работы (Getting Started)
Идентификаторы массива цен (Price Array Identifiers)
Построение графика пользовательского индикатора (Plotting a Custom Indicator)
Математические операторы (Mathematical Operators)
Приоритет операторов (Operator Precedence)
Формула Функции (Formula Functions)
Параметры функций (Function Parameters)
Контроль ошибок в формулах (Locating Errors in Formulas)
Вставка функций (Inserting Functions)
Написание комментариев (Writing Comments)
Подстановка функций функция в качестве аргумента другой функции (Nesting Functions)
Функция if()
Использование операторов (Using "And" and "Or" Operators)
Ссылка на другие Пользовательские Индикаторы (Referencing Other Custom Indicators)
Р-идентификатор массива данных (The "P" Data Array Identifier)
Советы по работе с формулами (Formula Tips)
Разработка собственных индикаторов
Что такое "Построитель индикаторов"? (What is the Indicator Builder?)
Диалог "Построитель Индикаторов" (Indicator Builder Dialog)
Диалог "Редактор Индикаторов" (Indicator Editor Dialog)
Копирование и Удаление Пользовательских индикаторов (Copying and Deleting Custom Indicators)
Печать Пользовательских Индикаторов (Printing Custom Indicators)
Вставка функций в формулы (Pasting Functions Into Formulas)
Примеры Пользовательских Индикаторов (Sample Custom Indicators)
Бинарные Волны Эчлиса (Achelis Binary Waves)
Глоссарий (Glossary)
Математические ошибки в Пользовательских индикаторах (Custom Indicator Math Errors)
Сообщения об ошибках (Error Messages)
Тестирование Торговых систем
Что такое тест системы? (What is a System Test?)
Учебник по тестеру систем (System Tester Tutorial)
Диалог "Тестер систем" (System Tester Dialog)
Создание теста системы (Creating a System Test)
Копирование и удаление тестов систем (Copying and Deleting System Tests)
Печать тестов систем (Printing System Tests)
Тестирование систем (Testing Systems)
Сравнение систем (Comparing Systems)
Оптимизация систем (Optimizing Systems)
Просмотр отчетов (Viewing the Reports)
Использование системы Максимальной прибыли (Using the Maximum Profit System)
Советы по улучшению систем (System Development Tips)
Техническая справка (Technical Reference)
Эксплорер
(Ranking and Screening Securities)
Что такое эксплорер? (What is The Explorer?)
Учебник по Исследованиям (The Explorer Tutorial)
Диалог "Explorer" (The Explorer Dialog)
Создание Исследования (Creating an Exploration)
Копирование и удаление Исследований (Copying and Deleting Explorations)
Печать Исследований (Printing Explorations)
Запуск Исследования (Running the Exploration)
Просмотр отчетов (Viewing the Reports)
Примеры Исследований (Sample Explorations)
Советы по Исследованиям (Exploration Tips)
Интерпритация индикаторов
(Interpretation of Indicators and Line Studies)
Аккумуляционный индекс размаха (Accumulation Swing Index )
Аккумуляция/Дистрибуция (Accumulation/Distribution)
Вилка Эндрю (Andrews' Pitchfork)
Усредненный истинный диапазон (Average True Range)
Полосы Боллинжера (Bollinger Bands)
Объемные подсвечники (Candlevolume)
Осциллятор Чайкина (Chaikin Oscillator)
Канальный индекс товаров (Commodity Channel Index)
Селекционный индекс товаров (Commodity Selection Index)
Корреляция (Correlation)
Линии циклов (Cycle Lines)
Индекс спроса (Demand Index)
Детрендовый ценовой осциллятор (Detrended Price Oscillator)
Дирекционный момент (Directional Movement)
Свобода движения (Ease of Movement)
Огибающие линии (Envelope)
Эквивалентные объемы (Equivolume)
Аналитические линии Фибоначи (Fibonacci Studies)
Преобразование Фурье (Fourier Transform)
Аналитические линии Ганна (Gann Studies)
Индекс выплат Херрика (Herrick Payoff Index)
Штриховой график "High/Low/Close" ("High/Low/Close" Bar)
Каги (Kagi)
Объемный осциллятор Клингера (Klinger Volume Oscillator)
Линейная регрессия (Linear Regression)
Линейный график (Line Chart)
Скользящая средняя конвергенции-дивергенции (MACD)
Индекс Массы (Mass Index)
Средняя цена (Median Price)
Момент (Momentum)
Индекс денежного потока (Money Flow Index)
Скользящие средние (Moving Averages)
Методы расчета скользящих средних (Moving Average Calculation Methods)
Интерпретация
Индекс отрицательного объема (Negative Volume Index)
Баланс объема (On Balance Volume)
Открытые позиции (Open Interest)
Индикаторы опционов (Option Indicators)
Параболическая система (Parabolic SAR)
Представление (Performance)
Point and Figure
Индекс положительного объема (Positive Volume Index)
Ценовой осциллятор (Price Oscillator)
Скорость изменения цены (Price Rate-Of-Change)
Ценново-объемный тренд (Price Volume Trend)
Квадранты (Quadrant Lines)
Индекс относительной силы (Relative Strength Index)
График типа "Renko"
Speed Resistance Lines
Спреды (Spreads)
Стандартное отклонение (Standard Deviation)
Стохастический осциллятор (Stochastic Oscillator)
Индекс ритма (Swing index)
Трехполосный разворот (Three Line Break)
Прогноз временного ряда (Time Series Forecast)
Уровни Тирона (Tirone Levels)
Индекс торгового объема (Trade Volume Index)
Линии тренда (Trendlines)
ТРИКС (TRIX)
Типичная цена (Typical Price)
Ultimate Oscillator
Вертикально-горизонтальный фильтр (Vertical Horizontal Filter
Волатильность по Чайкину (Volatility, Chaikin's)
Объем (Volume)
Объемный осциллятор (Volume Oscillator)
Скорость изменения объема (Volume Rate-Of-Change)
Взвешенная цена закрытия (Weighted Close)
Процентный разброс Уильямса (Williams' %R)
Аккумуляция/Дистрибуция Уильямса (Williams' Accumula-tion/Distribution)
Зиг-Заг (Zig Zag)






На правах рекламы:
Самые лучше уличные датчики доступны по низким ценам на ronixs.ru. ; муфта мувп с тормозным шкивом гост