Trading APP
Проект: 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 days1200 USD31 days1200 USD
📌Hello.👋
⭐️My name is Andrey.
⭐️I am the founder of Juicy-ART Digital Agency
⭐️My work experience: 12 years+
• ➡️I can show works specifically on Trading APP
• 🎨Portfolio:Freelancehunt
• ✅Work rating on Behance (over 500,000 views)
• 💼More works here:Dribbble
-
10 days1400 USD
3286 23 1 2 10 days1400 USDGood day, Ruslan! Your project to create the trading terminal Liquidity Spectrum Pro sounds incredibly interesting. I suggest rethinking the transfer of modules to C++ in order to truly minimize delays and improve stability. I develop scalable systems based on C++/Qt, and my expertise in real-time data processing through WebSocket and REST API will allow for the creation of a robust Execution Module. Experience in setting up secure data transmission intervals and organizing multithreaded processing will be beneficial for achieving your goals. Let's discuss in more detail! 🚀
-
21 days1200 USD
162 21 days1200 USDHello.
I was interested to learn about your project. I am confident that I can do effective and quality work that meets your requirements and expectations. I have over 8 years of experience. I am ready to discuss the details and start working. I look forward to your response.
-
30 days1200 USD
2259 5 1 30 days1200 USDHello! I have reviewed your assignment and believe that I can successfully complete it. I would be happy to collaborate, please write to me personally for further details.
-
90 days14 000 USD
304 90 days14 000 USDHello!
My name is Alexey, I represent a group of developers – NC-1.
For over five years, we have been creating websites, mobile applications, online stores, ERP/CRM systems, and other e-commerce products. I offer our team to work on your project:
1. Senior C++/Qt Developer (Team Lead)
Stack: C++20, Qt 6.5+, CMake, multithreading, network protocols
Tasks: Architecture, key modules, performance optimization
2. C++/Qt Developer (Middle+)
Stack: C++17/20, Qt Widgets, QPainter, data processing algorithms
Tasks: Visualization, UI components, auxiliary modules
… 3. DevOps/QA Engineer
Stack: CMake, CI/CD, cross-platform build, performance testing
Tasks: Build, deployment, testing on different OS
4. Project Manager (part-time)
Stack: Agile, communication, deadline management
Tasks: Coordination, reporting, interaction with the client
Cases - https://1drv.ms/b/c/b7a0d31a9dae1bc5/EeH6JPdpBbpKtrkA1zFQOIMBAmqUcd_Ptx5tt5p9hBNG-g?e=wXDGHh
Portfolio – https://nc-one.com/case-studies
Best regards,
Alexey M.
-
7 days1200 USD
172 1 1 7 days1200 USDHello! I am ready to complete this project with extensive experience in developing various applications. I have significant experience in developing with Qt C++. I also have experience in developing with Qt Widgets C++ for Binance and ByBit.
Current freelance projects in the category C#
S1GG1LA person is needed who can take the initial code of the Minecraft launcher for the project, change the design at their discretion, but there are small style requirements for it to be in purple tones. Regarding payment, please suggest a price for the work. However, the budget is… C#, Gaming Apps ∙ 20 hours 3 minutes back ∙ 4 proposals |
Improvement in the existing version of 1C retail block for the distribution center (DC)In general, I will explain what kind of database we have - There is a main server where there is a retail database (where all receipts are recorded) - a UTP database - where all sales are transferred - it calculates the markup and stock balances - small databases of retail… C & C++, C# ∙ 5 days 20 hours back ∙ 6 proposals |
It is necessary to migrate the current working program from FoxPro to C#.Hello everyone! We have a program in FoxPro (it has several modules, it's an accounting program), we have the source code of the program, and if necessary, we can consult with people who support the current program. What needs to be done: 1. Analyze how everything works,… C#, Desktop Apps ∙ 8 days 11 hours back ∙ 18 proposals |
Junior C#We are looking for a talented and ambitious Junior C# developer who is eager for professional growth and new challenges. Your future tasks: - Development and support of backend solutions with frontend (Telegram bot); - Automation of routine processes in Android development,… C# ∙ 9 days 1 hour back ∙ 9 proposals |