Trading APP
53 219 UAHПроект: Liquidity Spectrum Pro
1. Цель проекта
Создать высокопроизводительный нативный торговый терминал на C++/Qt 6, предназначенный для профессионального анализа ликвидности и потока ордеров.
Терминал должен в реальном времени отображать рыночные данные (тики, стакан, спред, тепловую карту ликвидности) и предоставлять инструменты для ввода ордеров через Coinbase Advanced Trade API.
Главная задача — перенести критические модули (выполненные ранее во Flutter/Python) в C++, чтобы минимизировать задержки и повысить стабильность.
2. Общая архитектура
Приложение строится по модульной схеме:
[ExecutionModule] ─▶ [LiquidityDataController] ─▶ [LiquiditySpectrumChart]
│ │ │
▼ ▼ ▼
(WebSocket+REST) (расчёт данных) (рендер графики)
Все три слоя связаны через Qt Signals/Slots, обеспечивая асинхронную обработку данных без блокировок UI.
3. Основные компоненты
3.1 Execution Module (Модуль связи с биржей)
Файл: src/core/ExecutionModule.{h,cpp}
Назначение: управление подключением к Coinbase API.
Функции:
Поддержание постоянного WebSocket-соединения с
wss://advanced-trade-ws.coinbase.com;Подписка на каналы
tickerиlevel2(илиsnapshot/l2update);Приём и парсинг входящих сообщений в формате JSON;
Сигналы:
tradeTick(productId, price, size, side, timestamp)bestBidAsk(productId, bid, ask, timestamp)
REST-запросы:
GET /brokerage/products— список инструментов;GET /brokerage/products/{id}/candles— исторические свечи;POST /brokerage/orders— отправка рыночных/лимитных ордеров;
Поддержка HMAC-SHA256-подписи запросов (через
CB-ACCESS-*заголовки);Watchdog-механизм для автоматического переподключения при потере данных >10 секунд;
Heartbeat (Ping каждые 12 секунд).
Требования:
Работа в отдельном потоке (
QThread);Минимальная задержка обработки сообщений (< 5 мс);
Возможность расширить подписку на несколько инструментов.
3.2 Liquidity Data Controller (Контроллер данных)
Файл: src/data/LiquidityDataController.{h,cpp}
Назначение: агрегация и обработка рыночных данных, подготовка 2D-массивов для рендеринга тепловой карты.
Функции:
Хранение последних N секунд тиков (кольцевой буфер);
Расчёт тепловой карты ликвидности:
биннинг по цене и времени;
экспоненциальное затухание (
half-life, например 5 сек);
Поддержание диапазона цен (min/max) динамически вокруг среднего Bid/Ask;
Сигнал
dataUpdated()при обновлении карты;Вычисление текущего спреда, best bid/ask.
Формула затухания:
λ = ln(2) / half_life
value *= exp(-λ * Δt)
Требования:
Обработка ≥ 1000 событий/сек без потери кадров;
Потокобезопасность (все вычисления — в основном потоке контроллера);
Опциональное расширение до 2-канальной тепловой карты (Buy/Sell отдельно).
3.3 Liquidity Spectrum Chart (Виджет графика)
Файл: src/ui/LiquiditySpectrumChart.{h,cpp}
Назначение: визуализация спектра ликвидности и рыночных данных.
Элементы визуализации:
Фоновая тепловая карта (градиент «красный–зелёный»);
Линии Best Bid (зелёная) и Best Ask (красная);
Заливка области спреда (полупрозрачный слой);
Масштабирование по текущему диапазону цен;
Обновление изображения по сигналу
dataUpdated().
Требования:
Частота обновления ≥ 30 FPS;
Рендер на
QPainterбез сторонних библиотек;Возможность заменить палитру и добавить смешивание buy/sell.
3.4 Main Window (Главное окно)
Файл: src/ui/MainWindow.{h,cpp}
Назначение: базовая оболочка приложения.
Состав:
Центральный график —
LiquiditySpectrumChart;Dock-панели:
FlowMetricsWidget— показатели потока ордеров (TBD);OrderEntryWidget— форма для отправки ордеров (buy/sell, notional);
Тулбар:
Кнопки BUY $10 / SELL $10 — тестовые REST-ордера;
Статус-бар — индикация состояния подключения (Connected / Reconnecting / Disconnected).
4. Интерфейс пользователя
Основное окно
| Элемент | Назначение |
|---|---|
| Тепловая карта | Отображает интенсивность сделок (вес = объём) по цене и времени. |
| Линии Bid/Ask | Текущие лучшие цены покупки/продажи. |
| Заливка спреда | Полупрозрачная область между линиями. |
| Тулбар BUY/SELL | Быстрая отправка ордеров (через REST). |
| Dock "Flow Metrics" | Доп. показатели (имбаланс, объём, дельта). |
| Dock "Order Entry" | Поле для ручного ввода ордеров. |
Цветовая схема — тёмная (аналог Moontrader).
Все элементы — в одной теме (resources/dark.qss).
5. Требования к производительности
| Компонент | Цель |
|---|---|
| Обработка WS-сообщений | ≤ 5 мс/сообщение |
| Обновление тепловой карты | ≥ 30 FPS |
| Память на историю | ≤ 100 МБ при 300 сек и 200×300 бинов |
| Переподключение | < 2 сек после потери соединения |
| REST-запрос ордера | ≤ 300 мс round-trip |
6. Безопасность
Приватные ключи Coinbase не хранятся в коде.
Используются переменные окружения:CB_API_KEY,CB_API_SECRET_BASE64,CB_API_PASSPHRASE.Подпись запросов HMAC-SHA256;
Отказоустойчивая логика reconnect при обрывах;
Исключение утечек памяти (умные указатели, RAII).
7. Технологии
| Область | Используемое решение |
|---|---|
| Язык | C++ 20 |
| Фреймворк | Qt 6.5+ |
| Сеть | Qt Network (QWebSocket, QNetworkAccessManager) |
| Потоки | QThread |
| Рендеринг | QPainter (QWidget) |
| Сборка | CMake 3.21+ |
| ОС | Windows 10+, macOS, Linux (x64) |
| API-интеграция | Coinbase Advanced Trade API v3 |
8. Сборка и запуск
1️⃣ Подготовка окружения
Установить Qt 6.5+ с модулями Core, Widgets, Network.
Установить CMake 3.21+.
2️⃣ Сборка
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . -j
3️⃣ Запуск
Запустить
LiquiditySpectrumPro(на Windows —LiquiditySpectrumPro.exe).
9. Этапы разработки
| Этап | Задачи | Результат |
|---|---|---|
| 1. Инициализация проекта | Создание CMake-структуры, базового UI | Базовое окно Qt |
| 2. Модуль Execution Module | Подключение WS/REST к Coinbase | Поток тиков и BBO |
| 3. Контроллер данных | Логика биннинга и decay | Буфер тепловой карты |
| 4. Визуализация | Тепловая карта и линии | Отрисовка спектра |
| 5. REST-ордера | Отправка и проверка ордеров | Рабочий ввод BUY/SELL |
| 6. Оптимизация | Отладка скорости и памяти | FPS > 30 |
| 7. UI/UX финал | Тёмная тема, метрики | Готовый интерфейс |
10. Дополнительные возможности (этап 2)
Поддержка нескольких инструментов одновременно (мультичарт);
Расширенная аналитика потока: дельта, VWAP, Imbalance;
Настройка палитры и decay-параметров из GUI;
Экспорт тепловой карты в PNG/CSV;
Отображение истории стакана (replay-режим).
11. Результат
В результате должен быть готовый исполняемый терминал:
Отображающий в реальном времени динамику ликвидности;
Позволяющий анализировать поток ордеров без лагов;
С архитектурой, пригодной для расширения и подключения других бирж
Бюджет будет расширен . Если найдем взаимопонимание, и по срокам выполнения !
-
31 день53 219 UAH31 день53 219 UAH
📌Здравствуйте.👋
⭐️Меня зовут,Андрей.
⭐️Я основатель: Juicy-ART Digital Agency
⭐️Мой опыт работы: 12 лет+
• ➡️Могу показать работы именно по Trading APP
• 🎨Портфолио:Freelancehunt
• ✅Рейтинг работ на Behance (более 500.000 просмотров)
• 💼Больше работ тут:Dribbble
-
10 дней62 089 UAH
3286 23 1 2 10 дней62 089 UAHДобрый день, Руслан! Ваш проект по созданию торгового терминала Liquidity Spectrum Pro звучит невероятно интересно. Предлагаю переосмыслить перенесение модулей на C++, чтобы действительно минимизировать задержки и улучшить стабильность. Я разрабатываю масштабируемые системы на базе C++/Qt, и моя экспертиза в обработке данных реального времени через WebSocket и REST API позволит создать устойчивый Execution Module. Опыт в настройке безопасных интервалов передачи данных и организации многопоточной обработки будет полезен для достижения ваших целей. Давайте обсудим подробнее! 🚀
-
21 день53 219 UAH
102 21 день53 219 UAHЗдравствуйте.
С интересом ознакомилась с Вашим проектом. Уверена что смогу сделать эффективную и качественную работу соответствующее Вашим требованиям и ожиданиям. Опыт работы более 8 лет. Готова обсудить детали и приступить к работе. Жду Вашего ответа.
-
30 дней53 219 UAH
2259 5 1 30 дней53 219 UAHЗдравствуйте! Я ознакомился с вашим заданием и считаю, что смогу успешно его выполнить. Буду рад сотрудничеству пожалуйста, напишите мне лично для дальнейших деталей.
-
90 дней620 892 UAH
304 90 дней620 892 UAHЗдравствуйте!
Меня зовут Алексей, я представляю группу разработчиков – NC-1.
Более пяти лет мы создаем веб-сайты, мобильные приложения, интернет-магазины, ERP/CRM системы и другие e-commerce продукты. Предлагаю нашу команду для работы над вашим проектом:
1. Senior C++/Qt Developer (Team Lead)
Стек: C++20, Qt 6.5+, CMake, многопоточность, сетевые протоколы
Задачи: Архитектура, ключевые модули, оптимизация производительности
2. C++/Qt Developer (Middle+)
Стек: C++17/20, Qt Widgets, QPainter, алгоритмы обработки данных
Задачи: Визуализация, UI компоненты, вспомогательные модули
… 3. DevOps/QA Engineer
Стек: CMake, CI/CD, кроссплатформенная сборка, тестирование производительности
Задачи: Сборка, развертывание, тестирование на разных ОС
4. Project Manager (part-time)
Стек: Agile, коммуникация, управление сроками
Задачи: Координация, отчетность, взаимодействие с заказчиком
Кейсы - https://1drv.ms/b/c/b7a0d31a9dae1bc5/EeH6JPdpBbpKtrkA1zFQOIMBAmqUcd_Ptx5tt5p9hBNG-g?e=wXDGHh
Портфолио – https://nc-one.com/case-studies
С уважением,
Алексей М.
-
7 дней53 219 UAH
172 1 1 7 дней53 219 UAHЗдравствуйте! Готов выполнить этот проект большой опыт разработки различных приложений. Есть большой опыт разработки на qt C++.И есть опыт разработки на qt Widgets C++ для Binance и ByBit
Актуальные фриланс-проекты в категории C#
Добробка в существующей версии 1с розница блока для РЦ(распределительного центра)В общем поясню, что у нас за база - есть общий сервер, где есть база Розница (где ставятся все приходы) - база УТП, куда переливаются все продажи - считается наценка, остатки по складам - маленькие базы розничных магазинов. По обменам у нас магазины обмениваются с базой Розница… C и C++, C# ∙ 3 дня 23 часа назад ∙ 6 ставок |
Нужно сделать миграцию текущей рабочей программы с foxpro на C#Всем привет! у нас есть программа на foxpro (в ней есть несколько модулей, программа для учета), есть исходники программы, при острой необходимости можно проконсультироваться с людьми по поддержке текущей программы что нужно сделать: 1. аналитику, что и как работает, составить… C#, Десктопные приложения ∙ 6 дней 14 часов назад ∙ 18 ставок |
Младший C#Ищем талантливого и амбициозного Junior C# разработчика, который стремится к профессиональному росту и новым вызовам. Твои будущие задачи: - Разработка и поддержка бэкенд-решений с фронтендом (Telegram-бот); - Автоматизация рутинных процессов в отделах Android-разработки,… C# ∙ 7 дней 4 часа назад ∙ 8 ставок |