Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

CVD индикатор в TradingView: Pine Script реализация и настройка

Cumulative Volume Delta (CVD) показывает разницу между объёмом покупок и продаж нарастающим итогом, позволяя видеть, кто реально давит на рынок — покупатели или продавцы. Стандартного CVD в наборе TradingView нет, поэтому его пишут на Pine Script самостоятельно или берут из публичной библиотеки. Разбираем логику индикатора, ключевые настройки и как читать его сигналы без ошибок.

Автор: ~8 мин

Что такое CVD и чем он отличается от обычного объёма?

Обычный объём показывает суммарное количество сделок за период без разделения по направлению. CVD (Cumulative Volume Delta) разбивает объём на две части: объём на покупку (агрессивные покупатели, сделки по ask) и объём на продажу (агрессивные продавцы, сделки по bid). Дельта за период — это разность этих двух значений. Кумулятивная версия суммирует дельту нарастающим итогом, показывая баланс давления за выбранный диапазон. Рост CVD при росте цены подтверждает движение. Расхождение — когда цена растёт, а CVD падает или стоит — сигнал скрытого давления продавцов. Это делает CVD полезным фильтром для подтверждения или опровержения движения, а не самостоятельным торговым сигналом.

Источник: ЦБ РФ

Как реализовать CVD на Pine Script в TradingView?

Pine Script предоставляет функции для расчёта дельты через внутридневные данные. Базовая логика: для каждого бара определяем, какая часть объёма пришлась на покупку, а какая на продажу — через соотношение закрытия бара к его диапазону (high-low). Упрощённая формула: buyVolume = volume * (close - low) / (high - low), sellVolume = volume - buyVolume, delta = buyVolume - sellVolume. Кумулятивное значение — сумма дельт нарастающим итогом через функцию cumsum. Важное ограничение: на TradingView стандартная подача данных не разделяет реальные сделки на bid и ask — формула даёт оценку, а не точный тиковый CVD. Для точного CVD нужны тиковые данные, которые на TradingView доступны ограниченно.

Что показывает расхождение CVD и цены?

Дивергенция между CVD и ценой — основной сигнал к вниманию. Бычья дивергенция: цена делает новый минимум, а CVD не обновляет минимум — продавцы теряют силу, возможен разворот вверх. Медвежья дивергенция: цена обновляет максимум, а CVD не растёт или снижается — покупатели слабеют, несмотря на рост цены. Это называют скрытым давлением. Важно: дивергенция — предупреждение, а не команда к сделке. Цена может продолжать движение вопреки CVD, особенно в сильном тренде с новостным драйвером. CVD наиболее полезен в боковике и при замедлении тренда, когда рынок ищет направление. Подтверждайте дивергенцию другими методами перед входом.

Какие настройки CVD важны при использовании в TradingView?

Ключевые параметры, которые стоит контролировать в скрипте. Период сброса: CVD можно считать непрерывно (от начала истории), по сессии (сбрасывать каждый день) или по фиксированному числу баров. Сессионный CVD удобнее для интрадей-анализа, непрерывный — для среднесрочного. Таймфрейм: на старших таймфреймах (дневной, четырёхчасовой) сигналы CVD менее шумные, на минутных — много ложных расхождений. Сглаживание: добавление скользящей средней к CVD убирает шум, но добавляет запаздывание. Цвет: стандартная практика — зелёный при положительной дельте, красный при отрицательной. Начинайте с сессионного CVD на часовом таймфрейме и подбирайте под инструмент.

Работает ли CVD на акциях Мосбиржи в TradingView?

CVD применим к любому инструменту с данными об объёме в TradingView, включая акции Мосбиржи (MOEX:SBER, MOEX:GAZP и другие). Однако точность зависит от качества данных: для российских акций TradingView использует данные биржи с задержкой или реал-тайм в зависимости от тарифа. Формульный CVD через соотношение close к high-low работает как оценка на любом инструменте. Специфика российского рынка: торговая сессия фиксированная (10:00–18:50 МСК), поэтому сессионный сброс CVD особенно логичен. Купоны облигаций Мосбиржи, включая ОФЗ, облагаются НДФЛ 13%, но CVD к долговым инструментам применяется редко из-за их низкой волатильности.

Источник: ЦБ РФ

Как облагается налогом торговля по сигналам CVD?

CVD — инструмент анализа, налоговый статус определяется типом торгуемого инструмента. По акциям и фондам на Мосбирже брокер удерживает НДФЛ 13% (15% свыше порога прогрессии) как налоговый агент. По криптовалюте инвестор декларирует доход сам: база — финансовый результат за год за вычетом подтверждённых расходов, включая комиссии. Убытки уменьшают базу. CVD может генерировать частые торговые сигналы — чем больше сделок, тем важнее систематический учёт. Выгружайте историю операций регулярно и ведите учёт независимо от платформы, которую используете для анализа.

Источник: ЦБ РФ

Точен ли CVD в TradingView без тиковых данных?

Нет абсолютной точности: формульный метод оценивает дельту через high-low-close, а не реальные bid/ask сделки. Это приближение, полезное как фильтр, но не как точный измеритель.

Эксклюзив от ИнвестХомяка

Базовая структура CVD индикатора на Pine Script v5

Блок кодаЧто делаетНа что влияет
buyVol = volume*(close-low)/(high-low)Оценка объёма покупок за барОснова расчёта дельты
delta = buyVol - (volume - buyVol)Дельта объёма за барНаправление давления
cvd = ta.cum(delta)Кумулятивная сумма дельтНарастающий CVD на графике
plot(cvd, color=cvd>=0 ? color.green : color.red)Отображение с цветомВизуализация баланса сил

Формульный CVD в TradingView против тикового CVD

КритерийФормульный (Pine Script)Тиковый (спец. платформы)
ТочностьОценочная, через high-lowТочная, реальный bid/ask
ДоступностьTradingView, бесплатноТребует тиковых данных
Сложность реализацииНесколько строк Pine ScriptОтдельный терминал или API
ПрименимостьЛюбой инструмент в TVПреимущественно крипта, фьючерсы
Ошибки в сигналахВыше на тонких инструментахНиже, но сложнее в настройке

Как написать и подключить CVD в TradingView

  1. Откройте Pine Script Editor

    В TradingView перейдите в раздел Pine Script Editor внизу экрана. Создайте новый скрипт, выберите версию indicator.

  2. Напишите расчёт дельты

    Добавьте строки: buyVol = volume*(close-low)/(high-low), sellVol = volume - buyVol, delta = buyVol - sellVol. Это основа индикатора.

  3. Добавьте кумулятивное накопление

    Добавьте cvd = ta.cum(delta) для нарастающего CVD. Для сессионного сброса используйте условие на смену дня через dayofweek или time.

  4. Настройте отображение

    Добавьте plot(cvd) с цветовым условием: зелёный при cvd >= 0, красный при cvd < 0. Добавьте нулевую линию через hline(0).

  5. Протестируйте на инструменте

    Примените индикатор к нужному тикеру, проверьте поведение на известных разворотах и оцените частоту дивергенций на вашем таймфрейме.

Частые вопросы

Точен ли CVD в TradingView без тиковых данных?

Нет абсолютной точности: формульный метод оценивает дельту через high-low-close, а не реальные bid/ask сделки. Это приближение, полезное как фильтр, но не как точный измеритель.

Можно ли использовать готовый CVD из библиотеки TradingView?

Да, в публичной библиотеке есть CVD-скрипты. Проверяйте логику расчёта и дату обновления — старые скрипты могут использовать устаревший синтаксис Pine Script.

На каком таймфрейме CVD работает лучше?

На часовых и четырёхчасовых таймфреймах сигналы чище. На минутных — много шума, на дневных — сигналы редкие, но значимые.

Подходит ли CVD для облигаций и ОФЗ?

Слабо: облигации маловолатильны, объём неравномерен, и дельта не несёт той же смысловой нагрузки, что на акциях или фьючерсах.

Нужно ли платить налог с прибыли при торговле по CVD?

Да. Инструмент анализа не влияет на налоговый статус. По акциям Мосбиржи — брокер удержит НДФЛ, по крипте — декларируете сами.

Источники