ПРОЕКТ

Автоматизация торговли с помощью торгового ПО на Python

Разработка индивидуального ПО, Автоматизация торговли на Python, Интеграция с брокерским API, Торговые данные Excel, Бэктестинг стратегий, Автоматизация торговли опционами, Торговые панели управления

  • Отрасль: Финансовая торговля
  • Польша Местоположение: Польша
  • Срок выполнения: 16 недель
  • Технологии: Python, ccxt
4+ месяцев

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

Краткое содержание

Проблема

Компания тратит время на ручной анализ рынка, управление таблицами и отправку заявок.

Решение

Решение стало торговым ПО на Python, объединяющим рыночные данные, логику стратегий, таблицы и брокерские счета.

Результат

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

История клиента

Клиент - компания из Польши, занимающаяся алгоритмической торговлей. Она использует стратегии в реальном времени, протестированные и высокочастотные стратегии через брокерские API, а также торгует акциями и опционами.

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

Цель была простой: автоматизировать торговый процесс на Python, при необходимости подключить Interactive Brokers или Shoonya Broker Account и проверять стратегии с помощью бэктестинга. Компании также требовалась возможность загружать данные Excel в процесс и получать их обратно после исполнения в виде обновленных торговых данных.

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

Клиент хотел

  1. Проверять стратегии с помощью бэктестинга и получать необходимое руководство или документацию.
  2. Создать автоматизацию торговли на Python, при необходимости используя Java или C++ в качестве альтернатив.
  3. При необходимости подключить Interactive Brokers или Shoonya Broker Account.
  4. Считывать торговые данные из Excel и обновлять их после исполнения.

Почему готовое решение не подошло

Готовые брокерские платформы поддерживают покупку, продажу и управление финансовыми активами, однако, судя по их описаниям, они не объединяют табличные входные данные компании, настраиваемую логику стратегий, бэктестинг и исполнение через брокера в едином индивидуальном процессе. Решение создано для объединения этих компонентов и согласования с правилами компании, обеспечивая самостоятельную работу с помощью документации и обучения.

Обзор проекта

Решение построено вокруг торгового приложения на Python, объединяющего рыночные данные, логику стратегий, данные из таблиц и брокерские счета. Все ключевые этапы собраны в одном месте: подготовка данных, анализ свечей, проверка стратегии, исполнение заявок и отслеживание позиций.

Для управления торговыми данными было создано рабочее пространство Excel. Оно считывает табличные данные, отображает данные по свечам и отмечает обновленные торговые данные, созданные после исполнения заявок.

Торговый экран объединяет выбираемые интервалы, параметры стратегий и критерии покупки и продажи. Статус подключения к брокеру, а также типы рыночных, лимитных и стоп-заявок доступны на одном экране.

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

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

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

Реализованные ключевые функции

  • Автоматизированная торговля через брокерские счета
  • Рыночные, лимитные и стоп-заявки
  • Получение данных по свечам с выбираемыми интервалами
  • Настраиваемые стратегии и критерии покупки и продажи
  • Импорт и обновление торговых данных Excel
  • Бэктестинг стратегий на исторических данных по свечам
  • Мониторинг заявок, позиций и уведомлений в реальном времени
  • Статус подключения брокерского счета
  • Автоматизация торговли на Python

Дополнительные функции

+ Откаты Фибоначчи + Локальная обработка данных + Пользовательские API-запросы + Сглаживание рынка в реальном времени

Кому еще подойдет это решение

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

Отдел торговли акциями

Задача Автоматизирует покупку и продажу акций через брокерские счета.
Как помогает решение Решение объединяет рыночные данные и торговые правила с брокерскими заявками и мониторингом.

Команда по торговле опционами

Задача Запускает настраиваемые стратегии торговли опционами с заданными параметрами и критериями покупки и продажи.
Как помогает решение Решение объединяет настройку стратегий, исполнение через брокера и бэктестинг в одном приложении.

Инвестиционная компания

Задача Заменяет управление торговыми данными в таблицах торговыми роботами на Python.
Как помогает решение Решение считывает данные из Excel, обновляет торговые данные и отслеживает исполнения.

Технологический стек

Python

Язык автоматизации торговли

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

ccxt

API-подключения для торговли

ccxt - библиотека, подключающая торговое ПО к API бирж.

hyperliquid-python-sdk

Торговля через API Hyperliquid

hyperliquid-python-sdk подключает торговую логику на Python к API Hyperliquid.

python-calamine

Чтение файлов Excel

python-calamine считывает файлы Excel и таблиц для получения торговых данных.

fastexcel

Быстрое чтение Excel

fastexcel считывает данные Excel для рабочего пространства торговых данных.

vectorbt

Бэктестинг стратегий

vectorbt анализирует и тестирует торговые стратегии в большом масштабе.

backtesting

Тестирование исторических стратегий

backtesting запускает торговые стратегии на основе исторических данных по свечам.

bt

Гибкий бэктестинг

bt предоставляет фреймворк на Python для тестирования торговых стратегий.

Excel / XLSX

Файлы торговых данных

Файлы Excel передают торговые данные и получают обратно обновленные торговые данные.

Candle data

Анализ рыночных данных

Данные по свечам поддерживают анализ рынка по интервалам и тестирование стратегий.

Интеграции

Interactive Brokers

ПО объединяет торговые стратегии и заявки с платформой или API Interactive Brokers.

Shoonya Broker Account

