pmus

Архитектура торгового робота

    • 22 января 2017, 01:07
    • |
    • pmus
  • Еще

Архитектура торгового робота

Под катом скучное и неинтересное описание устройства торговой программы.

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

API имеет дочерние структуры: GUI для работы с графическим интерфейсом, Configloader для сохранения данных конфигурации программы, Dataparser для разбора и упорядовачивания поступающих данных, Plugins для загрузки торговых алгоритмов, Csvrec для сохранения данных в для Excel, и (пока нереализованный) JSON для управления через RESTful API (вместо всяких DDE).

Модуль GUI — это вещь в себе, он загружает окна, выводит на экран текст и графики, определяет, что происходит при нажатии кнопок и так далее. Торговый алгоритм-плагин при необходимости обращается к нему, чтобы занять для себя какую-нибудь кнопку в интерфейсе или вывести что-нибудь на экран.

Configloader при запуске загружает сохраненные данные или берет конфигурацию из командной строки

Dataparser — сложный асинхронный модуль, имеющий несколько частей, главные — Stock и Datasource.

Stock содержит данные, включая таблицы с ордерами, сделки стаканы, позиции и все-все, что связано с торговой информацией. Именно сюда Dataparser складывает данные, полученные и разобранные в правильный вид. Сырые данные он получает из Datasource — модуля, который следит и поддерживает соединение с сервером брокера. Connector — это модуль более низкого уровня, получающий данные от Transaq XML Connector и отдающий XML-данные выше по цепочке в Dataparser, который разберет и сложит их в Stock. Этот же модуль отправляет команды на исполнение сделок брокеру.

Plugins — это модуль, запускающий файлы торговых систем, оформленных как .py файлы, то есть написанные на Python программы.
Каждый плагин при запуске получает объект API, через который может обращаться к другим модулям программы. Например, выводить данные через api.gui, узнавать состояние рынка, подписываться на торговые инструменты через api.stock.

Модуль работы с JSON был запланирован, но не реализован из-за того, что пока в нем не было необходимости. Добавить его не составляет большого труда, но на данный момент с импортом-экспортом данных оказалось удобней работать через плагин.

CSVrec записывает таблицы с данными в CSV и используется для создания моментальных снимков состояния любой таблицы для последующего анализа (например, чтобы сделать снимок состояния «стакана», достаточно два раз щелкнуть по нему). Также CSVrec можно использовать для экспорта данных в другие программы, например, в TSLab.


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

1.6К | ★7
6 комментариев
Stakan :)?
avatar
Hedgehog, от TXML Connector приходят Quotes и Quotations, я устал путаться в них. А Stakan — сразу понятно, что данные из стакана заявок. =)
avatar
avatar
Конкурентное преимущество соперников этого робота в одной картинке. Неплохо :)
avatar
bstone, To finish first, first you have to finish.
avatar
pmus, доброго времени суток! Структура выглядит завораживающе-строшно :) Так уж получилось — Пайтон мой первый язык… сейчас осваиваю. Ставлю задачу уйти от ручного труда и написать робота. Тестировать буду в Quantopian, а использовать в Квике. В связи с этим вопрос как к опытному питонисту: как должна выглядеть минимальная структура(из каких модулей должна состоять)?.. что с чем должно взаимодействовать, «чтобы поехало»… может посоветуете доп. матералы…
avatar

Читайте на SMART-LAB:
Фото
Опять о дефолтах ВДО
Только закончились Агродом и СибАвтоТранс, тут же начался СОБИ-Лизинг. Вчера ЛК сообщила представителю владельцев облигаций, что полноценно...
Цены в России снизились впервые с конца августа прошлого года
С 28 апреля по 4 мая в России впервые в этом году зафиксирована недельная дефляция. По оценке Росстата, индекс потребительских цен снизился на...
Фото
DCA. Вход в позицию внизу графика
Сегодня вышла лекция про DCA (Dollar Cost Averaging), в переводе с английского — стратегия усреднения стоимости. Это способ инвестирования в...
Фото
Сети. Кто сейчас самый дешевый? Сводный пост по сетевым компаниям по отчетам РСБУ за Q1 26г.
Введение Россети Центр Россети Ленэнерго Россети Московский регион Россети Волга Сводные таблицы Введение Все...

теги блога pmus

....все тэги



UPDONW
Новый дизайн