STC — Цикл тренда Шаффа (Schaff Trend Cycle)

Цикл-тренда-Шаффа
Цикл тренда Шаффа (Schaff Trend Cycle, STC) — это технический индикатор, разработанный Дугом Шаффом (Doug Schaff) в 1990-х годах. Предназначен для определения направленного тренда и его циклических разворотов более чувствительно, чем классические осцилляторы (например, MACD и Stochastic), за счёт комбинирования элементов трендового измерения и циклической фильтрации.

STC выдает значение в диапазоне примерно от 0 до 100; уровни выше ~75–80 обычно интерпретируются как перекупленность/сильный бычий сигнал, уровни ниже ~20–25 — как перепроданность/медвежий сигнал. Индикатор даёт сигналы на вход/выход по пересечению фиксированных порогов или собственной сигнальной линии и часто используется для подтверждения направленности тренда и поиска ранних точек разворота.

Ключевые свойства:
— Быстрая реакция на изменения тренда при сохранении фильтрации шума.
— Комбинирует идеи MACD и стохастического осциллятора: сначала вычисляется серия значений, аналогичных MACD/EMA, затем к ним применяется стохастическая обработка и циклическое сглаживание.
— Расчёт импульса — краткосрочный и долгосрочный импульс рассчитывается на основе изменения цен за заданный период.
— Нормализация — результат нормализуется в диапазоне от 0 до 100 и отображается как осциллятор.

Schaff Trend Cycle относится к группе осцилляторов/индикаторов перекупленности-перепроданности и одновременно — к категории трендовых осцилляторов. По методологии он является гибридом: сочетание трендового индикатора (аналог MACD/скользящих средних) и стохастического осциллятора (процесс нормализации и циклической фильтрации). В классификации: трендовый осциллятор / гибридный индикатор.


Формула расчёта индикатора Цикл тренда Шаффа (STC)

Официальной единой «коробочной» формулы у STC нет в одной строке; алгоритм представляет собой последовательность шагов. Ниже приведён упрощённый и общепринятый алгоритм расчёта:

Параметры:
— fastLength (обычно 23),
— slowLength (обычно 50),
— cycleLength / STC length для стохастической части (обычно 10),
— smoothing (обычно 3) — параметр сглаживания.

Алгоритм:
1. Вычислить MACD-like серию (diff) как разницу двух экспоненциальных скользящих средних (EMA) цены (обычно по закрытию):
diff = EMA(close, fastLength) − EMA(close, slowLength)

2. При необходимости сгладить diff (вариантов несколько — можно применять EMA(smoothing) или двойное сглаживание):
diff_smooth = EMA(diff, smoothing)

3. Применить стохастическую нормализацию к diff_smooth по формуле %K:
Stoch = 100 * (diff_smooth − Lowest(diff_smooth, cycleLength)) / (Highest(diff_smooth, cycleLength) − Lowest(diff_smooth, cycleLength))
где Highest/Lowest — максимум/минимум за период cycleLength.

4. Для уменьшения шума и получения цикличности применить двойную стохастическую обработку (в оригинале Шаффа): чаще делают два последовательных стохастических сглаживания:
Stoch1 = SMA(Stoch, smoothing) (или EMA)
Stoch2 = 100 * (Stoch1 − Lowest(Stoch1, cycleLength)) / (Highest(Stoch1, cycleLength) − Lowest(Stoch1, cycleLength))
Затем итоговое сглаживание:
STC = SMA(Stoch2, smoothing) (или EMA)

Упрощённый итог в виде последовательности:
— diff = EMA(close, fastLength) − EMA(close, slowLength)
— diff_smooth = EMA(diff, smoothing)
— Stoch = 100*(diff_smooth − Lowest(diff_smooth, cycleLength))/(Highest(diff_smooth, cycleLength) − Lowest(diff_smooth, cycleLength))
— Stoch_smoothed = EMA(Stoch, smoothing)
— Stoch2 = 100*(Stoch_smoothed − Lowest(Stoch_smoothed, cycleLength))/(Highest(Stoch_smoothed, cycleLength) − Lowest(Stoch_smoothed, cycleLength))
— STC = EMA(Stoch2, smoothing)


