Статистика для трейдеров
Трейдеры видят, какой сетап приносит деньги, а какой сливает счёт
- метрики по каждой сделке
- 34
- экранов платформы
- 12
- источника данных
- 4
- автотестов, метрики сверены с Excel
- 1289
Задача
Трейдер вёл сделки в таблицах и не видел, какие сетапы приносят деньги, а какие тихо съедают депозит.
Решение
Платформа импортирует сделки из четырёх источников, склеивает фрагменты, считает 34 метрики по каждой сделке и показывает, где течёт счёт.
Как это работает
-
Графики счёта
Эквити с лимитом пропа пунктиром, P&L по дням календарём, серии плюсов и минусов. Видно, в какие дни и после каких серий счёт проседает.
-
Журнал сделок
Биржа отдаёт выход кусками: шесть строк склеиваются в одну сделку. Статистика считается по сделкам, а не по фрагментам, поэтому винрейт честный.
-
Monte Carlo
5 000 перемешиваний истории против лимита пропа. Ответ: вероятность вылета и размер позиции, при котором она ниже.
Что проработано
-
Импорт из 4 источников
Hash Hedge, Binance, MOEX и Т-Банк: файл экспорта или API, журнал собирается сам.
-
34 метрики по сделке
Винрейт, профит-фактор, expectancy, SQN, MAE/MFE по свечам Binance.
-
Кэш отчётов и очередь задач
Отчёт HUD кэшируется до изменения данных, тяжёлые задачи идут через очередь на Postgres.
-
Личные кабинеты и защита данных
Ключи бирж зашифрованы, чужой счёт отдаёт 404 — это закреплено тестами.
-
Monte Carlo и what-if
5 000 серий сделок и пересчёт статистики с другими правилами выхода.
Как устроено
- интерфейс
- React · TypeScript · Vite · 12 экранов
- HUD и журнал на одной странице, без перезагрузок между фильтрами
- сервер
- FastAPI · JWT · воркер
- загрузка свечей упирается в лимиты биржи, поэтому живёт в воркере и не тормозит интерфейс
- данные
- PostgreSQL · Alembic · очередь SKIP LOCKED
- одна база и для данных, и для очереди: перезапуск не теряет задачи, отдельный брокер не нужен
- инфраструктура
- Docker Compose · Caddy · HTTPS
- выкатка и откат одной командой, сертификаты обновляются сами
- качество
- 1289 автотестов · сверка с Excel-эталоном · проба нагрузки
- метрики сравниваются с эталоном на каждом прогоне, регресс ловится до релиза
Как шла работа и что проверял
Этапы
-
Бриф, ТЗ, архитектура
день 1
-
Дизайн-система, авторизация, импорт
день 2
-
Движок метрик, HUD, журнал; числа сверены с Excel-журналом трейдера
дни 3–4
-
Графики, Monte Carlo, биржи
день 5
-
Автотесты, проба нагрузки, кэш отчётов
день 6
-
Деплой, HTTPS, первые пользователи
день 7
Проверки
-
1289 автотестов
Парсеры экспортов, склейка сделок, движок метрик, what-if, изоляция счетов и безопасность API, расчёты интерфейса.
-
Сверка с Excel-эталоном
Метрики сравниваются с журналом трейдера; при переносе 71 сделки челленджа итог 535,06 совпал с журналом.
-
Проба нагрузки
Скрипт гоняет одновременных пользователей по счёту на 1063 сделки. После пробы добавлены кэш отчёта, пагинация в SQL и несколько воркеров.
-
Изоляция данных
Отдельные тесты проверяют, что чужой счёт недоступен и ключи бирж не уходят наружу.
Обсудим вашу задачу?
30 минут созвона. Срок и цену называю в тот же день.
Другие кейсы
все кейсы
сайт этого продукта
Сайт ReviewmyTrades
Трейдер за один экран видит, что считает платформа, на цифрах из реальных сделок
8 экранов продукта с реального счёта
Сайт завода «Стапель»
Снабженец за минуту находит цену тонны и отправляет КМ на расчёт
4 калькулятора: цена, отгрузка, вес балки, доставка
Сайт сети автостёкол «Ветровое»
Закупщик находит стекло по еврокоду, водитель видит цену с установкой и точку
509 страниц: 436 карточек стёкол, 53 марки, 7 точек