LRS (Linear Regression Slope) — Наклон линейной регрессии

Linear-Regression-Slope
Индикатор Linear Regression Slope (наклон линейной регрессии) показывает направленность и силу тренда цен за заданный период, вычисляя наклон прямой, построенной методом наименьших квадратов по ценам за этот период. Индикатор даёт числовую характеристику: положительный наклон — восходящий тренд, отрицательный — нисходящий; по абсолютному значению можно оценить крутизну движения. Состоит из индикаторной линии, которая колеблется вокруг базовой линии со значением 0. Может быть представлен в виде линии или гистограммы.

Принцип работы: Индикатор сглаживает движение графика скользящей средней указанного периода и формирует линии регрессии, заканчивающиеся на каждом баре (в зависимости от выбранного периода). Наклон линии регрессии записывается как значение индикатора для каждого бара.

Интерпретация:
— Наклон > 0: средняя тенденция растущая.
— Наклон < 0: средняя тенденция падающая. - Наклон ≈ 0: отсутствие выраженного тренда (флэт). - Чем больше абсолютное значение наклона, тем сильнее и резче средняя направленность движения цен. Нормализация значения наклона: исходное значение умножается на 100, а результат делится на цену. Это важно для сравнения рынков, торгующих в разных диапазонах. Нормализованное значение наклона отражает процентное изменение цены за бар линии регрессии. Например:
— Если нормализованный наклон — 0,25, это означает, что линия регрессии увеличивается со скоростью 0,25% за бар.
— Нормализованный наклон -0,60 предполагает, что линия регрессии уменьшается со скоростью 0,60% за бар.

Математически наклон получается путем минимизации суммы квадратов отклонений между фактическими ценами и подобранной линией регрессии.

Преимущества:
— Устойчив к краткосрочному шуму за счёт агрегирования данных; даёт воспроизводимую линейную оценку тренда.
— Прямо показывает скорость изменения цены в единицу времени (в зависимости от единиц оси X).

Ограничения:
— Линейная аппроксимация — плохо описывает нелинейные развороты и экстремумы; запаздывает на величину окна (периода).
— Чувствителен к выбору периода (короткий — более реактивный, но шумный; длинный — более сглаженный, но с большим запаздыванием).


Расчет индикатора Linear Regression Slope, LRS

Методика расчета: Наклон вычисляется как разность между правой и левой точками линейной регрессии, затем эта разность делится на период.

Обозначения:
— N — длина окна (период), N ≥ 2.
— i = 0, 1, …, N-1 — индекс внутри окна; можно считать i = 1..N, важно согласовать с реализацией.
— t_k — независимая переменная (временная координата) для k‑го бара в окне. Обычно используют последовательные целые 0..N-1 или 1..N.
— y_k — зависимая переменная, например цена закрытия для k‑го бара.
— slope — искомый наклон линейной регрессии.

Формула наклона (метод наименьших квадратов)
slope = ( N * Σ(t_k * y_k) — Σ(t_k) * Σ(y_k) ) / ( N * Σ(t_k2) — (Σ(t_k))2).

Где суммы берутся по k от 1 до N (или от 0 до N-1, если используете такую индексацию).

Упрощённый вариант при равномерно распределённых t_k = 0,1,…,N-1
Для t_k = 0..N-1 формулы сумм Σ(t_k) и Σ(t_k2) имеют закрытую форму:
— Σ(t_k) = N*(N-1)/2
— Σ(t_k2) = (N-1)*N*(2N-1)/6

Тогда:
slope = ( N * Σ_{k=0}^{N-1} (k * y_k) — (N*(N-1)/2) * Σ_{k=0}^{N-1} y_k ) / ( N * (N-1)*N*(2N-1)/6 — (N*(N-1)/2)2 )

Можно упростить знаменатель, но обычно достаточно оставить в этом виде.

Примерная числовая реализация (псевдокод)
1. Для каждого бара вычислить массив y[0..N-1] (последние N цен).
2. Вычислить S_y = Σ y[k] 3. Вычислить S_ty = Σ k * y[k] (k = 0..N-1)
4. S_t = N*(N-1)/2
5. S_t2 = (N-1)*N*(2N-1)/6
6. denom = N * S_t2 — (S_t)2
7. slope = (N * S_ty — S_t * S_y) / denom

Нормировка и варианты вывода
— Поскольку slope измеряется в единицах цены за 1 бар (если t_k шаг = 1 бар), часто его нормируют для сравнения между инструментами или различными таймфреймами:
— Умножить/разделить на среднюю цену, чтобы получить относительную скорость (например, slope / mean_price → изменение в долях цены).
— Перевести в проценты: 100 * slope / mean_price.
— Иногда используют конечную точку линейной регрессии (Linear Regression Line End) или угол наклона (atan(slope) в радианах/градусах) для более интуитивного представления.
— В Pine Script (TradingView) есть встроенная функция linear_regression_slope(series, length), которая возвращает этот показатель.

Быстрый пример: N = 5, цены y = [10, 10.5, 11, 11.2, 11.8] с k = 0..4
— S_y = 54.5
— S_ty = 0*10 + 1*10.5 + 2*11 + 3*11.2 + 4*11.8 = 0 + 10.5 + 22 + 33.6 + 47.2 = 113.3
— S_t = 5*4/2 = 10
— S_t2 = 4*5*9/6 = 30
— denom = 5*30 — 102 = 150 — 100 = 50
— slope = (5*113.3 — 10*54.5) / 50 = (566.5 — 545) / 50 = 21.5 / 50 = 0.43
Интерпретация: средняя прибавка цены ≈ 0.43 единицы за бар.

Дополнительные замечания
— Если хотите реализовать онлайн-версию (сдвиг по времени), при каждом новом баре рассчитывайте slope для окна N последних значений (скользящее окно).
— Для ускорения расчёта можно применять рекурсивные формулы для сумм S_y и S_ty (вычитая старое значение и добавляя новое), чтобы не пересчитывать каждую сумму заново.
— Если используете t_k = 1..N вместо 0..N-1 — формула остаётся верной, но заранее нужно использовать соответствующие значения Σ t и Σ t^2 (Σ t = N*(N+1)/2 и т.д.).


Как использовать индикатор Linear Regression Slope, LRS

● Пересечение нулевой линии означает смену тенденции.
Linear-Regression-Slope-4
Когда индикатор пересекает выше среднего значения, это может быть сигнал к покупке или выходу в длинную позицию, когда — ниже среднего значения — указание на возможность продажи или выхода в короткую позицию.

● Дивергенция между направлением движения цены и индикатора LRS.

● Ранние предупреждения о смене тренда — индикатор может давать сигналы, когда наклон меняет направление.

— Фильтрация сделок по направлению: торговать только в сторону, совпадающую со знаком наклона.
— Определение ускорения/замедления тренда: изменение наклона во времени.