Индекс стохастического моментума (SMI): как настроить и применять осциллятор Блау без шума и ложных входов
Оглавление
- Что такое индекс стохастического моментума простыми словами
- Четыре рабочих торговых сигнала SMI: механика и правила исполнения
- Адаптация параметров под рынки: Криптовалюты, Акции и Фьючерсы
- Математический фундамент SMI: формулы и сквозной пример расчета
- Расчет объема позиции и управление рисками по сигналам SMI
- Архитектурные расхождения: формулы Уильяма Блау против скриптов TradingView
- Пограничные сценарии: когда базовые правила дают сбой
- Инфраструктура: выбор торгового терминала
- Пошаговая настройка связки SMI с трендовым фильтром
- Алгоритм принятия решений перед отправкой ордера
- План действий для внедрения стратегии
- Вопросы и ответы (FAQ)
Индекс стохастического моментума (Stochastic Momentum Index, SMI), разработанный Уильямом Блау в 1993 году, измеряет относительное смещение цен закрытия не от крайнего минимума, а от середины (медианы) торгового диапазона. В отличие от осциллятора Джорджа Лейна, SMI колеблется в диапазоне от -100 до +100 с естественной нулевой осью симметрии. Двойное экспоненциальное сглаживание (EMA) эффективно отсекает микроструктурный шум и устраняет до 40–50% ложных срабатываний в боковом движении, смещая рабочие пороговые экстремумы на уровни ±40.
| Критерий | Классический Stochastic (Джордж Лейн) | Индекс моментума SMI (Уильям Блау) | В чем выгода трейдера |
|---|---|---|---|
| Базовая точка отсчета | Локальный минимум окна (Lown) | Середина диапазона (Midpoint = (Highn + Lown) / 2) | Отражение реального перевеса между покупателями и продавцами |
| Рабочая шкала | От 0 до 100 | От -100 до +100 (с центральной осью 0) | Мгновенная идентификация преобладающего тренда без вспомогательных настроек |
| Зоны экстремумов | 80 / 20 | +40 / -40 | Выверенные уровни истощения импульса без краевого сжатия |
| Реакция на рыночный шум | Высокая (частые ложные пересечения) | Низкая (каскадная фильтрация двойным EMA) | Сокращение паразитных входов в боковиках на 40–50% |
Что такое индекс стохастического моментума простыми словами
Большинство базовых осцилляторов страдают от избыточной чувствительности: малейший ценовой импульс заставляет их линии метаться между границами диапазона. Классический стохастик Джорджа Лейна фиксирует, насколько близко котировка подошла к абсолютному полу или потолку расчетного периода. Представьте высокую комнату: Лейн регистрирует каждый прыжок к потолку или касание пола, реагируя на любые промежуточные колебания.
Уильям Блау в 1993 году при исследовании механических торговых систем предложил альтернативную логику: SMI определяет, насколько текущая цена оторвалась от условного «экватора» комнаты — геометрического центра между зафиксированным максимумом и минимумом.
Движение значений разворачивается вокруг нулевой оси:
- Выше 0: покупатели удерживают котировку выше медианы диапазона, инициатива у быков.
- Ниже 0: продавцы продавливают цену под середину диапазона, рынок контролируют медведи.
- Коридоры ±40: границы затухания локального импульса, где рынок переходит в состояние истощения и назревает технический откат.
Четыре рабочих торговых сигнала SMI: механика и правила исполнения
1. Пересечение быстрой линии SMI и сигнальной EMA (%D)
Быстрая кривая SMI отражает динамику направленного импульса, а сглаживающая линия %D выступает скользящей опорой.
ЕСЛИ линия SMI пересекает %D снизу вверх в отрицательной зоне → ТО регистрируется предварительный сигнал на открытие длинной позиции (Long).
ЕСЛИ линия SMI пробивает %D сверху вниз в положительной зоне → ТО формируются предпосылки для открытия короткой позиции (Short).
2. Выход из зон экстремумов (±40)
⚠️ Зона риска: Типовая ошибка новичков — открытие контртрендовой позиции в момент, когда линия индикатора едва коснулась уровня +40 или -40. В фазе мощного ралли осциллятор способен оставаться за пороговыми значениями от 10 до 25 баров подряд. Преждевременный вход против тренда в этой точке приводит к череде принудительных стоп-лоссов.
ЕСЛИ быстрая линия опустилась ниже -40, развернулась и пересекла уровень -40 снизу вверх → ТО открывается лонг с первичной целью фиксации на нулевой отметке.
ЕСЛИ быстрая линия поднялась выше +40, развернулась и пересекла отметку +40 сверху вниз → ТО открывается шорт с первичной целью около нуля.
3. Пробой нулевой линии (Смена баланса сил)
Центральная граница делит рынок на территорию бычьего и медвежьего доминирования.
ЕСЛИ SMI уверенно пробивает уровень 0 снизу вверх при растущем торговом объеме → ТО удерживаются покупки либо открывается позиция по направлению импульса.
ЕСЛИ линия уходит под нулевую отметку сверху вниз → ТО приоритет смещается в сторону коротких сделок.
4. Классическая дивергенция
Расхождение траекторий движения котировок и осциллятора сигнализирует о скрытом истощении текущего импульса:
ЕСЛИ ценовой график обновляет локальный минимум (Lower Low), а минимумы SMI повышаются (Higher Low) → ТО сформирована регулярная бычья дивергенция, ожидается восходящее движение.
ЕСЛИ ценовой график рисует новый максимум (Higher High), а вершины SMI снижаются (Lower High) → ТО зафиксирована медвежья дивергенция, покупательский ресурс исчерпан.
Адаптация параметров под рынки: Криптовалюты, Акции и Фьючерсы
Универсального набора настроек не существует: глубина сглаживания калибруется под микроструктуру и волатильность выбранной площадки.
| Торговая площадка | Типовые активы | Рабочий таймфрейм | Оптимальные параметры (%K, %D, EMA) | Особенности поведения осциллятора |
|---|---|---|---|---|
| Криптовалюты | BTC/USDT, ETH/USDT, SOL/USDT | M15 — H1 | 14, 5, 5 или 21, 5, 5 | Агрессивные сквизы стакана требуют повышенного сглаживания для отсева микроструктурного шума. |
| Фондовый рынок | Сбер, Лукойл, Apple, Microsoft | H4 — D1 | 10, 3, 3 (канонические) | Формирует чистые отскоки от границ ±40; нулевая ось выступает надежной поддержкой в среднесрочных трендах. |
| Срочные фьючерсы | Фьючерс Si, Brent, Gold, Индекс Мосбиржи | M5 — M15 | 10, 5, 3 | Высокая плотность ложных перекрестий около нуля; требует обязательного буфера фильтрации ±15. |
Математический фундамент SMI: формулы и сквозной пример расчета
Алгоритмическое ядро опирается на вычисление отклонения цены закрытия от середины текущего торгового диапазона с последующей двухкаскадной фильтрацией через экспоненциальные средние.
Midpoint = (Highn + Lown) / 2
RelativeRange = Close - Midpoint
Range = Highn - Lown
SMI = 100 × (EMA(EMA(RelativeRange, q), r) / (0,5 × EMA(EMA(Range, q), r)))
Где:
- n — период окна поиска экстремумов (параметр %K Length);
- q — период первичного экспоненциального сглаживания;
- r — период вторичной фильтрации.
Двойное экспоненциальное сглаживание гасит единичные аномальные выбросы котировок, сохраняя стабильность центральной оси равновесия.
Практический числовой расчет для одного бара
Исходные параметры: окно n = 10 баров. В текущем баре максимум High10 = 110,00, минимум Low10 = 90,00, цена закрытия Close = 105,00.
Медиана диапазона:
Midpoint = (110,00 + 90,00) / 2 = 100,00
Отклонение цены закрытия от медианы:
RelativeRange = 105,00 - 100,00 = +5,00
Полный размах диапазона:
Range = 110,00 - 90,00 = 20,00
Базовый делитель (половина диапазона):
0,5 × 20,00 = 10,00
Нормализованный индекс до этапа сглаживания:
SMIсырой = (+5,00 / 10,00) × 100 = +50,00
Интерпретация: значение +50 показывает, что цена зафиксировалась в верхней четверти 10-периодного диапазона, подтверждая чистый перевес покупателей.
Расчет объема позиции и управление рисками по сигналам SMI
ℹ️ Правило мани-менеджмента: Ни один осциллятор не гарантирует стопроцентной отработки входов. Торговля по SMI без математического расчета рисков неизбежно ведет к системным просадкам. Рабочий объем позиции определяется допустимым убытком на капитал, а не доступной маржой.
Position Size = (Account Equity × Risk %) / |Entry Price - Stop Loss Price|
Пример расчета
- Депозит (Account Equity): 10 000 USDT.
- Лимит риска на сделку (Risk %): 1,0% (100 USDT).
- Сигнал индикатора: быстрая линия опустилась до -48, развернулась и закрыла бар на уровне -38 (пересечение отметки -40 снизу вверх).
- Точка входа (Entry Price): 60 000 USDT по закрытию бара.
- Защитный стоп-лосс (Stop Loss): 59 000 USDT (за локальный ценовой минимум).
Ценовой риск на единицу актива:
ΔP = 60 000 - 59 000 = 1 000 USDT
Расчет допустимого объема ордера:
Position Size = (10 000 × 0,01) / 1 000 = 100 / 1 000 = 0,10 BTC
Итог: открывается позиция объемом 0,10 BTC (номиналом 6 000 USDT). При срабатывании защитного стоп-лосса фактический убыток составит ровно 100 USDT, что строго укладывается в установленный лимит риска в 1,0%.
Архитектурные расхождения: формулы Уильяма Блау против скриптов TradingView
Трейдеры часто замечают расхождение: штатный скрипт TradingView колеблется резче и чаще касается крайних границ шкалы, чем описанный в литературе алгоритм Блау. Причина заключается в реализации формулы на языке Pine Script.
В канонической книге Блау знаменатель содержит множитель 0,5 × Range при общем коэффициенте 100. В коде TradingView деление на 0,5 перенесено в числитель в виде множителя 200:
//@version=6
indicator("Stochastic momentum index", "Stoch MI", timeframe = "", timeframe_gaps = true)
lengthK = input.int(10, "%K Length", minval = 1, maxval = 15000)
lengthD = input.int(3, "%D Length", minval = 1, maxval = 4999)
lengthEMA = input.int(3, "EMA Length", minval = 1, maxval = 4999)
emaEma(source, length) => ta.ema(ta.ema(source, length), length)
highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))
smiPlot = plot(smi, "SMI", color = color.blue)
plot(ta.ema(smi, lengthEMA), "SMI-based EMA", color = color.orange)
overbought = hline(40, "Overbought Line")
oversold = hline(-40, "Oversold Line")
fill(overbought, oversold, title = "Background", color = color.new(color.blue, 90))
hline(0, "Middle Line", color = color.new(color.gray, 50))
midLinePlot = plot(0, color = na, editable = false, display = display.none)
fill(smiPlot, midLinePlot, 120, 40, top_color = color.new(#4caf4f, 50), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(smiPlot, midLinePlot, -40, -120, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 50), title = "Oversold Gradient Fill")
В терминале MetaTrader 5 (MQL5) библиотека Blau_SMI.mq5 сохраняет оригинальную архитектуру:
// Канонический расчет в коде MQL5
sm = price - 0.5 * (highestHigh + lowestLow);
numerator = EMA(EMA(sm, r), s);
denominator = 0.5 * EMA(EMA(highestHigh - lowestLow, r), s);
SMI = 100.0 * (numerator / denominator);
⚠️ Зона риска: При переносе алгоритмических стратегий из TradingView на платформы C# (например, OsEngine) или в MT5 обязательно проверяйте базовый множитель формулы. Разница между значениями 100 и 200 меняет чувствительность индикатора, сдвигая моменты пробоя порогов ±40 и нарушая синхронизацию торговых триггеров.
Пограничные сценарии: когда базовые правила дают сбой
1. Залипание осциллятора (Indicator Pinning)
При сильных направленных трендах свечи раз за разом закрываются вблизи своих экстремумов. Линия SMI при этом «прилипает» к значениям выше +60 или ниже -60.
Механика ошибки: классическая логика перекупленности трактует значения выше +60 как повод для продажи, генерируя череду убыточных контртрендовых шортов.
Решение: если SMI закрепился выше отметки +60 в выраженном тренде, шорты блокируются. Позиция в лонг удерживается до тех пор, пока кривая фактически не выпадет обратно под уровень +40.
2. Лаг двойного экспоненциального сглаживания
Плата за чистоту сигнала от рыночного шума — запаздывание триггера на 1–2 бара относительно стандартного стохастика.
Механика ошибки: на резких V-образных разворотах пересечение линий происходит на значительном удалении от ценового минимума, ухудшая соотношение прибыли к риску.
Решение: избегать входа по рыночной цене вдогонку за ушедшим движением. Оптимально дождаться локального отката и выставить лимитный ордер на ретесте пробитого уровня младшего таймфрейма.
3. Коридор нейтральности нуля (±15) во флэте
В узком боковом канале осциллятор начинает непрерывно пересекать нулевую ось.
Механика ошибки: пересечение нуля снизу вверх на следующем же баре сменяется обратным падением.
Решение: вводится буферная мертвая зона от -15 до +15. Пробой нуля считается валидным только при уверенном выходе линии за границы этого диапазона (выше +15 для покупок, ниже -15 для продаж).
4. Скрытая дивергенция
Механика ошибки: новички часто путают скрытую дивергенцию с сигналом на разворот и открывают контртрендовые позиции.
Решение: ЕСЛИ котировки формируют повышенный минимум (Higher Low), а осциллятор рисует более глубокую впадину (Lower Low) → ТО подтверждается скрытая бычья дивергенция; тренд сохраняет силу, сделка открывается строго по направлению покупок.
Инфраструктура: выбор торгового терминала
| Торговая платформа | Назначение и сегмент | Преимущества при работе с SMI | Системные издержки и ограничения |
|---|---|---|---|
| TradingView | Веб-аналитика, свинг-трейдинг, крипта и акции | Встроен по умолчанию; удобная разметка уровней ±40; поддержка мультитаймфреймов (MTF). | Множитель формулы 200 вместо канонических 100; исполнение автоматических ордеров требует вебхуков. |
| MetaTrader 5 (MT5) | Forex, CFD, срочный рынок MOEX | Канонический алгоритм Блау (Blau_SMI); расчет без искажений; быстрый тестер стратегий. | Осциллятор отсутствует в штатной библиотеке; требуется установка и компиляция файлов .mq5. |
| OsEngine (C#) | Алготрейдинг на криптовалютных биржах и Мосбирже | Открытый исходный код; прямое подключение к API; готовые связки с PriceChannel и волатильностью. | Высокий порог входа; требует компиляции в Visual Studio и опыта работы с C#. |
Пошаговая настройка связки SMI с трендовым фильтром
- Добавление индикатора на график: через меню индикаторов активируйте «Stochastic Momentum Index». Задайте рабочие параметры: %K Length = 10, %D Length = 3, EMA Length = 3.
- Разметка сигнальных уровней: в свойствах стиля осциллятора выставите уровни перекупленности и перепроданности на отметках +40 и -40, а границы буферной зоны — на +15 и -15.
- Подключение старшего трендового фильтра: на ценовой график добавьте экспоненциальную скользящую среднюю EMA 200. Сделки на покупку рассматриваются только при нахождении цены выше EMA 200, на продажу — только ниже EMA 200.
- Контроль фиксации свечи: вход в рынок осуществляется исключительно после полного закрытия сигнального бара (Close Bar Confirmation). До момента закрытия бара показания осциллятора могут перерисовываться.
Алгоритм принятия решений перед отправкой ордера
Иерархическая структура проверки условий
-
Фильтр старшего тренда
- Цена выше EMA 200: разрешены только длинные позиции (Long).
- Цена ниже EMA 200: разрешены только короткие позиции (Short).
-
Глубина экстремума SMI
- Для лонга: линия SMI предварительно опускалась ниже отметки -40 (условие выполнено → переход к п. 3; иначе вход блокируется).
- Для шорта: линия SMI поднималась выше отметки +40 (условие выполнено → переход к п. 3; иначе вход блокируется).
-
Положение сигнальной линии
- Быстрая линия SMI пересекла %D по направлению к нулю: подтверждение получено → переход к п. 4.
- Пересечение отсутствует или направлено от нуля: вход заблокирован.
-
Подтверждение закрытием бара
- Свеча закрылась (Close), сохранив пересечение вне буфера ±15: открытие позиции.
- Свеча еще формируется или значение находится внутри диапазона ±15: ожидание.
Практический чек-лист валидации заявки
- [ ] Контекст тренда: направление сделки совпадает с положением цены относительно EMA 200.
- [ ] Тест экстремума: осциллятор заходил глубже критического уровня (-40 для покупок, +40 для продаж).
- [ ] Разворот моментума: быстрая линия пересекла %D по направлению к нулевой линии.
- [ ] Фильтрация шума: точка входа находится за пределами диапазона от -15 до +15.
- [ ] Фиксация бара: сигнальная свеча закрылась, перерисовка исключена.
- [ ] Контроль риска: объем рассчитан по формуле риск-менеджмента, стоп-лосс выставлен за локальный экстремум и не превышает 1–2% депозита.
План действий для внедрения стратегии
- Тестирование на истории: откройте график рабочего инструмента (например, BTC/USDT или фьючерс на индекс) в TradingView или MT5 и проведите серию из 30 сделок по алгоритму на демо-счете.
- Калибровка сглаживания: если на рабочем таймфрейме M15 осциллятор генерирует избыточное число ложных перекрестий, увеличьте параметр %D Length с 3 до 5.
- Фиксация торговой статистики: заносите каждую сделку в журнал, контролируя процент фиксации прибыли на нулевой линии и срабатывания стоп-лоссов.
- Переход на рабочий депозит: при выходе на устойчивое положительное математическое ожидание по итогам 50 сделок переходите к торговле реальным объемом с риском не более 0,5–1% на позицию.
