ПРОЕКТ

Программное обеспечение для алгоритмической торговли с контролируемой автоматизацией

Разработка индивидуального ПО, Рыночные данные в реальном времени, Разработка торговых стратегий, Бэктестинг и оптимизация, Автоматическое исполнение заявок, Мониторинг рисков, Торговая отчётность

  • Сфера: Управление инвестициями
  • Болгария Местоположение: Болгария
  • Срок реализации: 16 недели
  • Технологии: Python, JavaScript / TypeScript (Node.js)
4+ месяца

Этот клиент - инвестиционная компания из Болгарии, для которой ручное принятие рыночных решений занимало много времени и не отличалось последовательностью. Требовалось ПО, принимающее рыночные данные в реальном времени или исторические данные и применяющее настраиваемые торговые стратегии. Оно возвращает торговой команде компании сигналы, результаты тестирования и автоматические заявки. Отчёты позволяют анализировать результаты, а создание стратегий, анализ и исполнение объединены в одну контролируемую систему.

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

Проблема

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

Решение

Решение стало единой торговой системой для управления настраиваемыми стратегиями, рыночными данными и автоматическими заявками. Оно также включает контроль рисков и отчётность.

Результат

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

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

Клиент - инвестиционная компания из Болгарии. Она работает с рыночными данными и торговыми стратегиями, требующими анализа, тестирования, исполнения и мониторинга.

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

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

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

Клиент запросил

  1. Настройку стратегий с использованием индикаторов, правил, машинного обучения или ценового действия
  2. Использование рыночных и связанных данных в реальном времени или исторических данных
  3. Генерацию сигналов, точек входа и выхода, а также торговых решений
  4. Исполнение и управление заявками через подключения к брокерам или биржам

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

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

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

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

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

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

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

Можно просматривать историю торговли, P&L и максимальную просадку. Система экспортирует эти данные в JSON, Excel или PDF.

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

  • Настраиваемый редактор торговых стратегий
  • Рыночные данные в реальном времени и исторические данные
  • Настройка технических индикаторов и правил
  • Генерация сигналов покупки и продажи
  • Бэктестинг и оптимизация стратегий
  • Автоматическое исполнение заявок
  • Мониторинг лимитов риска и исполнения
  • Мониторинг открытых позиций и эффективности
  • Торговые журналы и отчёты
  • Экспорт P&L, JSON, Excel и PDF

Можно добавить

+ Анализ новостей и социальных сетей + Корпоративную отчётность и фундаментальные данные + Стратегии на основе машинного обучения + Форвардное или демонстрационное тестирование + Оповещения TradingView в Telegram + Дополнительные подключения к брокерам или биржам

Кто ещё может использовать это решение

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

Компания, торгующая акциями и индексами

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

Компания, торгующая на индийском рынке

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

Компания, занимающаяся количественной торговлей

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

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

Python

Обработка стратегий и данных

Python используется для анализа рыночных данных, логики стратегий, тестирования и отчётности.

JavaScript / TypeScript (Node.js)

Торговый интерфейс и сервисы

JavaScript и TypeScript используются для интерфейса стратегий и общих торговых сервисов.

ccxt

Подключение к API бирж

ccxt (библиотека, соединяющая торговое ПО с биржами) предоставляет подключения к биржам для автоматической торговли.

vectorbt

Масштабный бэктестинг стратегий

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

@tradejs/core

Создание стратегий и вспомогательные инструменты

@tradejs/core (работающая в браузере библиотека для торговли и бэктестинга) поддерживает настройку стратегий и общие торговые функции.

pandas

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

pandas предоставляет структуры данных для анализа рыночных данных и результатов торговли.

numpy

Вычисления с массивами

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

scipy

Научные вычисления

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

Excel, JSON and PDF

Форматы экспорта отчётов

Эти форматы позволяют экспортировать из системы P&L, торговые журналы, результаты бэктестинга и отчёты.

Интеграции

Broker APIs and exchange APIs

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

Trading platforms

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

NSE and BSE

Система использует nse и bse Python API, когда требуется доступ к данным индийского фондового рынка.

Polygon.io

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

Excel, JSON and PDF

Система экспортирует историю торговли, P&L, просадку, результаты бэктестинга и отчёты в следующих форматах.

Результат

Стратегии остаются связанными с рыночными данными

На экране настройки стратегии объединены выбор рынка, индикаторы и правила. Компания настраивает стратегию перед тестированием или анализом в реальном времени.

Торговый движок применяет настроенные правила к историческим данным или рыночным данным в реальном времени и подготавливает стратегию к генерации сигналов.

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

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

Настройка стратегий и рынка