Более простой расчет
1) Рассчитать MACD:
MACD = EMA(Close, Fast) — EMA(Close, Slow)
Signal = EMA(MACD, Signal)
где Fast, Slow и Signal — обычно 23, 50 и 10 соответственно.

2) Вычислить стохастический осциллятор на основе MACD:
Stoch_K = 100 * ((MACD — Lowest(MACD, Length)) / (Highest(MACD, Length) — Lowest(MACD, Length)))
Stoch_D = EMA(Stoch_K, 3)

3) Повторить стохастический расчет для получения STC:
STC = 100 * ((Stoch_D — Lowest(Stoch_D, Length)) / (Highest(Stoch_D, Length) — Lowest(Stoch_D, Length)))

Примечания:
— В разных реализациях используются SMA или EMA для сглаживания, порядок и количество стохастических проходов могут отличаться; параметры (fast/slow/cycle/smoothing) настраиваются практикой.
— При делении нужно учитывать нулевой знаменатель (если максимум == минимум) — в таком случае обычно берут предыдущее значение или 0/50 по соглашению.
— Реальные реализации (например в торговых платформах) могут включать сигнальную линию и дополнительные проверки для избежания ложных сигналов.


Использование в торговле осциллятора Schaff Trend Cycle

Некоторые сигналы, которые подаёт индикатор STC:
● Пересечение уровня 25 снизу вверх — может сигнализировать о возможном начале восходящего тренда и являться сигналом к покупке.
● Пересечение уровня 75 сверху вниз — может указывать на начало нисходящего тренда и служить сигналом к продаже.
пересечение-уровней-STC

Применение
Индикатор STC используется в трейдинге для выявления тенденций и генерации торговых сигналов. Некоторые области применения:
● Определение тенденций — поиск устойчивых периодов, когда индикатор находится выше или ниже нулевой линии. Восходящая линия STC указывает на бычий тренд, нисходящая — на медвежий тренд.
● Определение условий перекупленности и перепроданности — наблюдение за периодами, когда индикатор находится выше или ниже уровней 25 и 75. Линия STC, которая находится выше уровня 75, указывает на состояние перекупленности, линия, которая находится ниже уровня 25, — на состояние перепроданности.

Пример Торговой стратегии и точек входа
Начальные условия:
— Торговля только в направлении тренда,
— Таймфрейм от 4 часов,
— Линия тренда.

Для входа в сделку выберем следующие условия: линия индикатора выше или ниже уровней 75/25:
— на продажу рассматриваются сделки выше уровня 75,
— на покупку ниже 25.

Рассмотрим на примере валютной пары EURUSD. Тренд нисходящий, поэтому рассматриваем только продажи когда линия индикатора будет выше уровня 75 и скользящей средней.
indikator-stc-strategija-torgovli

При общем тренде на падение, не рассматриваем варианты покупок. В большинстве случаев, такие сигналы будут ложные. Нас интересуют моменты, когда цена доходит до нисходящей линии тренда, которую в данном случае можно рассматривать в качестве уровня сопротивления. Далее ждем сигнал от индикатора и входим в сделку на sell, как на графике в примере №1. Stop loss при этом размещаем чуть выше трендовой линии. Фиксировать прибыль будем, когда значения индикатора будут приближаться к нулю.

В примере № 2 отчетливо заметно, что при сильных движениях показания алгоритма STC запаздывают. При сильной волатильности у трейдера возникает выбор — открыть короткую позицию не дожидаясь показаний индикатора, выставив стоп лосс за линию сопротивления. Или дождаться подтверждения индикатора, что может негативно отразиться на доходности сделки. В этом случае я обычно открываю ордер на 50% от запланированного не дожидаясь подтверждения, и еще на 50%-75%, когда индикатор подтверждает направление сделки. Закрываем сделку, когда значения STC будут приближаться к 0.

Дивергенция — также сильный сигнал, который отчетливо выдает индикатор. В 3-ем примере цена вроде пробивает линию сопротивления. Но показания STC показывают медвежью дивергенцию, которая быстро подтверждается.