Доска рынка «1%»
Рыночные данные как продукт: дюжина живых графиков на потоке через Web Worker, разметка, ценовые алерты и монитор импульса, который уведомляет, но никогда не торгует.
- Живая доска на 12 графиков
- Поток в Web Worker, пакеты по 40 мс
- Разметка и ценовые алерты
- Монитор импульса — без торговли
- Направление
- AI и автоматизация
- Год
- 2026
- Авторство
- Собственная разработка
- Статус
- Роль
- Самостоятельно: продукт, конвейер данных в реальном времени, интерфейс и тесты.
- Платформы
- Доска на десктопе · мобильная раскладка
- Языки
- RU · EN
- Стек
- React 19 · TypeScript · vinext (Vite) · Lightweight Charts · Canvas · Web Workers · Tailwind CSS 4 · node:test
- Ссылки
- Демонстрация по запросу
Изыскания — контекст и задача.
Задача
Чтобы читать одни и те же инструменты на нескольких таймфреймах, приходилось держать дюжину вкладок; разметка не следовала за графиком, а страница подтормаживала, когда рынок двигался.
Дискреционный скальпинг — в основном золото на пятиминутных графиках, а рядом крупные криптовалюты — начинается с наблюдения. Сетапы зависят от структуры на нескольких таймфреймах, поэтому одни и те же инструменты приходится читать сразу на нескольких периодах, а движение на долю процента за минуту имеет значение.
Сайты с графиками в браузере рассчитаны на один график за раз. Дюжина вкладок открывается медленно, разметка и уровни алертов не переходят вместе с графиком из одной раскладки в другую, а плотный поток заставляет страницу подтормаживать ровно тогда, когда рынок движется.
Задача «1%» — личная доска: много живых графиков на одном экране, у каждого свой таймфрейм, разметка и алерты; доска не тормозит, когда поток идёт сразу в дюжину графиков, и сообщает о резких движениях цены, — а каждое торговое решение остаётся за человеком. Исполнение и сигналы того же рабочего процесса показаны на отдельной карточке (W-08).
План — сначала — чертёж системы.
Решение
Личная доска до 12 живых графиков: Binance Spot через один WebSocket в Web Worker, пакеты каждые 40 мс и отрисовка на Canvas, плюс разметка, ценовые алерты, восемь палитр и монитор импульса, который только уведомляет.
Доска «1%» — один экран, чтобы следить за многими рынками. История свечей приходит через небольшой серверный прокси, который проверяет символ и интервал и ненадолго кэширует ответ; живые данные идут через один объединённый WebSocket Binance Spot внутри модульного Web Worker — он собирает сделки в свечи, убирает дубли объёма по ID сделки, переподключается с нарастающей паузой и отправляет обновления пакетами каждые 40 мс. Каждый график рисуется на Canvas с помощью TradingView Lightweight Charts по кадрам анимации, а React обновляет только метаданные несколько раз в секунду. На доске 1–4 колонки и до 12 графиков, двенадцать таймфреймов от 1m до 1w — общих или своих для каждого графика, — режимы фокуса и полного экрана. Разметка и ценовые алерты сохраняются для каждого графика и инструмента, восемь палитр свечей и независимые светлая и тёмная темы меняют вид, а монитор минутного импульса записывает быстрые движения в журнал и подаёт звук. Он уведомляет — и никогда не торгует.
Ключ модулей
- Доски на 1–4 колонки и до 12 графиков, режимы фокуса и полного экрана
- 12 таймфреймов от 1m до 1w; общий или независимый период для каждого графика
- Инструменты разметки — горизонталь, отрезок, прямоугольник — привязаны ко времени и цене и сохраняются для каждого графика и инструмента
- Ценовые алерты на пересечение уровня, которые ставятся кликом по графику
- Монитор минутного импульса с журналом событий — только уведомляет и никогда не торгует
- Восемь палитр свечей и независимые светлая и тёмная темы
- EMA 20, объём, максимум и минимум за 24 часа и отсчёт до закрытия свечи на каждом графике
- На телефоне графики выстраиваются в одну колонку, разметка и алерты остаются доступны
Ключевые решения
-
Почему поток работает в Web Worker
Разбор и агрегация тиков вне основного потока, пакеты каждые 40 мс и отрисовка по кадрам анимации сохраняют отзывчивость дюжины живых графиков; графики за пределами экрана встают на паузу.
-
Почему один объединённый сокет
Все символы на доске делят один WebSocket, поэтому новый график не открывает ещё одно соединение. Переподключения идут с нарастающей паузой и помечаются «эпохой», так что запоздавшее сообщение от старого соединения не перезапишет свежие свечи.
-
Почему монитор никогда не торгует
Монитор минутного импульса читает поток, записывает быстрые движения в журнал и подаёт звук — пути к ордеру у него нет. Торговые решения остаются за человеком; исполнение — отдельный процесс с подтверждением (W-08).
-
Почему алерт срабатывает один раз
Пересечённый уровень алерта срабатывает один раз и записывает событие, а не повторяется на каждом тике вокруг уровня; это правило закреплено тестами — вместе с гонками при переподключении и границами таймфреймов.
Фасады — экраны для компьютера.
Все фасады 04
-
Рис. 4.1 Вторая доска 2 × 2 — BTC, ETH, SOL и BNB на 1h — в синей палитре свечей «Ледник», с разметкой и уровнями алертов на каждом графике. -
Рис. 4.2 Окно настроек: независимое переключение тёмного и светлого интерфейса и восемь палитр свечей с превью в виде мини-графиков. -
Рис. 4.3 Та же доска на шесть графиков в светлом интерфейсе с палитрой «Классика» — разметка, EMA и уровни алертов сохранены. -
Рис. 4.4 Доска на восемь графиков в четыре колонки при 1920 × 1080: BTC, ETH, SOL и BNB на 5m и 1h рядом.
Детали — мобильные экраны.
Ведомость материалов — стек и почему он.
| Слой | Материал | Почему |
|---|---|---|
| 01Данные | Binance Spot WebSocket · history proxy (validated, cached) | Публичные рыночные данные без ключа API; прокси проверяет символ и интервал до того, как запрос уйдёт с сервера. |
| 02Логика | Module Web Worker · candle aggregation · trade-ID de-duplication · reconnect epochs | Свечи собираются вне основного потока, поэтому интерфейс никогда не ждёт поток данных. |
| 03Сигналы | Minute-impulse monitor · EMA 20 · single-fire alert rules | Быстрые движения и уровни отмечаются по правилам; ничего не торгуется. |
| 04Интерфейс | React 19 · Lightweight Charts · Canvas · Tailwind 4 | Плотная доска на десктопе, которая на телефоне складывается в одну колонку. |
| 05Инфраструктура | vinext on Vite · node:test · local by design | Личный инструмент, который работает локально; тесты покрывают гонки в воркере, переподключения, EMA и границы таймфреймов. |
Стек
Сдача — итог и ссылки.
Проверенные факты
- живых графиков на доске
- 12
- Источник: исходный код
- мс — окно пакетной обработки потока
- 40
- Источник: исходный код
- двенадцать таймфреймов, общих или для каждого графика
- 1m – 1w
- Источник: исходный код
Ссылки
Закрытый
Демонстрация по запросу
Хотите увидеть систему в работе?
Покажу систему вживую на демо-данных и расскажу о решениях, которые за ней стоят.
Запросить демонстрацию



