Делаю сложные задачи простыми решениями

Ерем Шахбазян Erem01

Рейтинг: 8 194
Верифицирован через Сбер ID
Всего отзывов: 12 1
Профессионализм: 9 Коммуникация: 9
Выполнил заданий: 14
  • Активность:
  • Работ в портфолио: 17
  • Типовых услуг: 7
  • Работ на продажу: 0
  • Возраст: 21 год
  • Стаж работы: 4 года
  • Зарегистрирован: 25.11.2025
  • Образование: Cпециалитет
  • Юридический статус:Самозанятый
  • Стоимость услуг (руб): 600 за час 80 000 за месяц
Был на сайте:

Торговый терминал с GUI: автоматизация торговли на Bybit, MOEX (Alor) и QUIK с сеточными стратегиями и риск-менеджментом

Используемые навыки:

Описание

Клиент торговал одновременно на нескольких площадках — Bybit, Московской бирже через Alor и через терминал QUIK. Ручное управление съедало время: приходилось переключаться между платформами, вручную выставлять сеточные ордера, отслеживать исполнение и контролировать риски. При этом ошибки в боевой торговле стоят дорого — речь идёт о реальных деньгах и реальных позициях.
Задача — разработать единый десктопный терминал, который объединяет все торговые площадки в одном интерфейсе, автоматизирует сеточные стратегии и лимитные ордера, и при этом построен на принципе "безопасность важнее удобства". Никаких скрытых fallback'ов в симуляцию, никаких автоподключений к боевому счёту, никакой торговли без явного подтверждения оператора.

Решение

Разработал терминал на Python 3.11 с графическим интерфейсом на PySide6. Архитектурно отделил каждую биржу в самостоятельный модуль с единым API, что позволило поддерживать принципиально разные подключения в одном приложении:
• Bybit — интеграция через официальный API с раздельной работой на testnet и mainnet. При ошибках подключения пользователь видит реальную причину (401, 403, превышение лимитов запросов), а не абстрактное "что-то пошло не так".
• MOEX — подключение через Alor OpenAPI с refresh-токенами и работой по портфелю. Поддержка деривативных инструментов через нотацию CODE@BOARD.
• QUIK — подключение через собственный QLua-мост: написал Lua-скрипт, который работает внутри терминала QUIK и обменивается данными с приложением через общую папку. Heartbeat-механизм отслеживает живость моста.
• Demo-режим — отдельная явная биржа для тестирования стратегий, а не скрытая заглушка.
Реализовал торговые модули: GridBot для сеточной торговли с автоматическим выставлением уровней и LadderDrive для управления лимитными ордерами вручную с шагом. Цены и объёмы нормализуются под tickSize и qtyStep каждого конкретного инструмента — без этого биржа просто отклоняет заявки.
Особое внимание уделил сверке состояний: судьба заявки определяется по orderId через историю ордеров, а не через её исчезновение из списка открытых. Это исключает ложные срабатывания, когда отменённая заявка ошибочно считается исполненной.
Слой риск-менеджмента включает: лимиты по номиналу одной заявки, лимит на размер сетки, ограничение количества открытых ордеров, максимальный размер позиции, счётчик ошибок подряд для аварийной остановки. Добавил кнопку STOP ALL — она снимает все заявки и останавливает активные стратегии через API подключенной площадки.
Для боевой торговли реализовал двухэтапное подтверждение: подключение к mainnet требует отдельного действия в GUI, а сама торговля разрешается оператором вручную на каждую сессию. Автоподключение при запуске отключено по умолчанию.

Результат

Получился рабочий торговый терминал, который клиент использует на боевых счетах. Все три площадки доступны из одного окна, сеточные стратегии работают автономно, состояние активных заявок и позиций видно в реальном времени. Логирование ведётся в трёх каналах (консоль, GUI, файл) — это критично, когда нужно разобрать что произошло в конкретную минуту.
Ключевое — клиент получил инструмент, которому можно доверить реальные деньги: ни одной автоматической торговой операции без явного подтверждения, прозрачные ошибки подключения, корректная сверка ордеров, аварийная остановка одной кнопкой.
Архитектура спроектирована так, чтобы легко добавлять новые площадки — каждая биржа изолирована и реализует общий интерфейс. Если в будущем понадобится подключить ещё одного брокера, это будет отдельный модуль без переписывания торговой логики.

Презентация проекта

Снимок_экрана_2026_05_21_084717.png
Снимок_экрана_2026_05_21_084737.png
Снимок_экрана_2026_05_21_084755.png

Оценили проект:

0