QUIK. QLua. Индикаторы технического анализа
1. Как устроены индикаторы в QUIK
Основой для построения всех индикаторов в QUIK является источник данных (далее ИД). Источник Данных представляет собой массив, в котором элементы являются структурами и имеют 6 полей:
1. Open;
2. High;
3. Low;
4. Close;
5. Volume;
6. Time.
Это значит, что все элементы массива в Источнике Данных представляют собой свечи. В случае тиковых данных поля с 1-го по 4-е буду иметь одно значение, и оно будет совпадать со значением параметра в этот момент времени. Источники данных могут быть интервальными графиками (тики, 1 минута, 5 минут и т.д.), рассчитанными по таблице всех сделок или по изменениям параметра торгуемого инструмента.
Индикатор представляет собой функцию, которая для элемента массива Источника Данных может вернуть одно или несколько чисел, в зависимости от количества линий, отображаемых на графике.
Индикатор не может выступать источником данных для другого индикатора.
2. Минимальный код индикатора
Пример 1 (ex1.lua)
Settings = { Name = "Example1" } function Init() return 1 end function OnCalculate(index) return nil end
Рассмотрим подробнее, что происходит при добавлении такого индикатора на график.
При создании нового индикатора (пункт Добавить график (индикатор)… контекстного меню графика) терминал сканирует папку LuaIndicators в директории Рабочего места QUIK на наличие в ней скриптов, отвечающих следующим требованиям:
1. В скрипте определена глобальная таблица Lua с именем Settings;
2. Определена функция Init();
3. Определена функция OnCalculate().
Поле Name в таблице Settings будет определять имя индикатора, с которым он будет отображаться в диалоге
Далее
- Индикаторы технического анализа представляют собой отдельный класс скриптов, которые удовлетворяют определенным условиям и расположены в папке LuaIndicators в каталоге терминала (например C:\Program Files\QUIK\LuaIndicators). Если папка отсутствует в каталоге, необходимо создать ее вручную.
- Список скриптов недоступен из диалога Таблицы / LUA / Доступные скрипты.
- При добавлении нового индикатора на график плагин qlua сканирует папку LuaIndicators, проверяет файлы с расширением lua и luac (скомпилированные скрипты lua) на соответствие следующим требованиям:
- определена функция Init;
- определена функция OnCalculate;
- определена таблица Lua с именем Settings, в которой есть поле «Name».
Пример минимального корректного кода для индикатора: