Средневзвешенная по объёму цена (VWAP) — это ориентир, построенный из цен и объёма за выбранный интервал. В криптовалютах сброс — часть расчёта: рынки торгуются круглосуточно, поэтому «дневному» значению нужны заданная граница и часовой пояс. Измените границу — и изменится то, какие сделки или свечи войдут в среднее. Линию без правила сброса, входной цены и единицы объёма трудно воспроизвести и легко понять неверно.
Разберите пример на свечах
Для приближения по свечам один из распространённых входных параметров — типичная цена: (high + low + close) ÷ 3. Умножьте эту цену на объём базового актива за свечу, сложите произведения, затем разделите на суммарный объём в базовом активе. На этих трёх вымышленных свечах арифметика видна наглядно:
| Свеча | High / low / close | Типичная цена | Объём в базовом активе | Цена × объём |
|---|---|---|---|---|
| 1 | 101 / 99 / 100 | 100 | 10 | 1,000 |
| 2 | 102 / 99 / 102 | 101 | 20 | 2,020 |
| 3 | 105 / 101 / 103 | 103 | 5 | 515 |
После свечи 2 накопленное значение равно 3,020 ÷ 30 = 100.67. После свечи 3 оно равно 3,535 ÷ 35 = 101.00. Типичная цена выросла до 103 на последней свече, а накопленное среднее сдвинулось лишь с 100.67 до 101.00, потому что объём у этой свечи был меньше. Это учебный расчёт, а не рыночное наблюдение или результат торговли.
VWAP по сделкам, напротив, взвешивает каждую подходящую транзакцию по её объёму в сделке. Приближение по свечам теряет путь цены внутри свечи и может отличаться от значения по сделкам. Проверьте, что провайдер называет «объёмом»: это могут быть базовые единицы, оборот в котируемой валюте или контракты с множителем. Эти единицы не взаимозаменяемы. Пропущенные интервалы и нормализация у провайдера тоже меняют знаменатель, а значит, и ответ. Например, два вымышленных исполнения объёмом 1 BTC по $100 и $110 дают VWAP по объёму в базовом активе, равный ($100 + $110) ÷ 2 = $105. Если же взвешивать по их оборотам в котируемой валюте, $100 и $110, получится ($100 × $100 + $110 × $110) ÷ ($100 + $110) = $105.24. Это средневзвешенное по номинальной стоимости, а не тот же расчёт по объёму в базовом активе. Пересчитывайте оборот в котируемой валюте обратно в базовые единицы по каждой цене, если нужен именно вес по количеству базового актива; для деривативов дополнительно проверьте множитель контракта.
Проверьте поле объёма на границе данных
Название поля — часть метода. Спотовый эндпоинт Binance для kline помечает объём в базовом активе и объём в котируемом активе отдельно: в задокументированном кортеже ответа они стоят на позициях [5] и [7]. Поэтому спотовая свеча BTCUSDT может нести ряд количества в BTC и ряд оборота в USDT за один и тот же интервал. Выбор поля оборота сильнее взвешивает активность с более высокой ценой; он не воспроизводит VWAP по количеству BTC. Такая нумерация полей относится к схеме именно этого эндпоинта, поэтому не переносите её на другую площадку или продукт.
Справочник TradingView по информации о графике говорит, что единица volume зависит от инструмента: обычно это базовая валюта для криптовалютных пар и контракты для фьючерсов и других деривативов. Уточняйте и единицу, указанную на графике, и поле API. Для серии контрактов зафиксируйте множитель контракта и определение экспозиции, прежде чем пересчитывать количества; число контрактов не равно автоматически количеству BTC. Сохраняйте исходное поле, единицу, котируемую валюту, символ, интервал, часовой пояс и версию источника рядом с рассчитанным рядом. Храните исходные и нормализованные значения, чтобы другой проверяющий мог воспроизвести знаменатель.
Объявляйте правило сброса, а не только формулу
Для накопленного расчёта за сессию фиксируйте момент сброса, часовой пояс и правило перехода на летнее время. Привязанный VWAP сбрасывается от выбранного события или даты; зафиксируйте, как выбрана эта привязка и была ли она известна в момент решения. Выбор привязки после того, как вы увидели максимум свинга, вносит ретроспективность в исследование. В документации TradingView по Pine Script v6 пример VWAP принимает явное условие сброса. Это иллюстрирует выбор реализации; оно не устанавливает единую универсальную сессию для всех крипторынков или инструментов построения графиков.
В криптовалютах нет единого открывающего звонка. День по UTC, локальная сессия фондового рынка и привязка к событию создают разные окна. Если гипотеза касается названной локальной сессии, переводите каждую дату с помощью базы данных часовых поясов, а не применяйте одно фиксированное смещение UTC через переходы на летнее время. Определите границу до оценки результатов; перебор множества моментов сброса с сохранением лучшего — это ещё один поиск параметров.
Метка времени сигнала тоже важна. VWAP по завершённой свече, основанный на её итоговых high, low, close и объёме, становится известен только при закрытии свечи; живой индикатор может двигаться, пока свеча ещё формируется. Если правило сравнивает итоговый close с этим итоговым VWAP, помечайте сигнал на закрытии и моделируйте вход по более поздней доступной цене. Текущая документация TradingView по стратегиям говорит, что её рыночный ордер по умолчанию в историческом эмуляторе брокера исполняется на открытии следующей свечи. Это специфичное для платформы соглашение моделирования, а не гарантия относительно реальной площадки или движка этого продукта. Исполнение на закрытии свечи сигнала требует отдельно обоснованной модели входа по времени и может дать оптимистичный результат, если решение использовало данные, которые стали итоговыми только на этом закрытии.
Перед тестированием запишите рынок и поток данных, входную цену, единицу объёма, границу сброса и часовой пояс, обработку пропущенных свечей или свечей с нулевым объёмом, метку времени сигнала, предполагаемый момент входа, комиссии и спред. Затем зафиксируйте эти входные данные. Пропущенный интервал может исказить и накопленный числитель, и знаменатель; у периода без подходящего объёма VWAP не определён. Если изменение правила сброса после просмотра результатов меняет решение, зафиксируйте новую версию и оцените её на более поздних нетронутых данных.
Превратите линию в проверяемый вопрос
VWAP может описывать исполнение относительно ориентира или служить входным параметром для исследовательского правила. Пересечение ценой линии само по себе не является причиной для торговли. Запишите точный триггер, момент, когда он становится известен, допущение о входе, выход, условие отмены и базу для сравнения. Пересчитайте с объявленными альтернативными границами сброса и более высокими допущениями по комиссиям и спреду. Храните все протестированные варианты в журнале экспериментов, чтобы самое привлекательное окно не было принято за нетронутое открытие.
Встроенные в SuperQuant почасовые примеры синтетические и не могут ответить на вопрос об исполнении по сделкам на конкретной площадке. Текущий интерфейс исследований не предоставляет универсальный конструктор индикатора VWAP. Используйте руководство по рыночным сессиям, чтобы объявить окно, чек-лист по качеству данных, чтобы проверить покрытие, и руководство по издержкам, чтобы оспорить небольшое кажущееся преимущество. Это пример метода, а не сигнал или индивидуальная инвестиционная рекомендация.
Скачайте рабочий лист для аудита входных данных VWAP, чтобы записать сопоставление полей, единицы, правило сброса, метки времени и варианты тестов до расчёта или сравнения ряда.