Как мы находим уровни

22.05.2026 · Последнее обновление


Шаги алгоритма

  • 1. Свечи. Берём 500 свечей выбранного таймфрейма через прокси с биржи.
  • 2. Пивоты. Находим локальные максимумы и минимумы (фрактальные пивоты с lookback = 3 свечи с каждой стороны).
  • 3. Кластеризация. Группируем пивоты, цены которых отличаются меньше чем на 0.5%.
  • 4. Классификация.
    • Кластер из пивотов И low'ов И high'ов → S/R Flip
    • Кластер из 2+ только high'ов → Сопротивление
    • Кластер из 2+ только low'ов → Поддержка
  • 5. Скоринг. Чем больше touches и чем сбалансированнее кластер (для Flip), тем выше Strength.
  • 6. Топ-6. Сортируем по Strength, оставляем 6 самых сильных уровней.

Параметры по умолчанию

  • Tolerance кластеризации: 0.5%
  • Lookback: 3 свечи каждая сторона
  • Min touches для PRIOR_HIGH / PRIOR_LOW: 2
  • Глубина истории: 500 свечей

Фильтры релевантности

Чтобы график не превращался в кашу из 50 линий — каждый кандидат проходит через три фильтра, и только выжившие попадают на чарт:

  • Recency weighting — недавние пивоты весят больше старых. Формула: (i/N)^1.5. Это значит, что свежие пики и впадины задают силу уровня, а старые добавляют контекст.
  • Distance ≤ 25% от текущей цены. Уровень в 70% ниже current price торгово неактуален — выкидываем.
  • Stale cut — если последнее касание уровня в самых старых 40% графика, тоже скрываем. Уровень отыграл давно.
  • Dedup — если два уровня в пределах 1% друг от друга, оставляем сильнейший (визуально они всё равно сливались бы в одну полосу).

Эти параметры — наши стартовые. По мере накопления данных бэктеста будем подбирать оптимальные значения для разных таймфреймов и разных классов монет.