Создание индикатора на основе скользящих средних
Индикатор – это графическое представление некоторой особой фигуры на графике, математической формулы или результата расчета функции. Для одного индикатора на графике могут быть построены максимум 4 линии. В комплекте с Trading Desk VPro поставляется большое количество часто используемых индикаторов (работа с ними описана в главе «Индикаторы»). В этом разделе мы рассмотрим, как создать собственный индикатор при помощи редактора скриптов.
Данный индикатор, создание которого мы рассмотрим, будет создавать на графике одну линию, представляющую собой скользящую среднюю цен закрытия (Close) для последних 32 баров. Итак, начнем.
Определение входных параметров и переменных. На первом шаге необходимо определить входные параметры и переменные, которые будут использоваться для построения индикатора. Объявим один параметр с названием Len, начальное значение которой положим равным 32. Для этого необходимо напечатать в окне редактора следующее:
Input: Len(32);
Значение 32 мы взяли потому, что будем рассчитывать скользящую среднюю для 32 баров. Для того, чтобы легче было ориентироваться в коде индикатора, рекомендуем Вам использовать комментарии для каждой части кода. Комментарии в Trading Language выделяются фигурными скобками {}. В нашем случае поставьте после точки с запятой в конце строки 4 или 5 пробелов и напечатайте следующее:
{Число баров, используемое для расчета скользящей средней.}
В Trading Language возможно писать комментарии на русском языке. После того, как Вы написали комментарий, перейдите на новую строку нажатием клавиши Enter.
Для данного индикатора нам понадобится 2 переменные, которые будут содержать значения вычислений скользящей средней. Оставьте пустую строку после объявления входного параметра, а на новой строке напечатайте следующее:
Vars: KeepO(0), {Значение цены открытия, когда условие верно.} MA(0); {Значение скользящей средней.}
Переменная – это временно используемая ячейка памяти, где хранится информация, необходимая для работы программы. Число в скобках – начальное значение переменной, значение в начале работы программы, значение на первом баре. Далее значение переменной по необходимости будет меняться вместе с тем, как программа будет оценивать каждый бар.
Таким образом, после первого шага на экране редактора скриптов будет следующее:
Создание основного кода. На этом шаге мы создадим основной код программы. Здесь будет использоваться условный оператор If…Then Begin. Мы вычисляем скользящую среднюю и фиксируем значение цены открытия для первого бара:
MA = Average(Close,Len); If Date>Date[1] Then Begin KeepO = Open; End;
На новой строке после IF…THEN BEGIN должна быть команда, выполняемая в случае, если условие верно. На этой строке сначала нажмите клавишу Tab, чтобы сделать отступ, а затем наберите код. Такой отступ позволяет легче ориентироваться внутри условных и циклических операторов.
В приведенном фрагменте кода первая строка присваивает значение скользящей средней переменной МА. Для использованной здесь функции Average необходимо указать цену актива и период времени в барах. Далее мы проверяем, когда дата текущего бара больше, чем дата предыдущего. Число в квадратных скобках означает количество баров назад. На суточном графике данное условие будет верным для первого бара дня.
По-другому это условие можно было бы записать на одной строке:
If Date > Date[1] Then KeepO = Open;
Но, как известно, при такой записи в случае, если условие верно, может выполняться только одна команда.
Таким образом, после второго шага на экране редактора скриптов должно быть следующее:
Создание графика. На этом шаге мы завершили расчет скользящей средней. Теперь необходимо нанести линию скользящей средней на график. Для этого используется оператор Plot. После строки со словом «End» оставьте пустую строку, а на новой напечатайте следующее:
Plot1(MA, “Moving Average”);
После того, как Вы набрали весь код программы, нажмите на иконку на панели инструментов или нажмите комбинацию клавиш Ctrl+F7 для того, чтобы скомпилировать скрипт. Компиляция не только сделает код программы исполняемым, но и проверит его на ошибки. Если в коде ошибок не обнаружено, то в строке подсказок редактора появится надпись «Скрипт успешно скомпилирован!».
Таким образом, по окончании создания индикатора на экране редактора скриптов должно быть следующее:
После компиляции в окне выбора индикатора появляется созданный нами индикатор NewMAIndicator:
На графике цен он выглядит следующим образом:
|