Торговий додаток
Проект: 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
162 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. Старший C++/Qt Розробник (Тім Лід)
Стек: C++20, Qt 6.5+, CMake, багатопоточність, мережеві протоколи
Завдання: Архітектура, ключові модулі, оптимізація продуктивності
2. C++/Qt Розробник (Середній+)
Стек: C++17/20, Qt Widgets, QPainter, алгоритми обробки даних
Завдання: Візуалізація, UI компоненти, допоміжні модулі
… 3. DevOps/QA Інженер
Стек: CMake, CI/CD, кросплатформена збірка, тестування продуктивності
Завдання: Збірка, розгортання, тестування на різних ОС
4. Менеджер проекту (неповний робочий день)
Стек: 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#
S1GG1LПотрібна людина, яка зможе з початкового коду лаунчера майнкрафт під проект, змінити дизайн на свій розсуд, але є невеликі вимоги щодо стилю, щоб він був в фіолетових тонах. Щодо оплати, ціну за роботу пропонуйте. Але бюджет не великий, хочеться щось мінімалістичне. Якщо… C#, Розробка ігор ∙ 22 години 54 хвилини тому ∙ 5 ставок |
Добробка в існуючій версії 1с роздріб блоку для РЦ(розподільчого центру))в загальному поясню що у нас за база - Є загальний сервер де є дів база РОзница (де ставляться усі приходи) - база УТП- куди переливаються усі продажі - рахується націнка залишки по складах - маленькі бази роздрібних магазинів. по обмінам у нас Магазини обмінюються із базою… C та C++, C# ∙ 5 днів 23 години тому ∙ 6 ставок |
Потрібно зробити міграцію поточної робочої програми з foxpro на C#Всім привіт! У нас є програма на foxpro (в ній є кілька модулів, програма для обліку), є вихідники програми, при гострій необхідності можна проконсультуватися з людьми по підтримці поточної програми Що потрібно зробити: 1. Аналіз, що і як працює, скласти список всього зайвого,… C#, Десктопні додатки ∙ 8 днів 14 годин тому ∙ 18 ставок |
Junior C#Шукаємо талановитого й амбітного Junior C# розробника, який прагне професійного росту та нових викликів. Твої майбутні задачі: - Розробка та підтримка бекенд-рішень із фронтендом (Telegram-бот); - Автоматизація рутинних процесів у відділах Android-розробки, техпідтримки та… C# ∙ 9 днів 4 години тому ∙ 9 ставок |