Форум трейдеров » Торговые роботы, советники, индикаторы » Механические торговые системы: проектирование и применение
+ Подписаться
Страница 10 из 52 ПерваяПервая ... 8910111220 ... ПоследняяПоследняя
  1. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.3.10. Р-идентификатор массива данных

    Специальный ценовой идентификатор (переменная “Р”) используется, чтобы ссылаться на какой либо график индикатора или цены.
    При применении Р-переменной в пользовательских индикаторах ей присваиваются значения индикатора, на график которого «сбрасывается» пользовательский индикатор.
    Если «сбросить» пользовательский индикатор, содержащий Р-переменную, на график цены, то значениями для Р-переменной служит цена закрытия (CLOSE).
    Например, следующий «пользовательский» индикатор отображает график типа MACD:

    mov( P, 12, E) - mov( P, 26, E).

    Если нарисовать, например, индикатор Аккумуляции/Дистрибуции, а затем «сбросить» на него приведенный выше индикатор, то в результате можно получить MACD Аккумуляции/Дистрибуции.
    Конечно, можно написать предыдущую формулу без использования «Р»-переменной, например так

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

    Однако эту формулу нужно будет модифицировать каждый раз, когда мы захотим вместо MACD Аккумуляции/Дистрибуции рассчитать MACD какого-либо другого индикатора.
    При использовании Р-переменных формула становиться более гибкой и универсальной для применения.

    В пользовательских индикаторах значения HIGH, LOW, CLOSE, VOLUME, OPEN и OPEN INTEREST всегда берутся из массива данных по базовому инструменту.
    Например, если «сбросить» индикатор с формулой "HIGH - LOW / P" на ценовой график, который не является графиком базового инструмента, то HIGH и LOW будут взяты из массива базовых данных, а значение Р-переменной будет представлено ценой закрытия (CLOSE) того инструмента, на график которого произошел сброс индикатора.

    Чтобы отобразить пользовательский индикатор с Р-переменной, необходимо:
    • Написать формулу пользовательского индикатора, вставив Р-переменную на место идентификатора массива данных. (Например, mov(P, 10, E), sum(P,25), stdev(P,12), и т.п.)
    • Захватить этот индикатор из списка индикаторов и сбросить на нужный график.
  2. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.3.11. Советы по работе с формулами

    Общие сведения.
    Два наиболее важных момента работы с формулами уже упоминались:
    - использование «Paste Formula dialog»;
    - щелчок по клавише «ОК» при вводе формулы для проверки ее синтаксиса.

    Использование разбивки на строки.
    Длинную формулу лучше разбить на несколько строк для облегчения ее чтения.
    Пример, исходная формула

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

    Формула намного легче читается, если ее расположить на нескольких строках в виде:

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

    Заглавные и прописные символы.
    При вводе формул регистр (верхний или нижний) не имеет значения («с» и «С» идентичны).

    Комментарии.
    Комментарии в формулах в Метасток заключаются в фигурные скобки "{" и "}". Следующая формула содержит два комментария.

    macd() {the MACD times} * ((H+L+C) / 3) {средняя цена}

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

    ( mov(fml("MA1"),10,S) / fml("MA2") ) { * stoch(5,3) }

    После тестирования можно убрать скобки и проверить всю формулу.

    Пробелы.
    Наличие пробелов внутри формулы необязательно. Однако, разумное их использование облегчает чтение формулы.
  3. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.4. Начинаем строить свои индикаторы.

    Сейчас мы убедимся, насколько просто строить и применять индикаторы в Метасток.
  4. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.4.1. Цена закрытия.

    Откроем в Метасток график какого либо инструмента, для определенности EURUSD часового масштаба, и настроим отображение злементов графика в виде японских свечей (рис.3.11).



    Рис.3.11. График EURUSD с отображением в виде японских свечей

    Построим для примера индикатор, показывающий изменение цены закрытия, и назовем этот индикатор «Учимся – Close».
  5. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    Вызываем диалог конструктора индикаторов (рис.3.12) и нажимаем кнопку «New», т.е. мы будем строить новый индикатор.



    Рис.3.12. Диалог конструктора индикаторов

    В появившемся окне редактора набираем в графе «Name» (Имя) имя нашего индикатора, а в графе для формулы – формулу. Ставим «птичку» в окошке отображения в быстром списке (Display In QuickList) и пишем формулу для индикатора.



    Рис.3.13. Диалог редактора

    Какая будет формула, если нам надо отображать цену закрытия?
    Да такая и будет, просто

    Close

    Можно даже еще короче

    C

    В конце формулы ставится знак «;», но если в формуле все вычисления проводятся в одной строке, то этот знак ставить необязательно.
    Нажимаем клавишу «ОК».
  6. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    Теперь наш индикатор готов и отображается в быстром списке индикаторов под заданным нами именем «Учимся – Close» (рис.3.14).



    Рис.3.14. Отображение построенного индикатора в бытром списке (список раскрыт).

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



    Рис.3.15. Отображение построенного индикатора на графике цен.
  7. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.4.2. Chikou Span из Ishimoku

    Теперь построим более сложный индикатор, например элемент Chikou Span входящий в состав известного индикатора Ishimoku Kinko Hyo.
    Chikou Span представляет собой просто график цены закрытия, сдвинутый на 26 периодов назад от текущего момента.
    Чтобы его построить вызываем меню диалога конструктора индикаторов, показанное на рисунке 3.12.
    Далее мы могли бы просто написать формулу нового индикатора, но мы поступим по-другому. Мы построим новый индикатор на основе предыдущего, т.е. на основе разработанного нами индикатора под именем «Учимся – Close». Для этого находим индикатор «Учимся – Close» в колонке слева, выделяем его и нажимаем клавишк «Copy». Получим следующий результат (рис.3.16).



    Рис.3.16. Результат копирования индикатора «Учимся – Close».

    Теперь осталось отредактировать имя (пишем имя «Учимся – Chikou Span») и формулу.
    Поскольку создаваемый индикатор представяет собой график цены закрытия, сдвинутый на 26 периодов назад, то воспользуемся оператором сдвига и запишем

    Ref(C,26)

    И всё.
    Редактирование закончено, индикатор создан (мы сократили написание «Close» до одной буквы «C»).



    Рис.3.17. Результат редактирования.

    Нажимаем клавишу «ОК» и можем приступать к работе с индикатором.
  8. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    Захватываем индикатор из быстрого списка и сбрасываем на график цены. Получаем результат, показанный на рисунке 3.18.



    Рис.3.18. Применение пользовательского аналога индикатора Chikou Span.
  9. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.4.3. Медианная цена

    Медианная цена - это средняя цена между минимумом и максимумом на интервале.
    Формула индикатора - простое алгебраическое выражение:

    (H+L)/2;

    Здесь мы использовали скобки, как способ задания порядка операций - сначала сложение H и L, затем деление полученной суммы на 2.



    Рис.3.19.
  10. 8,713
    Комментарии
    98
    Темы
    15649
    Репутация Pro
     
    Старожил

    7 Медалей
    3.4.4. Истинная цена.

    Т.н. истинная цена - это среднее трех величин: H, L и C.
    Формулу для этого индикатора будем писать с помощью оператора присваивания, которым определим внутреннюю функцию индикатора:

    RP:= (H+L+C)/3;

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

    RP;

    Получаем результат



    Рис.3.20

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

Вверх
РегистрацияX

чтобы писать, читать, комментировать