KF (Kalman Filter) — Фильтр Калмана

«Фильтр Калмана» (Kalman Filter) (также известная как линейно-квадратичная оценка) — рекурсивный статистический алгоритм для оценивания скрытого состояния динамической системы по шумным наблюдениям. Фильтр Калмана — это продвинутый индикатор сглаживания цены, основанный на математическом алгоритме прогнозирования, широко применяемом в системах навигации, робототехнике и финансовом анализе. В теханализе его используют для выделения «истинного» ценового сигнала (уровня или тренда) из наблюдаемых цен, содержащих рыночный шум.

Идея: модель состояния (например, истинная цена и/или её тренд) предсказывается по предыдущей оценке, затем прогноз корректируется при поступлении новой цены с весом, зависящим от относительных неопределённостей прогноза и измерения. Этот вес (Калмановский коэффициент) автоматически адаптируется со временем.
Преимущества: адаптивное сглаживание (меняющийся вес), более быстрое реагирование при изменении рынка по сравнению с фиксированными скользящими средними, возможность учитывать динамику (скорость/тенденцию) через расширение состояния.
Принцип работы
Фильтр Калмана работает в два этапа:
● Прогнозирование — использует оценку текущего состояния для прогнозирования следующего состояния системы. Прогноз основан на математической модели динамики системы, которая описывает, как состояние развивается с течением времени.
● Обновление — включает новые измерения для обновления оценки состояния. Фильтр вычисляет средневзвешенное значение прогнозируемого состояния и нового измерения, при этом весовые коэффициенты определяются соответствующими неопределенностями. Обновлённая оценка состояния более точная, так как учитывает как прогноз, так и новую информацию.
Меньшая задержка по сравнению с классическими скользящими средними: В отличие от стандартных MA и EMA, фильтр Калмана реагирует на изменение цены быстрее и точнее, без излишней дерготни.
Расчет Фильтр Калмана (Kalman Filter)
1) Формула прогнозирования будущего состояния системы, основываясь на предыдущей информации о ее состоянии и движении:

2) Формула корректировки прогноза, основываясь на новой информации от сенсоров:

Формула расчёта Фильтр Калмана (базовый линейный дискретный KF, скалярный случай)
Обозначения:
— x_t — истинное скрытое состояние (например «истинная» цена) в момент t;
— z_t — наблюдение (реальная цена) в момент t;
— \hat{x}_{t|t-1} — прогноз состояния в момент t, основанный на данных до t-1;
— \hat{x}_{t|t} — оценка состояния в момент t после учёта z_t;
— P_{t|t-1}, P_{t|t} — дисперсии ошибок прогноза и оценки соответственно;
— Q — дисперсия шума процесса (process noise);
— R — дисперсия шума измерения (measurement noise);
— A — коэффициент перехода состояния (в простейшем случае A = 1);
— H — коэффициент наблюдения (при прямом наблюдении H = 1).
Модель:
— Состояние: x_t = A * x_{t-1} + w_t, где w_t ~ N(0, Q)
— Наблюдение: z_t = H * x_t + v_t, где v_t ~ N(0, R)
Шаги алгоритма:
1. Прогноз (predict)
— Прогноз состояния:
\hat{x}_{t|t-1} = A \, \hat{x}_{t-1|t-1}
— Прогноз дисперсии:
P_{t|t-1} = A^2 \, P_{t-1|t-1} + Q
2. Обновление (update) при получении z_t
— Калмановский коэффициент:
K_t = \dfrac{P_{t|t-1} \, H}{H^2 \, P_{t|t-1} + R}
(при H = 1: K_t = P_{t|t-1} / (P_{t|t-1} + R))
— Обновлённая оценка состояния:
\hat{x}_{t|t} = \hat{x}_{t|t-1} + K_t \bigl(z_t — H \, \hat{x}_{t|t-1}\bigr)
(при H = 1: \hat{x}_{t|t} = \hat{x}_{t|t-1} + K_t (z_t — \hat{x}_{t|t-1}))
— Обновлённая дисперсия:
P_{t|t} = (1 — K_t \, H) \, P_{t|t-1}
(при H = 1: P_{t|t} = (1 — K_t) P_{t|t-1})
Ключевые примечания:
— Выбор Q и R определяет поведение фильтра: больше Q → фильтр быстрее реагирует (меньше доверия прошлой оценке); больше R → фильтр сглаживает (меньше доверия наблюдению).
— Для учёта тренда целесообразно расширять состояние (например, x_t = [уровень, тренд]^T) и использовать матричную форму (A, H, Q, R — матрицы). Тогда те же шаги записываются в матричной форме.
— Для нелинейных наблюдений/моделей используют EKF/UKF; для практической торговли часто применяют упрощённые версии с A=1, H=1, фиксированными Q и R.
Как использовать Фильтр Калмана (Kalman Filter)
Некоторые способы использования фильтра Калмана в трейдинге:
● Торговля на возврат к среднему значению — текущая цена сравнивается с расчётной в качестве фильтра на вход.
● Торговля парами — фильтр динамически оценивает спред между скоррелированными активами и адаптирует коэффициенты хеджирования в зависимости от меняющихся условий рынка.
● Следование за трендом — фильтр фильтрует краткосрочный шум для более точного выявления долгосрочных ценовых трендов.
● Использование всех сигналов, которые генерируют скользящие средние.
● Используется для входа в рынок по направлению фильтра и для фильтрации ложных сигналов других индикаторов.



















