Розробка системи аналізу профілю обсягу (Volume Profile)
Volume Profile — один з найінформативніших інструментів технічного аналізу. На відміну від стандартного індикатора обсягу (обсяг per bar), Volume Profile показує розподіл торгового обсягу за цінними рівнями. Це дозволяє бачити не «коли» було багато торгів, а «де» зосередили основну ринкову активність.
Ключові концепції
POC (Point of Control) — цінова рівень з максимальним обсягом за вибраний період. Ціна має тенденцію повертатися до POC особливо на плоских ринках. POC часто виступає як магніт та ключовий рівень підтримки/опору.
Value Area (VA) — діапазон цін, де було здійснено 70% всього торгового обсягу. Стандартне правило 70% походить від Market Profile (TPO метод) Пітера Стейдлмайєра.
- VAH (Value Area High) — верхня границя зони вартості
- VAL (Value Area Low) — нижня границя зони вартості
HVN (High Volume Node) — цінові зони з високим обсягом. Служать підтримкою/опором: ціна проводить в них багато часу, важко пройти через них.
LVN (Low Volume Node) — зони з низьким обсягом. Ціна проходить їх швидко — «повітряні кишені» де рух може прискорюватися.
Розрахунок Volume Profile
Крок 1: Визначення діапазону
Вибираємо період (сесія, тиждень, місяць, користувацький діапазон) та цінний діапазон [low, high].
Крок 2: Створення Price Buckets
Розділяємо діапазон на N рівних цінових бінів (зазвичай 100–300):
def calculate_volume_profile(df, n_bins=200):
price_min = df['low'].min()
price_max = df['high'].max()
bin_size = (price_max - price_min) / n_bins
profile = np.zeros(n_bins)
for _, row in df.iterrows():
candle_low_bin = int((row['low'] - price_min) / bin_size)
candle_high_bin = int((row['high'] - price_min) / bin_size)
bins_covered = candle_high_bin - candle_low_bin + 1
vol_per_bin = row['volume'] / bins_covered
profile[candle_low_bin:candle_high_bin+1] += vol_per_bin
return profile, price_min, bin_size
Крок 3: Розрахунок POC та Value Area
Розширюємо від POC в обидві сторони для захоплення цільового відсотка обсягу.
Типи Volume Profile
Session Volume Profile — профіль однієї торгової сесії (24h для крипти). Показує справедливу вартість за день.
Composite Volume Profile — профіль за кілька сесій/тижнів. Довгострокова структура ринку.
Anchored Volume Profile — профіль, що починається з конкретної події: ATH, великий пробій, початок тренду. Найгнучкіший інструмент.
Visible Range Volume Profile — профіль видимого діапазону графіку. Авто-перераховується при прокруці.
Fixed Range — користувач визначає початкову та кінцеву свічку вручну.
Торгові застосування
VA Rule:
- Ціна входить у VA знизу (з VAL) → висока імовірність руху до POC потім до VAH
- Ціна не може утриматися за межами VA (відкрилася зовні, не може утримати) → повернення всередину VA
- Пробій та закриття за межами VA з обсягом → трендовий рух
POC як магніт: ціна тяжіє до POC на плоскому русі. Торговий діапазон часто «тяжіє» навколо POC.
LVN як зони швидкості: вхід у LVN у напрямку тренду — ціна проходить швидко до наступного HVN.
Інтеграція з іншими індикаторами
Volume Profile найефективніший у комбінації з:
- VWAP — де VWAP відносно POC?
- Рівні підтримки/опору — чи збігаються вони з HVN/LVN?
- Order Flow — cumulative delta на рівні POC
Архітектура системи
Дані: повні tick дані або агреговані OHLCV + обсяг per bar. Для точного профілю потрібен обсяг per price level — tick дані або footprint від біржі.
Біржі з tick/footprint API: Binance (aggTrades), Coinbase Advanced Trade, Kraken (trades endpoint). Всі угоди зберігаються в ClickHouse (оптимально для time-series з агрегаціями).
Розрахунок: Python/NumPy для швидкого розрахунку профілів. Розрахунок Composite VP за 30 днів на 1m даних займає 2–5 секунд.
Візуалізація: горизонтальна гістограма біля цінового графіку. POC — яскрава горизонтальна лінія, VA — напівпрозорий прямокутник, HVN — темні бари, LVN — світлі.
Real-time оновлення: профіль поточної сесії оновлюється при кожній новій угоді. Кеш у Redis для швидкої доставки клієнтам.
Frontend: React + D3.js для кастомної гістограми. TradingView кастомний індикатор через Pine Script v5 для вбудованого VP.
Розробляємо повноцінну систему Volume Profile з підтримкою Session/Composite/Anchored/Visible Range VP, real-time розрахунком, експортом у TradingView та web-дашборд.







