Содержание статьи

Доказательства и область применения

Fidelity описывает формулу и общепринятую интерпретацию; TradingView описывает встроенный индикатор. Ни один из источников не подтверждает предложенные ниже фильтры 20-баров или стратегию дивергенции. Эти варианты требуют независимого тестирования после вычета затрат. [1] [2]

Данные и рынкиСогласованные закрытия и объёмы одного инструмента и потока с документированной обработкой корпоративных событий. Не объединяйте спотовый объём с ценами бессрочных контрактов без отдельного межрыночного эксперимента.
Таймфреймы исследованияДля дневных и внутридневных версий требуются отдельные тесты. Длительность временных окон, указанная в этой статье, относится к исследовательским условиям, а не к оптимизированным рекомендациям.
Синтетическая последовательность OBV выглядит следующим образом: 0, 10, 2, 2, 22, 13; нижние столбцы показывают объем баров. Вертикальная ось представляет кумулятивный знаковый объем, а не цену.Открыть иллюстрацию в полном размере
Оригинальная синтетическая иллюстрация. Синтетическая последовательность OBV: 0, 10, 2, 2, 22, 13; нижние столбцы показывают объем баров. Вертикальная ось представляет кумулятивный знаковый объем, а не цену.

Практическая последовательность действий

Порядок действий: Балансовый объём OBV: дивергенция и алгоритмы пробоя
Все шаги подробно описаны ниже. На каждом этапе нужно записывать причину отклонения при нехватке данных или невыполнении условий.
  1. Проверьте последовательностьИспользуйте согласованные цены, объемы и правила корректировки.
  2. Накапливайте объём со знакомЗнак задаёт изменение закрытия к предыдущему закрытию; равные цены добавляют ноль.
  3. Подтвердите оба экстремумаРасхождение возникает только после того, как становится доступен последующий поворотный момент.
  4. Дождитесь подтверждения цены.Триггер пробоя или линии шеи должен возникнуть после создания кандидата.
  5. Сравните контрольные вариантыДля ценовых знаков и фильтров OBV необходимо обеспечить идентичное выполнение.

Направление изменения закрытия задаёт знак всему объёму бара

Рост на 0.01 и рост на 5 оба прибавляют полный объём бара. При равных объёмах вклад в OBV одинаков, хотя доходности сильно различаются. [1] Поэтому OBV описывает распределение активности между периодами роста и падения, а не величину ценового движения.

Начальное значение может быть равно нулю или другой произвольной константе. Абсолютные показания по различным инструментам или историям с разными начальными датами не являются напрямую сопоставимыми. Более полезными для исследования являются изменения, наклоны и позиции в пределах скользящего окна. Каждая завершенная сделка имеет покупателя и продавца; название баланса не превращает объем торгов в чистый капитал, поступающий в актив.

Стандартный знак определяется предыдущим закрытием, а не текущим открытием. После ночного гэпа свеча может закрыться ниже своего открытия, но выше предыдущего закрытия: её вклад в OBV положителен. Расчёт по цвету свечи — другой индикатор с отдельными названием и настройками.

Вычислите нормализованную характеристику исследования.

Для сравнения инструментов предлагается делить изменение OBV за 20 баров на суммарный объём тех же 20 вкладов. При корректном неотрицательном объёме и положительном знаменателе признак лежит между −1 и 1. Это новый нормализованный признак, не исходный уровень OBV. Бары с равными закрытиями дают ноль в числителе, но их объём остаётся в знаменателе.

Двадцать вкладов со знаком требуют 21 цены закрытия, включая закрытие перед окном. Проверка лишь 20 цен может привести к отрицательному индексу массива или неполному первому изменению. Явно требуйте полный начальный набор и сохраняйте пропуски как недоступные значения, не заменяя их якобы нейтральным нулём.

Рассчитывайте признаки по завершённым барам или задайте отдельную версию реального времени с предварительными данными. С каждым сигналом сохраняйте время отсечения входов и получения данных. Пересмотры корпоративных корректировок могут менять исторические знаки, поэтому указывайте политику корректировки и версию набора данных вместе с результатом.

obv[0] = 0
for t in 1..last_closed_bar:
    if C[t] > C[t-1]: obv[t] = obv[t-1] + V[t]
    elif C[t] < C[t-1]: obv[t] = obv[t-1] - V[t]
    else: obv[t] = obv[t-1]
if t >= 20 and valid_full_window(t,21) and sum(V[t-19:t+1]) > 0:
    f = (obv[t]-obv[t-20]) / sum(V[t-19:t+1])
else: f = NA

Используйте одинаковые временные метки для цены и дивергенции.

Возьмите подтверждённые минимумы цены p1 и p2. Для бычьей дивергенции второй минимум цены ниже первого, а OBV точно в момент второго экстремума выше OBV в момент первого. Кандидат существует лишь после подтверждения p2. Нельзя выбирать другую впадину OBV ради красивого примера; разрешённый сдвиг времени требует фиксированного окна сопоставления и правила выбора при равенстве.

Дивергенция — признак, а не триггер входа. Предлагаемое подтверждение — более позднее закрытие выше максимума отскока между минимумами. Если уровень пройден до доступности p2, отметьте кандидата пропущенным или истёкшим по заранее заданному правилу. Нельзя задним числом ставить вход, пока второй экстремум был неизвестен.

