Розробка системи рівнів підтримки/опору

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка системи рівнів підтримки/опору
Середній
~5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Розробка системи рівнів підтримки/опору

Автоматичне визначення рівнів підтримки та опору — завдання, яке кожен досвідчений трейдер вирішує інтуїтивно, але алгоритмізація вимагає чіткої методології. Система має знаходити «значимі» рівні: ті, до яких ціна повертається багато разів.

Методи визначення рівнів

1. Кластерний аналіз pivot points

Найпоширеніший підхід. Алгоритм:

  1. Знайти всі pivot highs та pivot lows за період (rolling window)
  2. Групувати близькі рівні в кластери (tolerance ±0.5% від ціни)
  3. Оцінити «силу» кожного рівня: кількість дотиків, обсяг на рівні, свіжість
from scipy.cluster.hierarchy import linkage, fcluster

def cluster_levels(price_points, tolerance=0.005):
    prices = np.array([p[1] for p in price_points]).reshape(-1, 1)
    Z = linkage(prices, method='single')
    labels = fcluster(Z, t=tolerance * np.mean(prices), criterion='distance')
    clusters = {}
    for i, label in enumerate(labels):
        clusters.setdefault(label, []).append(price_points[i])
    return {k: np.mean([p[1] for p in v]) for k, v in clusters.items()}

2. Volume Profile / POC

Рівні з максимальним торговим обсягом — найзначиміші зони. Point of Control (POC) — цінова рівень з найбільшим обсягом за період. Цей підхід описаний детальніше в системі Volume Profile.

3. Круглі числа та психологічні рівні

Круглі числа (50000, 100000 для BTC; 3000, 4000 для ETH) діють як рівні чисто психологічно. Алгоритм додатково додає такі рівні з базовою вагою.

4. Fractal рівні

Bill Williams fractal: pivot high з двома нижчими highs з кожної сторони. Суворіше визначення значимого локального максимуму, ніж простий rolling max.

Оцінка сили рівня

Кожен рівень отримує score за кількома метриками:

Метрика Опис Вага
Touch count Скільки разів ціна тестувала рівень Висока
Volume at level Обсяг торгів біля рівня Висока
Recency Наскільки недавно рівень був актуальним Середня
Bounce strength Наскільки сильно ціна відштовхнулася Середня
Timeframe confluence Рівень видимий на кількох таймфреймах Висока

Рівень, видимий на денному та 4h таймфреймі одночасно, отримує значно вищий score.

Динамічні рівні

Статичні рівні доповнюються динамічними:

  • Moving Averages (EMA 20, 50, 200) — динамічні S/R
  • Bollinger Bands — верхня/нижня смуга як динамічне S/R
  • VWAP та anchored VWAP — динамічні рівні на основі обсягу

Візуалізація та оновлення

Рівні відриховуються як горизонтальні лінії або зони (прямокутники) на цінному графіку. Товщина/насиченість кольору пропорційна силі рівня.

Зони замість ліній — рівень представляється не як точна ціна, а як діапазон (±ATR/4 від центральної ціни). Це реалістичніше: ринок «тестує» зону, а не точку.

Автоматичне оновлення — при пробої рівня (ціна закрилася за межами зони) він позначається як «broken» та змінює статус (support → resistance або навпаки — зміна полярності). Нові рівні додаються у реальному часі по мірі накопичення pivot points.

Стек: Python для розрахунків (pandas, scipy, numpy), PostgreSQL для зберігання рівнів, WebSocket API для real-time оновлень фронтенду, React + TradingView Lightweight Charts для візуалізації. Система сканує заданий список інструментів та оновлює рівні при кожному закритті свічки.