При необходимости ПО передает торговые операции через Shoonya Broker Account.

Excel

Файлы Excel передают торговые данные в приложение и получают обновленные данные обратно после исполнения.

Brokerage APIs

Брокерские API передают рыночные, лимитные и стоп-заявки, а также обновления торговли.

Результат

Торговые правила проверены и готовы к исполнению

Экран управления торговлей объединяет параметры стратегии, критерии покупки и продажи и выбранный тип заявки вместе со статусом брокерского подключения. Так компания может подготовить автоматизированные торговые правила в одном месте.

Приложение поддерживает рыночные, лимитные и стоп-заявки, а также выбираемый интервал в торговом процессе.

Как это работает

  1. ПО отображает торговый интервал, параметры стратегии, критерии покупки и продажи, а также статус брокерского счета.
  2. Модуль стратегии применяет выбранные торговые правила и тип заявки.
  3. Брокерское подключение отправляет рыночную, лимитную или стоп-заявку и возвращает данные об исполнении.
  • Задайте временной фильтр и интервал данных.
  • При необходимости используйте настраиваемые стратегии торговли опционами.
Примечание: Интерфейс отображает статус брокера до исполнения заявки.
Управление торговлей и настройка интервала

Управление торговлей и настройка интервала

Функции этого экрана
Задать фильтр торгового времени Задать интервал данных Разрабатывать торговые алгоритмы Автоматизированная стратегия торговли опционами

Данные по свечам дают стратегии четкое представление о рынке

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

Это позволяет проверить полученные данные по свечам до исполнения торговых решений.

Как это работает

  1. Модуль данных по свечам получает данные по свечам выбранных токенов или инструментов.
  2. ПО отображает выбранный временной интервал и данные последних 12 свечей в таблице.
  3. Область торгового анализа отображает данные по свечам для проверки.
Рыночные данные и анализ свечей

Рыночные данные и анализ свечей

Функции этого экрана
Получить данные по свечам

Заявки и позиции видны во время торговли

Представление мониторинга в реальном времени объединяет отправленные заявки, открытые позиции, статус исполнения и торговые уведомления на одном экране. Журнал действий сохраняет заявки на покупку и продажу, исполненные сделки с опционами и обновления в реальном времени.

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

Как это работает

  1. Экран мониторинга отображает заявки на покупку и продажу, а также открытые позиции.
  2. Область исполнения отображает исполненные сделки с опционами и обновления в реальном времени.
  3. Журнал действий сохраняет торговые уведомления и торговые журналы.
Отслеживание заявок и позиций в реальном времени

Отслеживание заявок и позиций в реальном времени

Табличные данные возвращаются в обновленном виде

Рабочее пространство Excel объединяет табличные данные исходного файла и обновленные торговые данные . Это поддерживает существующий табличный процесс компании, объединяя входные данные со свечами и исполнением.

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

Как это работает

  1. Рабочее пространство Excel считывает данные файла и отображает их в таблице табличных данных.
  2. Приложение объединяет табличные входные данные с используемыми в торговле данными по свечам.
  3. Рабочее пространство отображает обновленные данные Excel и торговые данные после исполнения.
Рабочее пространство торговых данных Excel

Рабочее пространство торговых данных Excel

Функции этого экрана
Обновить данные по акциям

Бэктестинг помогает безопаснее проверять стратегию

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

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

Как это работает

  1. Модуль бэктестинга загружает выбранные параметры стратегии и исторические данные по свечам.
  2. Библиотека бэктестинга запускает торговую стратегию на основе исторических данных.
  3. Таблица результатов и область сравнения отображают результаты бэктестинга.
  • Сравнивайте результаты стратегий до начала торговли в реальном времени.
  • Просматривайте параметры и исторические данные вместе.
Результаты бэктестинга стратегии

Результаты бэктестинга стратегии

Функции этого экрана
Тестировать торговую стратегию

Что позволяет решение

С помощью этого решения торговая компания может:

  • Автоматизировать покупку и продажу через подключенные брокерские счета.
  • Получать данные по свечам с выбираемыми торговыми интервалами.
  • Считывать данные из Excel и получать обновленные торговые данные после исполнения.
  • Тестировать стратегии на исторических данных по свечам до начала торговли в реальном времени.
  • Отслеживать заявки, позиции, уведомления и статус исполнения.
  • Управлять правилами торговли акциями и опционами в одном приложении.

Справились бы с задачей готовые системы?

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

Потребности клиента Брокерские платформы Kite, MetaTrader 5, thinkorswim Платформы алгоритмической торговли Galileo FX, Abbado, MetaTrader 5 Платформы торговли несколькими классами активов eToro, Dotbig platform, E*Trade Web Platform Индивидуальное решение
Проверка стратегий с помощью бэктестинга частично —
Создание автоматизации торговли на Python — — —
Подключение брокерских счетов и API —
Чтение и обновление данных Excel — — —
Соответствие собственным правилам клиента: этапы, роли, отчеты — — —
Все этапы в одном месте — — —
Отсутствие ручных действий между программами — частично —

На основе общедоступных описаний продуктов и их категорий.

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

Этой компании требовалось собственное ПО, поскольку табличные входные данные, проверка стратегии, исполнение через брокера и мониторинг должны были следовать ее собственным правилам в одном месте, с минимальным количеством ручных действий между программами.

Итоговый результат

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

ЧАСТЫЕ ВОПРОСЫ

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