Пишу сканер аномальных объёмов по MOEX. Логика простая: считаем норму объёма
для инструмента, сравниваем с текущим, превышение — сигнал. Всё работало.
Сигналы приходили, ложных было немного, я был доволен.
Потом полез в логи разбираться, почему на очевидном движении не было сигнала.
И выяснил, что система его видела. Посчитала. И сама же выбросила.
## Почему EMA казалась хорошей идеей
Норму я считал через экспоненциальную скользящую по объёму. Аргумент был
железный: рынок меняется, режимы меняются, статистика за 90 дней устаревает.
EMA подстраивается под текущий режим — если объёмы выросли в целом, порог
поднимется сам, и мы не завалим канал сигналами на ровном месте.
Звучит разумно. Так делают многие. Это и есть ошибка.
## В чём проблема
EMA обновляется той же свечой, с которой вы её сравниваете.
Прилетает аномальный объём. Система его фиксирует, но этой же свечой EMA идёт
вверх. Следующая аномальная свеча сравнивается уже с задранной нормой —
превышение меньше. Третья ещё меньше. К четвёртой-пятой свече EMA догнала