BMP (Balance of Market Power) — Баланс рыночной силы

Баланс рыночной силы (BMP) — это технический индикатор, призванный определить соотношение сил между покупателями и продавцами на рынке в конкретный момент времени или за указанный период. Разработан Игорем Лившиным, представлен в 2001 году в журнале Technical Analysis of Stocks & Commodities. Индикатор оценивает, какая сторона доминирует — быки (покупатели) или медведи (продавцы) — и может использоваться для подтверждения тренда, выявления возможных разворотов и оценки силы ценового движения. BMP часто применяется в торговых стратегиях как вспомогательный осциллятор: положительные значения указывают на преимущество покупателей, отрицательные — на преимущество продавцов. Индикатор может строиться как в абсолютных единицах, так и в нормализованном виде (например, в процентах или в диапазоне [-1, +1] или [0,100]).
Индикатор BMP — Баланс рыночной силы относится к категории *осцилляторов* (momentum/strength oscillators) и индикаторов рыночного давления/баланса (market pressure / market sentiment indicators).
Как он используется в торговле?
▪ Определите силу ценовых тенденций, анализируя баланс между давлением покупки и продажи.
▪ Сигнальный потенциал меняется на противоположный тренд, когда происходят значительные изменения значений BMP.
▪ Подтвердите существующие тенденции, согласовав движения индикатора баланса мощности с направлением цен.
Формула расчёта индикатора Balance of Market Power
Существует несколько вариантов построения BMP. Один из распространённых концептуальных подходов — сравнение «силы» быков и медведей через компоненты бара (свечи): диапазон вверх (up movement), диапазон вниз (down movement), объём и/или разницу между закрытием и открытием. Ниже приведены несколько реализаций — от простых до более сложных.
Вариант A — простая разница вверх/вниз (без учёта объёма)
▪ Для каждого бара i вычисляем:
— up_i = max(0, close_i — open_i) — «вклад» быков (положительная разница)
— down_i = max(0, open_i — close_i) — «вклад» медведей (положительная разница)
▪ За N периодов:
— Bulls = sum_{k=0..N-1} up_{i-k}
— Bears = sum_{k=0..N-1} down_{i-k}
▪ BMP (абсолютный) = Bulls — Bears
▪ Нормализованный вариант (чтобы получить в диапазоне [-1, +1] или [0,100]):
— BMP_norm = (Bulls — Bears) / (Bulls + Bears) → диапазон (-1, +1), при Bulls+Bears>0
— Или в процентах: BMP_pct = 100 * (Bulls — Bears) / (Bulls + Bears)
Пояснение:
— BMP_norm > 0 → преимущество покупателей;
— BMP_norm < 0 → преимущество продавцов;
- BMP_norm = 0 → равновесие.
Вариант B — с учётом размера баров (range-weighted)
▪ Вместо разницы close-open можно использовать максимальный «вклад» хода цены:
— up_i = max(0, high_i — open_i) или max(0, close_i — low_i) — выбирают по смыслу
— down_i = max(0, open_i — low_i) или max(0, high_i — close_i)
▪ Дальше аналогично суммируют и нормализуют.
Вариант C — с учётом объёма (volume-weighted BMP)
▪ Учитывают объём V_i, чтобы сильные движения при больших объёмах давали больший вклад:
— up_i = V_i * max(0, close_i — open_i)
— down_i = V_i * max(0, open_i — close_i)
▪ Далее:
— Bulls = sum up_i (за N периодов)
— Bears = sum down_i (за N периодов)
— BMP_norm = (Bulls — Bears) / (Bulls + Bears)
Вариант D — «скользящая» версия (с EMA/SMA)
▪ Вместо простых сумм используют скользящие средние (SMA или EMA) от up и down:
— Bulls = MA_N(up)
— Bears = MA_N(down)
— BMP = (Bulls — Bears) / (Bulls + Bears)
Вариант E
▪ Вычисление BMP для каждой отдельной свечи:
Сырой BMP = ((Цена закрытия — Цена открытия) / (Максимум — Минимум)) * Объем
В случае, если (Максимум — Минимум) равен нулю, сырой BMP принимается равным нулю.
▪Сглаживание BMP с помощью простого скользящего среднего (SMA):
BMP = SMA(Сырой BMP, Length)
где:
— Цена закрытия — цена закрытия текущей свечи.
— Цена открытия — цена открытия текущей свечи.
— Максимум — максимальная цена текущей свечи.
— Минимум — минимальная цена текущей свечи.
— Объем — объем торгов за период текущей свечи.
— Length — выбранный период сглаживания.
Пример (псевдокод):
for each bar i:
up[i] = max(0, close[i] - open[i])
down[i] = max(0, open[i] - close[i])
Bulls = sum_{k=0..N-1} up[i-k]
Bears = sum_{k=0..N-1} down[i-k]
if (Bulls + Bears) > 0:
BMP_norm = (Bulls - Bears) / (Bulls + Bears) // диапазон (-1, +1)
else:
BMP_norm = 0
Замечания:
— Выбор N (периода) влияет на чувствительность: малый N — более шумный и быстрый индикатор; большой N — сглаженный, медленнее реагирующий.
— Нормализация важна для сравнения значений между разными инструментами и таймфреймами.
— Учет объёма делает индикатор ближе к реальной «рыночной силе», поскольку большие объёмы усиливают сигналы.
Торговля с индикатором BMP (Balance of Market Power)

▪ Положительные значения BMP указывают на доминирование покупателей (быков) на рынке.
▪ Отрицательные значения BMP указывают на доминирование продавцов (медведей) на рынке.
▪ Пересечение нулевой линии может рассматриваться как сигнал смены тренда.
▪ Экстремальные значения (выше или ниже определенных уровней) могут указывать на перекупленность или перепроданность рынка.
▪ Дивергенции между BMP и ценой могут сигнализировать о потенциальном развороте тренда.


















