В любом бесплатном терминале нарисуют дивергенцию. Но кто объяснит, что она значит и стоит ли входить?
При выборе инструментов для анализа Order Flow быстро обнаруживается, что профессиональные терминалы (ATAS, VolFix, Tiger) стоят как хороший VPS, а в бесплатных версиях или задержка, или нет истории — только текущая свеча. Этого недостаточно для нормального анализа.
Ссылка на описание программы: Cumulative Volume Delta (CVD) Analyzer
Каждый, кто пробовал Order Flow, упирался в одну и ту же проблему: как именно считаются индикаторы? Что там вообще внутри? И если график вдруг начал показывать странные данные, непонятно, где искать причину — на уровне приёма данных, расчёта дельты или отрисовки.
Я немного изменил подход. Инструмент запрашивает готовые свечи с Binance через REST API и считает CVD (Cumulative Volume Delta) прямо в браузере. Никаких посредников, никаких скрытых преобразоваций. Данные обновляются при каждом запросе — вы всегда видите актуальную картину.
Расскажу, как всё работает: от получения свечей до готового графика с подсказками.
Почему не React и не сборщики
Рассматривался вариант с использованием современных фреймворков (Vite, React, Redux Toolkit), однако от него решено было отказаться. Основные причины: требование к мгновенному запуску без установки дополнительного ПО — инструмент должен открываться из локальной папки без подготовки окружения.
В итоге сделал просто HTML-файлы. Открываешь index.html — и погнали. Никаких npm install, никаких ошибок сборки.

Структура элементарная:
index.html— выбор пары и таймфрейма.Cumulative Volume Delta (CVD).html— главный мозг. Там загружаются свечи с Binance, считается дельта и строятся индикаторы.CVD charts.html— отдельный файл для детальной визуализации. Вынес его, чтобы отрисовка не мешала расчётам.deepseek_analysis_CVD.html— болталка с ИИ, чтобы иногда подсвечивать странные моменты на графике.
Между файлами общаюсь через localStorage: основной модуль сохраняет результаты расчёта, а модуль визуализации подхватывает их при открытии. Костыльно? Да. Но для локальной программы, где нет бэкенда, это работает надёжнее любых стейт-менеджеров. Всё, что нужно для анализа, лежит прямо в браузере.

Главная боль: как определить, кто покупал, а кто продавал?
Биржа в свечном API не пишет «здесь пришёл покупатель». Она присылает готовые бары: время, цену открытия, максимум, минимум, закрытие и объём. И в каждом баре есть отдельное поле — объём покупок по рыночным ордерам (taker buy volume).
Направление я определяю просто: из общего объёма вычитаю объём покупок — получаю объём продаж. Разница между ними — это дельта для свечи. Такой подход используют все, кто не хочет платить за полный поток тиков.
На практике с этим подходом есть нюанс: если рынок замер в узком диапазоне и объёмы малы, дельта может быть шумной. Но для моих часовых свечей погрешность терпимая, а альтернатива — покупать дорогой поток данных с метками сторон, чего я и хотел избежать.
Считаем дельту и накопление
Вот основная логика. Без лишней красоты, просто то, что работает при загрузке свечей:
function computeIndicators(candles) { const delta = []; const cvd = []; let acc = 0; for (let i = 0; i < candles.length; i++) { const buyVol = candles.buyVol[i] || 0; const totalVol = candles.volume[i] || 0; const sellVol = totalVol - buyVol; const currentDelta = buyVol - sellVol; acc += currentDelta; delta.push(currentDelta); cvd.push(acc); } return { delta, cvd }; }
currentDelta — это разница между объёмом покупок и продаж внутри свечи. CVD накапливается с начала сессии и обнуляется в полночь по UTC, чтобы синхронизироваться с биржевым днём.

Сглаживание, чтобы глаза не ломались
Сначала я выводил сырую дельту. Это было просто ужасно: один крупный маркет-ордер на 100 BTC рисовал красный столб на весь экран, и весь график превращался в иголку.
Я добавил простое экспоненциальное сглаживание (EMA с альфой 0.2) исключительно для отображения гистограммы. Сам CVD при этом считается строго по сырым данным без сглаживания, чтобы не терять накопленный объём.
const alpha = 0.2; smoothedDelta = previousSmoothed * (1 - alpha) + currentCandleDelta * alpha;
На графике теперь видны локальные всплески, но без «палок в потолок».


Зачем я прикрутил DeepSeek (и не жалею)
Идея родилась спонтанно. Вместе с графиком я решил выводить короткий текстовый комментарий к последним 15 свечам. Модуль анализирует последние 15 свечей и формирует JSON с изменениями цены, CVD и экстремумами дельты, после чего отправляет запрос в DeepSeek API. Модель возвращает краткий комментарий: например, фиксирует расхождение между движением цены и накопленным объёмом (классическая дивергенция), что помогает замечать странности без круглосуточного наблюдения.
Модуль собирает JSON с изменениями цены, CVD и максимумами дельты, шлёт в DeepSeek API, и модель возвращает 1–2 предложения.

Звучит как перебор? Возможно. Но на практике это помогает не пялиться в график 8 часов подряд — модель обращает внимание на аномалии. При этом я чётко написал в интерфейсе, что это не торговый сигнал, а вспомогательный комментарий.
Мини-ликбез для себя и коллег
Я добавил отдельную вкладку-шпаргалку (_Lesson.html), где расписал, что вообще означают эти разноцветные столбики на моём графике:
Дивергенция: цена обновила максимум, а CVD нет — жди коррекции.
Поглощение: дельта зелёная, а цена стоит на месте — значит, лимитники держат уровень.
Исчерпание: объёмы падают на сильном движении — возможно, это конец импульса.

Эта теория не новая, но когда она лежит прямо рядом с графиком и анимирована (отдельный файл с анимацией), новичкам проще вкатиться.
Что не так с моим решением
Это не замена ATAS:
Я не строю полноценный кластерный профиль (там объём по ценам), потому что не хочу тащить весь стакан на клиент.
Сброс CVD в ноль каждый день режет историю, и межсессионный анализ я не веду.
localStorage— не самый надёжный способ хранения при больших объёмах данных, но для этих задач хватает.
Но меня это устраивает. Инструмент получился лёгкий, и главное — я знаю каждый байт в его расчётах.
Видео опрограмме на Ютуб:
house2008
Такое написать с ИИ не сложно, как на этом заработать ? Покажите PnL ваш или вы не торгуете ?
ura-ch Автор
Напишите мне такое несложное. А потом поговорим про PnL.
house2008
А что там писать, вы используете /fapi/v1/klines, там нет ничего сложного, с ИИ и школьник сделает. Думаю таких индикаторов на Trading View тысячи и они бесплатные.
ura-ch Автор
Давайте сделаем и покажем, или только дискуссия в комментариях?
house2008
Я уже писал такое, мне не интересно, слишком просто, рабочую стратегию на этих данных не простроишь, я бы добавил /fapi/v1/aggTrades и /fapi/v1/depth и уже поинтересней должна заиграть информация.
ura-ch Автор
Тогда в чём проблема? Если это так просто и вы школьник, тогда покажите, как вы с помощью aggTrades и depth построили рабочую стратегию. Я не против учиться у тех, кто действительно сделал лучше по цене и качеству! А пока вы только сотрясаете воздух.