tsi-нпафик-spy-exam-1

Индекс истинной силы (True Strength Index, TSI) — это технический индикатор, используемый при анализе финансовых рынков. Впервые индикатор был опубликован Уильямом Блау в 1991 году. Индикатор использует скользящие средние основного импульса финансового инструмента. Индикатор TSI основан на двойном сглаживании изменений цен. Индикатор истинной силы колеблется между положительными и отрицательными значениями, а центральная линия индикатора определяет общее смещение. Импульс считается опережающим индикатором ценового движения, а скользящая средняя по определению следует за ценой. Индикатор TSI объединяет эти характеристики для индикации цены и направления, которые более синхронизированы с движениями рынка, нежели отдельно импульс или скользящая средняя. Он пытается показать и направление тренда, полезен для определения условий перепроданности и перекупленности на рынке, а также предупреждает об ослаблении тренда через дивергенцию.

Формула расчета TSI:

Формула-TSI

где:

c0 = сегодняшняя цена закрытия

m = c0 − c1 = импульс (разница между закрытием сегодня и вчера)

EMA(m,n) = экспоненциальная скользящая средняя m на n периодах
формула-ЕМА-для-TSI

r = период сглаживания EMA для расчета импульса, обычно 25

s = период сглаживания EMA для сглаживания импульса, обычно 13

Интерпретация индикатора TSI
Индикатор TSI относится к осцилляторам, поэтому, трактуется так же, как и остальные, например RSI или ADX.

В первую очередь его можно использовать для выявления состояния, когда рынок находится в фазе перекупленности и перепроданности. Для этого установите период 25 для первичного сглаживания (R) и период 13 для повторного (S).

Линия TSI движется в диапазоне от 100 до -100, но с заданными значениями периода подавляющее большинство времени в пределах двух уровней 25 и -25, добавляем их обои в настройках индикатора.

Если TSI поднимается выше уровня 25, то рынок находится в фазе перекупленности и наоборот, если TSI опустился ниже уровня -25, то в фазе перепроданности.

Сигналы индикатора TSI (True Strength Index)

Пересечение центральной линии (линия ноль) индикатором TSI
tsi-nke-пересечение-центра
Цена обычно растет, если индикатор TSI положителен (выше нуля), и падает, когда TSI отрицателен (ниже нуля). Приведенный выше пример показывает, что Nike (NKE) стала бычьей в сентябре 2011 года, когда TSI перешла на положительную зону (стала выше нуля) (зеленая линия). Акции оставались растущей, поскольку восходящий тренд продолжался и весной 2012 года. Nike стала медвежьей, когда индикатор TSI снизился ниже нуля — зашел в отрицательную зону, а акции пробили поддержку.

Трендовые линии
tsi-пробой-трендовой
Индикатор TSI часто отрабатывает уровни поддержки и сопротивления, которые трейдеры могут использовать для выявления прорывов или пробоев. В приведенном выше примере показано, что на акции Citigroup (C) индикатор TSI образовал поддержку в марте. Индикатор пробил поддержку в начале апреля, и этот пробой предвещал значительное снижение в мае. Затем TSI отскочил в июне и сформировал плоскую консолидацию в июле. Эта консолидация напоминала падающий флаг, и TSI пробил выше линии тренда в конце июля. Этот прорыв предшествовал дальнейшему укреплению в августе.

Перекупленность / Перепроданность
Уровни перекупленности и перепроданности для индикатора TSI варьируются в зависимости от волатильности ценной бумаги и настроек периода индикатора. Диапазон TSI будет меньше для акций с низкой волатильностью и больше для акций с высокой волатильностью. Использование более коротких периодов времени для сглаживания приведет к более широкому диапазону и более прерывистой индикаторной линии. Более длительные периоды времени приведут к меньшему диапазону и более гладкой линии. Это классический компромисс технического анализа: трейдеры получают более быстрые сигналы и меньше запаздывают с более короткими периодами, но это происходит за счет большего количества ложных сигналов. Более длительные периоды уменьшают ложные сигналы, но эти сигналы приходят с большим запаздыванием и более низким отношением вознаграждения к риску.

tsi-перекупленность-перепродланность
На графике выше показан ETF Nasdaq 100 (QQQ) с индикатором TSI, использующим два разных таймфрейма. Верхнее окно индикатора показывает TSI (40,20,7), колеблющийся между -20 и +44 с отметкой 20/-20 перекупленности / перепроданности. Нижнее окно показывает TSI (13,7,7), колеблющийся между +78 и -69 с отметкой 50/-50 перекупленности / перепроданности. Обратите внимание, что TSI в нижнем окне гораздо более изменчив, чем TSI в верхнем окне. Кроме того, обратите внимание, что более чувствительный TSI показал два значения перепроданности и четыре значения перекупленности (синие стрелки). Перекупленность и перепроданность не являются сигналами надвигающегося разворота. Они просто предполагают, что цены зашли слишком далеко и слишком быстро. Трейдеры должны ждать подтверждающего сигнала, чтобы предложить фактический разворот. Синие линии обозначают поддержку и сопротивление с помощью трендовых линий, пиков или впадин. Как только происходит перекупленность или перепроданность, трейдеры могут использовать эти линии для определения разворота цены.

Пересечение линий индикатора
/tsi-пересечение-линий
Сигнальная линия в индикаторе TSI является просто экспоненциальной скользящей средней. Пересечение сигнальных линий — это, безусловно, самые распространенные сигналы. Стремясь уменьшить сигналы и шум, трейдеры должны рассмотреть возможность увеличения настроек TSI или настроек ценового графика. В приведенном выше примере TSI(40,20,10) показан на недельном графике. Это означает, что сигнальная линия представляет собой 10-периодную EMA TSI. На этом графике не было недостатка в сигналах, поскольку TSI пересекал сигнальную линию по крайней мере 12 раз с апреля 2007 года по июль 2012 года.

