Germany | Finland | Saint Petersburg | Drive

Пользовательские графики в QPILE

Опубликовано в Роботы

Одна  серьёзных проблем терминала QUIK - невозможность расширения интерфейса за счет добавления в него пользовательских индикаторов. Пользователь вынужден пользоваться лишь тем набором, который жестко "зашит" в самом терминале. Что делать, если стратегия пользователя, протестированная в программе теханализа, опирается на отсутствующие в QUIK индикаторы? (продолжение статьи Универсальная платформа)

Проблема решается, хотя и не на все 100%. При помощи встроенного языка QPILE можно сравнительно легко рассчитывать в QUIK индикаторы любой сложности. Все, что для этого требуется - математическая формула, описывающая этот индикатор. Нет разницы, состоит ли этот индикатор из одной линии, двух или это что-то довольно сложное, состоящее из многих линий и областей. Можно рассчитывать как прямолинейные отрезки и лучи, так и произвольные кривые. Также можно производить расчет индикаторов, имеющихся в самом терминале QUIK, но не устраивающих по каким-либо критериям (например, многих Заказчиков не устраивает штатный индикатор фракталов).

В сети можно найти много примеров расчета индикаторов в реальном времени. Они берут значения текущей свечи и рассчитывают значение индикатора опять-таки для текущей свечи. Чтобы накопить историю индикатора в таком подходе, необходимо быть подключенным определенное время Такой подход крайне прост и возможен только для примитивных целей. Ну как, например, его использовать на дневных графиках, если нужно построить индикатор, использующий 20-дневную историю? Никак. Такие способы неинтересны. Приходится использовать другой подход.

Расчет индикатора происходит путем расчета и построения в памяти робота массива свечей, хранящих Open, High, Low,Close (OHLC) значения таким же образом, каким они хранятся для каждой свечи (бара) графика цены. Расчет индикатора с равной степенью успеха может вестись как на на исторических данных (то есть уже на сформированных ранее свечах), так и в реальном времени. Таким образом, в случае индикатора, требующего для своего расчета обработку предыстории (пример -  скользящая средняя) при старте робота сразу же можно получить текущее (и любые предыдущие) значения рассчитываемого индикатора без ожидания, пока требуемый размер истории накопится в реальном времени. Таким образом, включая робот в работу, можно сразу получить индикатор, рассчитанные на текущий (и на предыдущие) моменты на любом таймфрейме, включая и большие. Одним словом, все так же, как и в случае стандартных индикаторов терминала QUIK.

Второй вопрос - визуализация рассчитанного индикатора. Тут все значительно печальнее. Единственным способом вывода информации на график из QPILE является установка метки. Поэтому нарисовать красивую плавную линию на графике QUIK, как ни жаль, не получится. Вот пример расчета конверта - индикатора, отсутствующего в стандартной поставке:

 

На диаграмме QUIK 4 графика - цены инструмента и еще три пользовательских. Несмотря на то, что каждый из пользовательских графиков для робота имеет абсолютно тот же функционал, что и "родной" график цены (цены открытия, закрытия, минимальное и максимальное значения), изобразить их на графике в красивом виде технически невозможно. В данном случае исходя из условий задачи была выбрана отрисовка каждого из пользовательских индикаторов по цене закрытия.  Использовать же для принятия решений  можно все поля. В качестве метки используется произвольный файл стандартного windows формата bmp. Используя готовый робот, Заказчик в любой момент имеет возможность сменить изображение метки, указав роботу иной bmp-файл.

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

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

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

 


Статья устарела с появлением возможности построения пользовательских индикаторов, написанных на языке lua

 

Комментарии   
# admin 21.10.2013 11:27
Начиная с версии 6.9 терминала quik появилась возможность рассчитывать и отрисовывать индикаторы на встроенном языке Lua
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий