Готовый торговый робот для терминала QUIK на языке Lua.

Пример реального торгового робота для QUIK на языке Lua. Тестирование алгоритмов на исторических данных, оптимизация параметров торговых систем.

Тестирование алгоритма на исторических данных с помощью Lua и TSLab.

Ознакомительное видео.

Полное видео доступно после оплаты доступа.

Во второй части Курса хочу продемонстрировать Вам полностью готового торгового робота и процесс тестирования алгоритма на исторических данных перед запуском робота в торговлю. В качестве примера взял один  из своих рабочих алгоритмов. На рабочем алгоритме будет проще объяснить принципы построения торговых роботов.  
Хочу особо отметить, высказываю исключительно свою точку зрения, которая может абсолютно не соответствовать Вашей. Результаты тестирования, которые будут представлены, в качестве примера, никаким образом не являются призывом к действию и никак не отражают будущую доходность. Никаких гарантий доходности не предоставляется.   
Помимо обзора непосредственно торгового робота часть видео будет посвящена тестированию алгоритма на исторических данных. Под алгоритмом подразумевается  правила и условия по которым торговый робот принимает решения на вход  в позицию и выход из нее. 
 
Давайте немного поговорим о терминологии. Мной будут использоваться термины имеющие равнозначные значение, такие как  
Вход в позицию и открытие позиции – означает одно и тоже действие. 
Выход из позиции и закрытие позиции – также означают одно и тоже действие. 
Код и скрипт – также являются синонимами. 
Торговый робот, алгоритм, торговая система – под всеми тремя понятиями подразумевается, скрипт который автоматически совершающий торговые операции по определенным правилам. 

Все файлы, которые я буду использовать, есть у Вас в письме, которое Вы получили после оплаты доступа. Давайте откроем папку с файлами FILES\SMA_DIFF_RTS. В процессе мы разберем, какие файлы для чего используются. 

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

И так, давайте поговорим, в чем же суть представленного  торгового робота. С одной стороны это достаточно простой алгоритм, с другой стороны он весьма интересен. В основе алгоритма лежит простая скользящая средняя, входы в позицию и выходы из позиции осуществляются по значению ускорения скользящей средней. Что я понимаю под словом ускорение. Предположим что цена фьючерса это объект, который движется, значение цены, этого объекта это скорость его движения. Скорость то возрастает, то снижается. Рост цены означает, что объект ускоряется, снижение цены означает, что объект замедляется. Скользящая средняя служит сглаживающим параметром изменения скорости движения. Сглаживающий параметр необходим, поскольку в изменениях цены очень много шума. Таким образом, получается, что скорость движения нашего объекта это скользящая средняя. Изменение скорости движения - это ускорение. Как же получить значение ускорения скользящей средней? Из текущего значения скользящей средней вычитаем предыдущее значение скользящей средней, таким образом, у нас получается значение ускорения за выбранный промежуток времени. Если выбран минутный график, то получим ускорение скользящей средней за 1 минуту.  Такой параметр сам по себе малоинформативный, и что-то стоящее из него получить врятли выйдет. Вот что мы сделаем дальше.  Возьмем и посчитаем ускорение к предыдущей минуте, обозначив -1, потом к предпред идущей минуте, обозначим -2, потом к -3 минуте, -4 минуте и так далее, для примера до -10 минуты, после суммируем значения 10 ускорений к каждой из выбранных минут. Как мы далее увидим, такой подход  дает неплохой результат.  
Подведем небольшой итог.  
В результате у нас получится торговый робот, в котором есть два настраиваемых параметра это период расчета скользящей средней и период расчета ускорения скользящей средней. Как выбрать эти параметры, и при каких условиях осуществляется вход в позицию  и выход из нее обсудим чуть позже.

С начала мы в общих чертах рассмотрим работу готового торгового робота и сразу запустим его в QUIK. Посмотрим общий принцип его работы, разберем саму суть приятия решений на вход и выход из позиции. Далее понимая, что нам нужно получить, начнем разбирать все действия по порядку, которые необходимо выполнить для запуска в торговлю робота.  
Открываем редактор кода SciTE, у меня уже открыты все три скрипта LUA из папки SMA_DIFF_RTS. Скрипт DIFF_SMA расположен в папке Luaindicators. 

Первый скрипт SMA_DIFF_RTS  - это скрипт торгового робота, его мы будем запускать в QUIK, в нем будет рассчитывать параметры для открытия позиции, этот скрипт будет отправлять заявки в торговую систему QUIK. 
Второй скрипт SMA_DIFF_RTS_OPT – это скрипт будем использовать  для тестирования нашего алгоритма на исторических данных, к нему мы вернемся позже.  
Третий скрипт DIFF_SMA – это скрипт графика индикатора ускорения скользящей средней. График индикатора будем строить в окне графика цены торгуемого инструмента, в нашем случае торговым инструментом будет фьючерс на индекс РТС RIU0. 
 
Далее, откроем терминал QUIK. И запустим нашего робота. 

У меня уже внесены некоторые настройки, открыта таблица "Текущие торги" и стакан котировок. 

Это ознакомительная часть курса, что бы просмотреть полный курс, пожалуйста оплатите подписку, подписка действует 2 года. Помимо доступа к полному тексту курса, предоставляются все коды скриптов и вспомогательные файлы. Первые три раздела предоставляются бесплатно в полном объеме. Всем кто ранее покупал коды скриптов доступ будет предоставлен бесплатно, пожалуйста пришлите запрос с Email на который Вам были направлены коды.