Разработка системы трендовых линий
Трендовые линии — фундаментальный инструмент технического анализа: восходящая линия соединяет последовательно повышающиеся минимумы, нисходящая — понижающиеся максимумы. Автоматическое построение качественных трендовых линий сложнее, чем кажется: нужно отличать «правильные» линии от артефактов.
Алгоритм построения
Этап 1: Поиск anchor points
Используем pivot points — локальные экстремумы с минимальным расстоянием между ними (min_strength параметр). Чем больше strength, тем «крупнее» экстремумы.
Этап 2: Линейная регрессия по парам точек
Для каждой пары pivot lows строим линию и проверяем, не пробивает ли цена эту линию между точками. Линия валидна, если цена остаётся выше/ниже неё на всём отрезке.
Этап 3: Оценка качества
Хорошая трендовая линия имеет:
- Минимум 3 касания (две точки строят линию, третье подтверждает)
- Небольшое количество ложных пробоев (price closes through)
- Актуальность — последнее касание недавно
Этап 4: Ранжирование
Score линии = количество касаний × вес_таймфрейма × (1 / дни_с_последнего_касания)
Обнаружение пробоев
При пробое трендовой линии (свеча закрылась за пределами) система:
- Помечает линию как «broken»
- Генерирует алерт с деталями (инструмент, таймфрейм, направление пробоя)
- Рассчитывает potential target (equal move projection)
Ложные пробои фильтруются: если цена вернулась за линию в течение следующих 1–3 свечей — это ложный пробой (bear/bull trap), а не настоящий breakout.
Каналы
Параллельная линия к основной трендовой линии, построенная через противоположные экстремумы, формирует канал. Система автоматически строит каналы и отслеживает цену внутри них: касание нижней границы восходящего канала = зона покупки, верхней = зона продажи.
Стек: Python + pandas для расчётов, PostgreSQL для хранения линий с параметрами, React + TradingView Lightweight Charts для отрисовки. Линии обновляются в реальном времени при каждом закрытии свечи, алерты на пробои — через Telegram Bot или webhook.