Фильтр наклона и детектор дивергенции отвечают на разные вопросы. Рост OBV за последние 20 баров не означает наличия двух корректно сопоставленных впадин. Разделяйте идентификаторы признаков и записывайте, какой пропустил кандидата. Это позволит разобрать случаи, когда похожие визуальные описания создают разные наборы событий.

Пример решения задачи и контрпример.

Рассмотрим цены закрытия 100, 101, 100, 100, 102 и 101, а также объемы со второго бара 10, 8, 12, 20 и 9. Начиная с нуля, OBV превращается в 0, 10, 2, 2, 22 и 13. Закрывшийся без изменений бар имеет объем 12, но оставляет OBV без изменений. На иллюстрации используется именно эта последовательность объемов со знаком.

В качестве контрпримера, цена падает с 101 до 95 при объеме торгов 10, затем незначительно повышается с 95 до 95.01 при объеме торгов 100. OBV увеличивается на 90, хотя цена остается почти на 6% ниже своего первоначального значения. Вывод о том, что покупательское давление компенсировало все потери цены, приписал бы формуле информацию, которой она не содержит.

Дробление акций также может привести к механическому падению цены закрытия в нескорректированном потоке данных. Алгоритм вычтет объем, несмотря на отсутствие соответствующего экономического снижения цен. Проверяйте цены и объемы в периоды вокруг дат корректировки вместе; независимо скорректированные поля могут дать правдоподобно выглядящую, но противоречивую последовательность данных.

Задайте проверяемый фильтр пробоя

Предлагаемый базовый вариант фиксирует Q как максимальный максимум предыдущих 20 баров и требует текущее закрытие выше Q плюс заранее заданный буфер ATR. Одна ветвь требует нормализованный признак выше нуля, другая — OBV выше его максимума за предыдущие 20 баров. Это отдельные эксперименты, а не повод перебирать десятки порогов и публиковать лучший.

Сохраняйте каждого ценового кандидата до фильтра OBV, чтобы видеть отклонённую группу. Вход — на следующем реалистично исполнимом событии после подтверждения. Задайте структурный стоп или стоп ретеста, с теми же целями и выходами по времени в контрольной ветви. Изменение OBV никогда не разрешает отодвигать стоп.

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

Спросите, добавляет ли объем дополнительную информацию помимо ценовых знаков.

Сравните OBV с числом баров роста закрытия минус число баров снижения закрытия. Сходные результаты укажут на небольшой вклад объёмного веса в этой выборке. Затем сравните исходное изменение OBV и нормализованное на той же совокупности, временах кандидатов и модели исполнения. Проверьте вход и выход из окна баров с необычно большим объёмом.

Используйте хронологическую оценку вне выборки и представьте результаты по группам ликвидности. Укажите спред, проскальзывание и соответствующее финансирование. Для криптовалют укажите торговую площадку и источник объема: историческая выборка, изученная NBER, мотивирует проверку качества данных, но не устанавливает одинаковую предвзятость в отчетности для каждой современной торговой площадки. [3]

Записывайте чистую ожидаемую доходность, просадку, количество сделок и отклоненные возможности, а не только успешные дивергенции. Информативный отрицательный результат может показать, что OBV меняет выбор без улучшения чистых результатов, или что кажущаяся выгода исчезает при задержке исполнения одного события. Оба вывода более полезны, чем галерея выигрышных графиков.

Частые ошибки

Путаница в цвете свечи со знаком OBV

Стандартный знак сравнивает соседние закрытия; сравнение закрытия с открытием задаёт другой индикатор.

Сравнение уровней после сброса серии

Произвольное начальное значение сдвигает линию, не создавая при этом экономического сигнала.

Входы по дивергенции задним числом

Визуально убедительная пара экстремумов могла ещё не быть доступна в предполагаемый момент входа.

Список проверки перед использованием метода

Отмечайте пункты после проверки на своих данных. Прогресс сохраняется в этом браузере и не подтверждает прибыльность стратегии.

0/7 пунктов

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

Может ли OBV заменить CVD?

Нет. OBV присваивает знак всему объёму бара по изменению закрытия; CVD требует документированной классификации объёма исполненных сделок.

Гарантирует ли повышение OBV повышение цен?

Нет. Цена может существенно упасть, а затем немного восстановиться при большом объеме торгов. Эта взаимосвязь является эмпирической гипотезой.

Источники исследования

Каждый источник подтверждает указанное рядом определение или доказательство. Псевдокод, искусственные примеры и предлагаемые параметры требуют отдельной проверки.

  1. On Balance VolumeFidelity. Формула OBV и традиционная интерпретация дивергенции без обратного тестирования предложенных вариантов. Проверено: .
  2. Built-in functions and variables for popular indicatorsTradingView. Документация по встроенным модулям OBV и MFI не является доказательством прибыльности. Проверено: .
  3. Crypto Wash TradingNBER. Исторические исследования качества сообщаемых объемов криптовалют; утверждение об универсальном текущем уровне погрешности отсутствует. Проверено: .

Связанные методы

Примечание о рисках

Материал предназначен для обучения и планирования исследований, а не является финансовой рекомендацией. Backtest моделирует прошлые данные, не гарантирует будущую доходность и не совершает реальные сделки. Методы библиотеки не обязательно реализованы в приложении. См. методологию и учебный центр.

Проверьте правила, прежде чем рисковать реальным капиталом

Проверьте возможности приложения, данные и каждую смоделированную сделку; сложные детекторы могут потребовать отдельной реализации.

Скачать Backtest в App Store