Aplikacja handlowa
Проект: 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 dni4536 PLN31 dni4536 PLN
📌Witaj.👋
⭐️Nazywam się Andrzej.
⭐️Jestem założycielem: Juicy-ART Agencja Cyfrowa
⭐️Mam 12-letnie doświadczenie w pracy.
• ➡️Mogę pokazać prace dotyczące aplikacji handlowych
• 🎨Portfolio:Freelancehunt
• ✅Ocena prac na Behance (ponad 500.000 wyświetleń)
• 💼Więcej prac tutaj:Dribbble
-
10 dni5292 PLN
3066 23 1 3 10 dni5292 PLNDzień dobry, Rusłan! Twój projekt dotyczący stworzenia terminala handlowego Liquidity Spectrum Pro brzmi niesamowicie interesująco. Proponuję przemyśleć przeniesienie modułów na C++, aby naprawdę zminimalizować opóźnienia i poprawić stabilność. Opracowuję skalowalne systemy oparte na C++/Qt, a moja ekspertyza w przetwarzaniu danych w czasie rzeczywistym przez WebSocket i REST API pozwoli stworzyć stabilny moduł wykonawczy. Doświadczenie w konfigurowaniu bezpiecznych interwałów przesyłania danych i organizacji przetwarzania wielowątkowego będzie przydatne do osiągnięcia Twoich celów. Porozmawiajmy o tym bardziej szczegółowo! 🚀
-
21 dni4536 PLN
162 21 dni4536 PLNDzień dobry.
Z zainteresowaniem zapoznałam się z Twoim projektem. Jestem pewna, że mogę wykonać efektywną i wysokiej jakości pracę zgodnie z Twoimi wymaganiami i oczekiwaniami. Posiadam ponad 8-letnie doświadczenie. Jestem gotowa omówić szczegóły i przystąpić do pracy. Czekam na Twoją odpowiedź.
-
30 dni4536 PLN
2227 5 1 30 dni4536 PLNCześć! Zapoznałem się z twoim zadaniem i uważam, że mogę je pomyślnie wykonać. Będę wdzięczny za współpracę, proszę, napisz do mnie osobiście w celu dalszych szczegółów.
-
90 dni52 922 PLN
475 90 dni52 922 PLNCześć!
Nazywam się Aleksiej, reprezentuję grupę deweloperów – NC-1.
Od ponad pięciu lat tworzymy strony internetowe, aplikacje mobilne, sklepy internetowe, systemy ERP/CRM i inne produkty e-commerce. Proponuję nasz zespół do pracy nad Twoim projektem:
1. Starszy programista C++/Qt (lider zespołu)
Stos: C++20, Qt 6.5+, CMake, wielowątkowość, protokoły sieciowe
Zadania: Architektura, kluczowe moduły, optymalizacja wydajności
2. Programista C++/Qt (średniozaawansowany+)
Stos: C++17/20, Qt Widgets, QPainter, algorytmy przetwarzania danych
Zadania: Wizualizacja, komponenty UI, moduły pomocnicze
… 3. Inżynier DevOps/QA
Stos: CMake, CI/CD, budowanie wieloplatformowe, testowanie wydajności
Zadania: Budowanie, wdrażanie, testowanie na różnych systemach operacyjnych
4. Kierownik projektu (na pół etatu)
Stos: Agile, komunikacja, zarządzanie terminami
Zadania: Koordynacja, raportowanie, współpraca z klientem
Przykłady - https://1drv.ms/b/c/b7a0d31a9dae1bc5/EeH6JPdpBbpKtrkA1zFQOIMBAmqUcd_Ptx5tt5p9hBNG-g?e=wXDGHh
Portfolio – https://nc-one.com/case-studies
Z poważaniem,
Aleksiej M.
-
7 dni4536 PLN
172 1 1 7 dni4536 PLNWitaj! Jestem gotów zrealizować ten projekt, mam duże doświadczenie w tworzeniu różnych aplikacji. Posiadam duże doświadczenie w programowaniu w qt C++. Mam również doświadczenie w programowaniu w qt Widgets C++ dla Binance i ByBit.
Aktualne zlecenia dla freelancerów w kategorii Aplikacje desktopowe
Potrzebny architekt Airtable do zbudowania schematu relacyjnego i nowej czystej bazy AirtablePotrzebna pomoc w przemyśleniu i zbudowaniu czystiej schemy relacyjnej dla wewnętrznego systemu operacyjnego w Airtable. Obecna baza jest już używana przez zespół, ale rozwinęła się organicznie: struktura jest częściowo płaska, część tabel/widoków jest używana aktywnie, część… Bazy danych i SQL, Aplikacje desktopowe ∙ 19 godzin 14 minut temu ∙ 8 ofert |
Tworzenie oprogramowania do generowania plików cięcia drewnianych puzzliSzukamy programisty do stworzenia oprogramowania, które automatyzuje proces tworzenia plików cięcia dla drewnianych figurkowych puzzli. Aktualny proces Obecnie każdy plik jest tworzony ręcznie przez projektanta w Adobe Illustrator. Plik zawiera: zewnętrzny kontur puzzla o… Aplikacje desktopowe ∙ 23 godziny 31 minut temu ∙ 10 ofert |
Mała poprawka na stronie
59 PLN
Trzeba zaktualizować umowę ofertową w stopce na nową, w firmie zmieniły się zasady Zadanie na 20 minut Programowanie stron internetowych, Aplikacje desktopowe ∙ 2 dni 1 godzina temu ∙ 107 ofert |
Narzędzie do porównywania rachunków z bankiem, kartami i księgowymZadanie techniczne: narzędzie do porównywania rachunków z bankiem, kartami i księgowymOgólny cel Potrzebne jest lokalne narzędzie (skrypt/mała aplikacja w Pythonie), które uruchamiane ręcznie co 1-2 miesiące na moim komputerze i dokonuje porównania między: Rachunkami, które… Python, Aplikacje desktopowe ∙ 4 dni 8 godzin temu ∙ 43 oferty |
Dodać przerwy 10-30 sekund między wysyłkami e-mailiWitam! Szukam doświadczonego programisty 1C / BAS (BAF) do szybkiego rozwiązania problemu technicznego z wysyłką maili.Istota problemu: Używamy programu księgowego BAF (Business Automation Framework), edycja 2.0. Raz w miesiącu pojawia się potrzeba masowego wysyłania klientom… Programowanie stron internetowych, Aplikacje desktopowe ∙ 10 dni temu ∙ 10 ofert |