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.7К | ★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:
Фото
ДОМ.РФ может увеличить прибыль за девять месяцев на 39%: прогноз Т-Инвестиций
30 октября $DOMRF опубликует результаты по международным стандартам финансовой отчетности (МСФО) за третий квартал 2026 года. Главный...
Фото
💡 Если ставка не спешит вниз
Ключевая ставка остаётся на уровне 14% с июля. По прогнозу аналитиков ВТБ Мои Инвестиции, к концу 2027 года она может снизиться до 12,25%....
Фото
⚡ Фонды FinEx: от заморозки к ликвидности. Как продать актив в БКС
В 2022 г. паи фондов FinEx для многих инвесторов превратились в замороженный актив без ясных перспектив. Торги этими ETF были остановлены, сами...
Фото
Банковский сектор сентябрь 2026 г. - рекордная прибыль, но рост все менее равномерный
Банки отчитались за сентябрь. Что интересного мы узнали?  За 12 месяцев прибыль сектора составляет уже 4,5 трлн руб. при прогнозе ЦБ 3,9–4,4...

теги блога pmus

....все тэги



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