Финансовая лаборатория

Биржевая торговля и торговые роботы

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

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

Индикаторы в Велс Лаб

Все технические индикаторы в программе Wealth-Lab, доступные в диалоговом окошке, которое открывается при нажатии на кнопку "Indicators" либо из контекстного меню графика "Plot an Indicator on the Chart..." интегрированы в специальных библиотеках индикаторов, которые являются компонентами .NET.

Сразу же после запуска программа Wealth-Lab обнаруживает те библиотеки индикаторов, которые находятся в главной папке, где установлена программа и тут же отображает их в окне доступных индикаторов.

Индикаторы в Wealth Lab

Библиотека индикаторов в Велс Лаб

Для получения более подробной информации смотрите раздел API.

Синтаксис индикаторов

Как и для всех прочих классов, возможность выбора индикаторов и просмотр их синтаксиса интегрирована в редакторе стратегий. Просто нажмите одновременно клавиши Ctrl + Space для того, чтобы открыть контекстное меню завершения кода. Напечатайте несколько букв для того, чтобы внизу отобразился результат поиска. После выбора того, что Вам необходимо, нажмите клавишу Tab или Enter чтобы завершить задуманное.

Редактор стратегий в Велс Лаб

Контекстное меню в редакторе стратегий

Как и во всех прочих случаях, сразу же после набора разделителя разрядов (точки), происходит автоматическое отображение свойств и методов данного класса. Как Вы вскоре узнаете, все индикаторы имеют метод Series(), а некоторые из индикаторов имеют также и метод Value(). Если по каким-либо причинам список свойств и методов не отобразится автоматически - расположите курсор сразу после разделителя разрядов (точки) и одновременно нажмите две кнопки: Ctrl + Space. В результате список свойств и методов класса появится снова.

выбор метода - Series() либо Value()

После того, как Вы сделаете выбор из списка параметров и введете открывающую круглую скобку, перед Вами отобразится полный синтаксис индикатора. Если вдруг всплывающая подсказка, информирующая Вас о синтаксисе индикатора исчезнет (это случается, к примеру, при передвижении курсора в сторону от списка параметров), верните курсор на прежнее место - сразу после открывающей круглой скобки и нажмите одновременно три клавиши: Ctrl + Shift + Space для того, чтобы снова увидеть всплывающую подсказку.

Всплывающая подсказка

Всплывающая подсказка при построении индикатора

Совет:

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

Выбор вариантов

Выбор вариантов параметра (после нажатия пробела)

Метод Series() - для получения значений индикаторов для всех баров

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

Как: получить доступ к полному ряду данных индикатора

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

Метод 1:
Используйте оператор new для того, чтобы получить экземпляр индикатора типа DataSeries. Помимо того, что такой метод будет казаться "более профессиональным", Вы сможете прямо при вызове этого метода сделать более удобное описание названия получившегося индикатора.

Метод 2:
Пользователям, которые стали использовать Wealth-Lab еще до выхода .NET версии, может показаться более комфортным статический метод Series, для того чтобы получить экземпляры индикатора типа DataSeries.

Пример (как выполнить пример приведенного кода)...


protected override void Execute()
{

/* Сопоставление двух методов создания индикаторов */

   // Метод 1: использование оператора new

   SMA sma = new SMA(Close, 50, "Метод 1: 50-дневная простая скользящая средняя (SMA)");
   PlotSeries(PricePane, sma, Color.Blue, WealthLab.LineStyle.Solid, 2);

   // Method 2: использование статистического метода Series()

   DataSeries sma2 = SMA.Series(Close, 20);
   sma2.Description = "Метод 2: 20-дневная простая скользящая средняя (SMA)";
   PlotSeries(PricePane, sma2, Color.Red, WealthLab.LineStyle.Solid, 2);
}

Синяя скользящая средняя сделана при помощи метода 1, а красная скользящая средняя - при помощи метода 2.

Два метода, один результат

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

Статические метод Value() для расчет значения индикатора только для одного бара

Метод Value() - это необязательный для индикаторов метод. Статический метод Value() дает возможность посчитать и возвратить значение индикатора "на лету" для конкретного номера бара. При этом нет необходимости полностью создавать экземпляр данного класса. Такой способ соответствует режиму SingleCalcMode, который был доступен для версии Wealth-Lab, которая предшествовала версии .NET. Поскольку здесь не происходит процесса кеширования, метод Value() может пересчитывать индикатор, значение параметров которого могут меняться.

Если индикатор поддерживает метод Value(), то все параметры этого индикатора будут аналогичны параметрам из метода Series() за одним исключением. Здесь появляется новый дополнительный параметр типа int, для указания на номер конкретного бара. Результатом такого метода является число с типом double.

Как: рассчитать значение простого индикатора несколькими способами

Давайте рассмотрим примеры использования обоих методов и метода Series() и метода Value(). Предположим, что Вы хотите определить торгуется ли в настоящее время финансовый инструмент выше своей 50-дневной скользящей средней.

Пример (как выполнить пример приведенного кода)...

Метод Series()


//Метод Series()
protected override void Execute()
{
   int bar = Bars.Count - 1;
   DataSeries sma = SMA.Series(Close, 50);
   if (Close[bar] > sma[bar])

      DrawLabel(PricePane, "Above 50-day SMA", Color.Blue);

   else

      DrawLabel(PricePane, "Below 50-day SMA", Color.Red);
}

Метод Value()

//Метод Value()
protected override void Execute()
{

   int bar = Bars.Count - 1;
   double smaVal = SMA.Value(bar, Close, 50);

   if (Close[bar] > smaVal)

      DrawLabel(PricePane, "Above 50-day SMA", Color.Blue);
   else

      DrawLabel(PricePane, "Below 50-day SMA", Color.Red);
}

Как Вы видите, оба метода приводят к совершенно одинаковым результатам. Если мы вспомним, что метод Series() возвращает данные в виде целого ряда значений (тип DataSeries), т.е. индикатор рассчитывается для каждого бара. Поскольку в данном примере нам нужно только одно значение скользящей средней (только на последнем баре), можно прийти к выводу, что в данном конкретном случае нет необходимости нагружать процессор и память, применяя метод Series(). Будет вполне достаточно определить значение скользящей средней на последнем баре с помощью метода Value().

Сегодня мы начали рассматривать обширную тему "Индикаторы в Wealth-Lab". В следующий раз посмотрим, как можно создавать собственные индикаторы и убедимся, что в этом нет ничего сложного. Не забывайте подписываться на новые статьи по RSS.

Рубрики: Indicators, WealthScript

Комментариев: 2

  1. [...] Проектирование и построение индикаторов в Wealth-Lab  Главная  Написание текста на графиках Wealth-Lab [...]

Оставить комментарий