В данной заметке кратко расскажу мой способ строительства простых, но надежных и быстродействующих роботов на основе торгового терминала QUIK
Данный способ разработан на основе анализа и реализации всех возможных вариантов создания автоматических систем торговли на основе торгового терминала QUIK
Постановка задачи:
Разработать базовую систему, которая обеспечит автоматизацию торговли множеством инструментов, которые либо определены в плане торговли, либо уже существуют в портфеле клиента, либо получены по заявкам человека на множестве счетов.
Считается , что задержка в принятии решения до 10 секунд не имеет значения.
Описание способа:
Данный способ состоит в том, что для создания робота используются три языка программирования и программа технического анализа Амиброкер.
Выбор программы тех анализа не является критичным.
Можно взять любую из любимых или создать внешнее приложение.
В данном способе я отказался от какого-либо экспорта таблиц и не использую API для передачи транзакций.
При этом существенно упрощается связка программ, отсутствует необходимость специальной настройки таблиц.
В целом созданный программный комплекс включает следующее программное обеспечение.
Программа технического анализа ( например, Амиброкер ).
В амиброкере на встроенном скриптовом языке AFL реализуется алгоритм генерации сигналов.
Амиброкер имеет рад системных недостатков, что приводит к потере производительности при обработке больших объемов истории и большого числа инструментов.
Для повышения быстродействия и применения различных алгоритмов вычислительной математики ( например, нейронные сети) , я подключаю к Амиброкеру библиотеки (dll), которые разрабатываю с использованием С++.
Таким образом, программа тех анализа используется для разработки и исследования торговых стратегий.
Данные истории сделок в Амиброкер получаем встроенными в QUIK средствами экспорта данных в программы тех анализа. Никаких специальных поделок для этого не требуется.
~~~~~~~~~~~~~~~~~~~~~~~
Cледующая составная часть включает программу на QPILE, которая загружается в торговый терминал QUIK и исполняется периодически с интервалом 1 секунда плюс время ее исполнения.
Дело в том, что программа на QPILE имеет прямой доступ ко всем таблицам торгового терминала QUIK, поэтому нет необходимости создавать какой-либо экспорт информации во внешнее приложение.
Программа на QPILE реализует контроль связи с сервером, выставление заявок, контроль позиции, управление риском.
Этот модуль является универсальным и практически не требует изменений для различных торговых стратегий.
Иначе говоря, программа на QPILE реализует все, кроме торгового алгоритма, который реализуется внешним приложением, в данном случае Амиброкером.
Кроме того, в настоящее время в качестве внешнего генератора торговых сигналов может применяться не только программа теханализа на этом же компьютере, но и любая другая программа, установленная на удаленном компьютере.
В частности возможна рассылка сигналов многим торговым терминалам.
~~~~~~~~~~~~~~~~~~~~~~~~~
Взаимодействие программы QPILE и программы тех анализа происходит через файл сообщений.
Программа тех анализа передает код инструмента , сигнал и его время.
Задержка обмена через файл не превышает десятка миллисекунд и не влияет на быстродействие системы.