Александр Зуев
BybitBot - Настольное приложение для управления торговлей бессрочными фьючерсами
Александр Зуев
#Разработка программного обеспечения

BybitBot - Настольное приложение для управления торговлей бессрочными фьючерсами

15 
Александр Зуев Россия, Краснодар
Поделиться: 0 0 0
BybitBot - Настольное приложение для управления торговлей бессрочными фьючерсами
Бюджет

90 000

Сфера

Информационные технологии и интернет

Сдано

Май 2024

Задача

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

Ключевые требования:

- единый терминал для работы с несколькими биржами и произвольным количеством аккаунтов;

- выставление, доливка, частичное и полное закрытие позиций сразу на всех активных счетах одним действием с автоматическим расчетом объема как доли от баланса каждого счета;

- управление тейк-профитом и стоп-лоссом как по абсолютной цене, так и по проценту доходности с мгновенным взаимным пересчетом;

- обновление балансов и позиций в режиме реального времени;

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

Решение

Реализовано настольное приложение на C# и WPF с собственным слоем абстракции над биржами. В основе лежит единый контракт работы с биржей, от которого наследуются конкретные адаптеры Bybit и MEXC. Вся бизнес-логика терминала оперирует этим контрактом и не знает деталей конкретного API, поэтому подключение новой биржи сводится к написанию одного изолированного адаптера без изменения остального кода.

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

Данные обновляются непрерывным асинхронным циклом опроса с защитой от наложения итераций. Управление риском вынесено в отдельный модуль, где тейк-профит и стоп-лосс задаются и в цене, и в проценте ROI с двусторонним пересчетом на лету. Блок отчетности постранично выгружает историю закрытых сделок за год и формирует сводку прибыли по каждому счету с автоматическим расчетом комиссии. Дополнительно встроена защита приложения от несанкционированного запуска через привязку к оборудованию и удаленный механизм отзыва доступа.

Результат

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

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

  • Поддержаны две биржи через единый интерфейс, подключение следующей локализовано в одном адаптере и не затрагивает остальной код.

  • История прибыли собирается на глубину до 12 месяцев и автоматически сводится в отчет по периодам с расчетом комиссионного вознаграждения.

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

  • Приложение защищено от несанкционированного запуска привязкой к оборудованию и удаленным отзывом доступа.

https://github.com/alexxxdevelop/BybitBot

Стек технологий

  • С# С# Язык программирования

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Оставить заявку