Обзор
Компания тратила много времени на ручной анализ рынка, работу с электронными таблицами и размещение ордеров.
Решением стало торговое ПО на Python, объединяющее рыночные данные, логику стратегий, электронные таблицы и брокерские счета.
ПО разработано для сокращения ручной работы в торговле, повторной обработки данных и предотвратимых усилий по исполнению.
История клиента
Клиент - компания из Польши, занимающаяся алгоритмической торговлей. Она использует стратегии для торговли в реальном времени, бэктестинга и высокочастотной торговли через брокерские API, а также торгует акциями и опционами.
Команда обрабатывает данные свечей, торговые данные, а также ордера на покупку и продажу на нескольких брокерских счетах. Трейдерам и торговым компаниям необходимо заменить ручной анализ рынка, обработку торговых данных и размещение ордеров автоматизированными системами.
Запрос был простым: автоматизировать торговый процесс на Python, при необходимости подключить Interactive Brokers или Shoonya Broker Account и проверять стратегии с помощью бэктестинга. Компании также требовалось вводить данные Excel в процесс и получать обновлённые торговые данные после исполнения.
Решение было создано как набор связанных экранов для настройки интервалов, анализа свечей, мониторинга в реальном времени, работы с данными Excel и бэктестинга. Поля стратегий, типы ордеров, статус брокера и торговые журналы отображались в одном месте, чтобы компания могла управлять процессом в соответствии со своими правилами.
Клиент хотел
- Проверять стратегии с помощью бэктестинга и предоставлять необходимые инструкции или документацию.
- Создать автоматизацию торговли на Python, при необходимости предложив альтернативы на Java или C++.
- При необходимости подключить Interactive Brokers или Shoonya Broker Account.
- Считывать торговые данные из Excel и обновлять их после исполнения.
Почему готовое ПО не подошло
Готовые брокерские платформы обеспечивают покупку, продажу и управление финансовыми активами, но в их описаниях ввод данных из электронных таблиц, настраиваемая логика стратегий, бэктестинг и брокерское исполнение не объединены в единый кастомный процесс для этой компании. Решение было разработано, чтобы объединить эти компоненты и адаптировать их к правилам компании, одновременно обеспечив документацию и обучение для самостоятельного использования.
Обзор проекта
Решение было разработано вокруг торгового приложения на Python, объединяющего рыночные данные, логику стратегий, ввод из электронных таблиц и брокерские счета. Структура объединяет ключевые этапы в одном месте: подготовку данных, просмотр свечей, проверку стратегий, исполнение ордеров и мониторинг позиций.
Для обработки торговых данных была создана рабочая среда Excel. Она считывает данные из электронных таблиц, отображает данные свечей и отмечает обновлённые торговые данные, полученные после исполнения.
Торговый экран объединяет выбираемые интервалы, параметры стратегий и критерии покупки и продажи. На этом же экране доступны статус подключения к брокеру, а также рыночные, лимитные и стоп-ордера.
Приложение размещает ордера через поддерживаемые брокерские подключения и сохраняет информацию об исполнении для мониторинга.
Особое внимание было уделено проверке стратегий. На экране бэктестинга используются исторические данные свечей, параметры стратегий и таблицы результатов, чтобы компания могла сравнить стратегию до её применения в реальной торговле.
Система была спроектирована как набор модулей с возможностью добавления документации, инструкций по настройке, поддержки после поставки и дальнейших расширений, например локальной обработки или отладки на реальном рынке.
Реализованные ключевые функции
- Автоматизированная торговля через брокерские счета
- Рыночные, лимитные и стоп-ордера
- Получение данных свечей с выбираемыми интервалами
- Настраиваемые стратегии и критерии покупки/продажи
- Импорт и обновление торговых данных Excel
- Бэктестинг стратегий на исторических данных свечей
- Мониторинг ордеров, позиций и уведомлений в реальном времени
- Статус подключения брокерского счёта
- Автоматизация торговли на базе Python