Stochastic Momentum Index (SMI)

The Stochastic Momentum Index (SMI) это расширенная версия обычного стохастического осциллятора, выступающая в роли более надежного индикатора, который сводит к минимуму ложные колебания, измеряя расстояние между текущей ценой закрытия и медианой ценового диапазона максимума/минимума. На TradingView индикатор показывает как сам SMI, так и рассчитанную на его основе EMA. Значения SMI обычно находятся в диапазоне от +100 до -100, причем положительные значения указывают на то, что цена закрытия выше средней точки диапазона максимума/минимума, а отрицательные значения указывают на то, что цена закрытия ниже средней точки. Подобно стохастическому осциллятору, трейдеры и аналитики используют SMI для определения условий перекупленности или перепроданности на рынке. Кроме того, его можно использовать для анализа тренда, значения выше 40 часто интерпретируются как признаки бычьего тренда, а значения ниже -40 как медвежьего. 

Вычисление

Сначала мы вычисляем максимальное и минимальное значения в окне, определяемом числовым инпутом "%K Length" в настройках индикатора). Мы вычитаем их среднее значение из текущей цены закрытия, чтобы получить относительный диапазон этих значений:

highestLowestRange = highestHigh - lowestLow

relativeRange = close - (highestHigh + lowestLow) / 2

После этого мы вычисляем значение SMI с помощью формулы: 

smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))

в которой 'lengthD' является значением "%D Length" в числовом инпуте в настройках индикатора, а "emaEma" это экспоненциальная скользящая средняя экспоненциальной скользящей средней (обе EMA рассчитаны с одинаковой длиной):

emaEma(source, length) => ta.ema(ta.ema(source, length), length)

Inputs

%K Length

Окно используемое для вычисления при расчете самого высокого максимума и самого низкого минимума. 10 по умолчанию.

%D Length

Окно, которое используется при расчете SMI. 3 по умолчанию.

EMA Length

Определяет окно которое будет использоваться при расчете EMA на основе SMI.

Timeframe

Указывает таймфрейм, на котором рассчитывается индикатор. Эта опция позволяет рассчитать SMI на основе данных другого таймфрейма, например. SMI, рассчитанный на 1-часовом чарте, будет отображаться на 5-минутном чарте.

Wait for timeframe closes

Определяет поведение, когда таймфрейм индикатора выше таймфрейма графика. Когда включено, значения старшего таймфрейма появляются и соединяются на графике только после завершения высшего таймфрейма.

Style

SMI

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

SMI-based EMA

Переключает видимость EMA на основе SMI, а также видимость ценовой линии, показывающей фактическое текущее значение EMA. Позволяет выбрать цвет, толщину линии и стиль линии. 

Overbought Line

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

Oversold Line 

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

Middle Line

Переключает видимость средней линии, а также устанавливать границу по шкале от 1 до 100 для верхней полосы (по умолчанию 70). Позволяет определить цвет, толщину и стиль линии. 

Hlines Background

Переключает видимость цвета фона между границами SMI. Позволяет изменить сам цвет и непрозрачность. 

Overbought Gradient Fill

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

Oversold Gradient Fill

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

Precision

Устанавливает количество знаков после запятой, которое должно оставаться в значении индикатора перед округлением в большую сторону. Чем выше это число, тем больше десятичных знаков будет в значении индикатора.