Дивергенция по индикатору TSI
Дивергентная торговля довольно популярна на рынке. Банки, хедж-фонды и профессиональные трейдеры по всему миру часто используют дивергенцию, чтобы обнаружить изменение тренда на рынке.
/Дивергенция
В примере выше цена инструмента движется в нисходящем тренде, и делает новые более низкие минимумы, но индикатор TSI не смог сделать более низкий минимум. Это можно рассматривать как бычье расхождение. Дивергенция является ведущей стратегией, поскольку она заранее предупреждает вас об изменении тренда.

Особенности индикатора TSI


Когда рыночный тренд достаточно сильный, индикатор TSI может давать ложные сигналы. Например, когда рынок находится в сильном тренде, TSI может пересечь центральную линию сверху вниз, но цена продолжает расти вверх, хотя импульс индикатора сместился в сторону снижения.

На трендовых рынках осцилляторы могут находиться в областях перекупленности или перепроданности в течение длительного времени. Дивергенция также ненадежна в условиях сильного рынка, потому что иногда индикатор показывает дивергенцию так долго, что трейдеры оказываются в проигрышной стороне. Следовательно, настоятельно рекомендуется всегда использовать индикатор TSI в сочетании с другими надежными индикаторами для фильтрации ложных торговых сигналов.

Выводы


Индикатор True Strength Index является одним из важнейших опережающих индикаторов на рынке. Это уникальный осциллятор, поскольку он определяет как направление тренда, так и его силу. Если вы хотите изменить настройки индикатора, не забывайте менять их в зависимости от волатильности инструментов. В противном случае вы получите много ложных сигналов. Если вы используете этот индикатор в сочетании с другими надежными инструментами, он может помочь вам генерировать точные торговые сигналы. Удачной торговли!


Код индикатора TSI для Tradingview

//@version=4
// Copyright (c) 2021-present, Alex Orekhov (everget)
study("True Strength Index", shorttitle="TSI")

longLength = input(title="Long Length", type=input.integer, defval=25)
shortLength = input(title="Short Length", type=input.integer, defval=13)
signalLength = input(title="Signal Length", type=input.integer, defval=13, minval=1)
src = input(title="Source", type=input.source, defval=close)

obLevel = input(title="Overbought Level", type=input.integer, defval=40)
osLevel = input(title="Oversold Level", type=input.integer, defval=-40)
maxLevel = input(title="Max Level", type=input.integer, defval=75)
minLevel = input(title="Min Level", type=input.integer, defval=-75)
showHistogram = input(title="Show Histogram ?", type=input.bool, defval=false)
highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=input.bool, defval=true)
highlightCrossovers = input(title="Highlight TSI/Signal Crossovers ?", type=input.bool, defval=true)
highlightZeroCrossovers = input(title="Highlight Zero Line Crossovers ?", type=input.bool, defval=true)
applyRibbonFilling = input(title="Apply Ribbon Filling ?", type=input.bool, defval=true)

mom = change(src)
numerator = ema(ema(mom, longLength), shortLength)
denominator = ema(ema(abs(mom), longLength), shortLength)
tsi = 100 * numerator / denominator
signal = ema(tsi, signalLength)

trendColor = tsi > signal ? #0ebb23 : color.red
tsiColor = applyRibbonFilling ? trendColor : #ff3e7d
signalColor = applyRibbonFilling ? trendColor : #3c78d8

tsiPlot = plot(tsi, title="TSI", color=tsiColor, transp=0)
signalPlot = plot(signal, title="Signal", color=signalColor, transp=0)

hist = tsi - signal
histColor = hist >= 0 ? hist[1] < hist ? #26A69A : #B2DFDB : hist[1] < hist ? #FFCDD2 : #EF5350
plot(showHistogram ? hist : na, title="Histogram", style=plot.style_columns, color=histColor, transp=0)

var color noneColor = color.new(color.white, 100)

maxLevelPlot = hline(maxLevel, title="Max Level", linestyle=hline.style_dotted, color=noneColor)
obLevelPlot = hline(obLevel, title="Overbought Level", linestyle=hline.style_dotted, color=#00796b)
hline(0, title="Zero Level", linestyle=hline.style_dotted, color=#989898)
osLevelPlot = hline(osLevel, title="Oversold Level", linestyle=hline.style_dotted, color=#f57f17)
minLevelPlot = hline(minLevel, title="Min Level", linestyle=hline.style_dotted, color=noneColor)
fill(obLevelPlot, osLevelPlot, title="Middle Zone", color=color.purple, transp=95)

obFillColor = tsi > obLevel and highlightBreakouts ? color.green : noneColor
osFillColor = tsi < osLevel and highlightBreakouts ? color.red : noneColor

fill(maxLevelPlot, obLevelPlot, title="Overbought Level Breakout", color=obFillColor, transp=85)
fill(minLevelPlot, osLevelPlot, title="Oversold Level Breakout", color=osFillColor, transp=85)

fillColor = applyRibbonFilling ? trendColor : noneColor
fill(tsiPlot, signalPlot, title="Ribbon", color=fillColor, transp=70)

zeroCrossBgColor = highlightZeroCrossovers ? (tsi > 0 ? color.green : color.red) : noneColor
bgcolor(zeroCrossBgColor, title="Zero Line Crossover Background", transp=90)

plotshape(highlightCrossovers and crossover(tsi, signal) ? tsi : na, title="TSI/Signal Crossover", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(highlightCrossovers and crossunder(tsi, signal) ? tsi : na, title="TSI/Signal Crossunder", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)