Author Archive

Автор: Николай Камынин

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

Робот на встроенном языке потенциально может быть проще и надежнее в эксплуатации перед вариантом DDE+Trans2QuikAPI + Внешняя программа.

Однако, изначально язык QPILE имеет ряд существенных ограничений, которые затрудняют создание полноценных и универсальных торговых роботов.

Устранению этих ограничений я уделил первоначальное внимание.

К этим ограничениям я отнес следующее.

Отсутствие интерфейса связи с пользователем,

ограниченная глубина исторических данных (не более 3000 свечей),

ограниченное число инструментов в одном портфеле ( обычно это один инструмент).

Думаю, мне удалось устранить эти ограничения следующим образом.

Интерфейс связи с роботом

Язык QPILE не имеет средств для организации диалога с пользователем , поэтому первой реализованной задачей стала разработка интерфейса с пользователем.

Данный интерфейс реализован на основе программного обеспечения AutoIt и файловой системы.

Интерфейс обеспечивает автоматический запуск торгового терминала QUIK и передачу параметров роботу.

Для передачи параметров роботу используются текстовые файлы,

в которых по определенным правилам записываются любые параметры для робота,

а также приводится список торгуемых инструментов и индикаторов.

Количество торгуемых инструментов ограничивается лишь скоростью исполнения программы.

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

Таким образом, чтобы перестроить робота на другие инструменты и индикаторы,

требуется лишь переписать текстовый файл настройки обычным текстовым редактором.

База истории сделок

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

Данная задача решена следующим образом.

Робот автоматически определяет временной интервал для текущего торгуемого инструмента .

Для каждого инструмента и каждого временного интервала графика на диске создается файл истории.

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

Известно, что сервер QUIK обеспечивает получение в торговом терминале не более 3000 свечей графика для любого временного интервала. Для интервала в 1 минуту глубина истории составляет примерно 6 дней.

Реализованный метод накопления истории позволяет снять это ограничение и получить исторические данные любой глубины.

Я в своих роботах основными временными масштабами принял 1 минуту и день, но можно выбрать любые из доступных в торговом терминале QUIK.

Затраты времени на первоначальный ввод 3000 свечей составляет примерно 15 секунд.

Они вводятся однократно.

При очередном запуске торгового терминала ,  в базу лишь дописываются новые значения.

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

Таким образом, удалось существенно расширить возможности создаваемых роботов на основе торгового терминала QUIK и встроенного в него языка QPILE:

Снять ограничение  числа торгуемых инструментов в одном портфеле;

Создать интерфейс связи с роботом;

Снять ограничения по объему исторических данных.

В следующей заметке  я уделю внимание решению проблем ,

связанных с торговыми операциями и

их учету для дальнейшего анализа эффективности торговых стратегий.

Tags: , ,