На этом экране представлены функции
Создание торговых алгоритмов Анализ технических индикаторов Бэктестинг торговых стратегий

Сигналы в реальном времени видны в одном торговом окне

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

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

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

  1. В обзоре рынка в реальном времени отображаются рыночные данные и текущие торговые сигналы.
  2. На панели технического анализа показываются данные индикаторов и точки входа и выхода.
  3. Панель обобщает открытые позиции и предоставляет информацию об оповещениях.
Панель рынка и сигналов в реальном времени

Панель рынка и сигналов в реальном времени

На этом экране представлены функции
Использование потоков данных в реальном времени Анализ рынка в реальном времени Анализ технических индикаторов Генерация торговых сигналов Отображение торговых данных

Стратегии тестируются до принятия решений об исполнении

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

Инструменты оптимизации помогают торговой команде оценить влияние параметров стратегии на P&L и максимальную просадку до использования стратегии с данными в реальном времени.

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

  1. Выбор периода исторического тестирования задаёт период тестирования и рыночные данные.
  2. Модуль бэктестинга рассчитывает результаты стратегии, сделки и P&L.
  3. Модуль оптимизации сравнивает результаты параметров и представляет их в таблицах и графиках.
  • Для бэктестинга можно использовать vectorbt (библиотеку для тестирования торговых стратегий), backtesting, bt или @tradejs/core.
Примечание: Исторические результаты описывают работу стратегии на выбранных данных, но не определяют будущую эффективность торговли.
Результаты бэктестинга и оптимизации

Результаты бэктестинга и оптимизации

На этом экране представлены функции
Бэктестинг торговых стратегий Оптимизация торговых алгоритмов Расчёт максимальной просадки

Заявки и контроль рисков остаются под наблюдением

На экране мониторинга исполнения в одном месте отображаются статусы заявок, лимиты риска и журналы исполнения. Показываются исполненные, изменённые и отменённые заявки, а также текущая торговая активность.

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

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

  1. Модуль исполнения отправляет заявки и управляет ими через настроенное торговое подключение.
  2. В таблице статусов заявок отображаются исполненные, изменённые и отменённые заявки.
  3. Модули мониторинга показывают лимиты риска, журналы в реальном времени и показатели эффективности.
Мониторинг заявок, рисков и исполнения

Мониторинг заявок, рисков и исполнения

На этом экране представлены функции
Исполнение торговли в реальном времени Исполнение рыночных заявок Мониторинг управления рисками

Торговые записи готовы к просмотру и экспорту

На экране отчётов и истории торговли обрабатываются исполненные сделки, торговые журналы и P&L. Аналитики, руководители и бухгалтеры могут просматривать одну и ту же торговую запись.

Функции экспорта предоставляют структурированную информацию для дальнейшего анализа и финансовой отчётности. Система сохраняет выбранные данные в JSON, Excel или PDF.

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

  1. Выбор отчёта загружает историю торговли, исполненные сделки и данные P&L.
  2. Модуль отчётности создаёт отчёты по бэктестингу и реальному времени из торговых записей.
  3. Модули экспорта сохраняют выбранные данные в JSON, Excel или PDF.
  • pyexcel-io (библиотека для чтения и записи данных электронных таблиц) поддерживает структурированный экспорт таблиц.
  • jspdf (библиотека JavaScript для создания PDF-документов) поддерживает генерацию PDF-отчётов.
Отчёты и история торговли

Отчёты и история торговли

На этом экране представлены функции
Генерация отчётов для анализа Экспорт P&L в Excel Расчёт максимальной просадки Регистрация торговой активности

Что даёт решение

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

  • Настраивать торговые стратегии под свои индикаторы, правила, рынки и периоды
  • Анализировать рыночные данные в реальном времени и исторические данные в одной системе
  • Генерировать сигналы, точки входа и выхода, а также торговые решения
  • Тестировать и оптимизировать стратегии до торговли в реальном времени
  • Управлять автоматическими заявками через подключения к брокерам, биржам или платформам
  • Отслеживать риски, позиции, журналы, эффективность и отчёты

Смогли бы готовые системы выполнить эту задачу?

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

Что нужно клиенту Брокерские платформы Kite, MetaTrader 5, thinkorswim Инструменты автоматической торговли Galileo FX, Abbado Индивидуальное решение
Настраивать индивидуальные торговые стратегии частично —
Использовать данные рынка в реальном времени или исторические данные частично
Генерировать сигналы и торговые решения частично
Исполнять заявки через API частично
Соответствовать правилам клиента: этапам, ролям и отчётам — —
Все этапы в одном месте — —
Отсутствие ручных действий между программами — —

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

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

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

В итоге

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

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

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