Индикатор Klinger Oscillator (KO) — Осциллятор Клингера

Осциллятор-Клингера
Осциллятор Клингера (Klinger Oscillator, KO), иногда его еще называют Осциллятор объема Клингера (Klinger Volume Oscillator, KVO) — технический индикатор объёма, разработанный Стивом Клингером (Stephen Klinger) в 1977 году. Цель — выявлять долгосрочные тренды движения денежных средств, для выявления краткосрочных колебаний и предсказывать развороты цены, сопоставляя направление ценового движения и объёмы торгов; особое внимание уделяется суммарному потоку капитала («volume force») — состоит из самого объёма, ценовых трендов и темпа, а также разнице между краткосрочной и долгосрочной сглаженными величинами — двух скользящих средних, которые основаны не только на цене, но и на временных рамках.

Осциллятор Клингера состоит из двух линий:
1. Клингер Осциллятор (KO или KVO): Это основная линия, рассчитываемая на основе разницы между объемом растущего и падающего периодов.
2. Сигнальная линия: простая скользящая построенная по самому индикатору Klinger Oscillator.

По функционалу Осциллятор Клингера относится одновременно к классам:
— Осцилляторы (momentum/oscillators) — индикатор даёт колебания вокруг нулевой линии и измеряет «сигнал/импульс».
— Объёмные индикаторы (volume-based indicators) — основывается непосредственно на объёмах торгов (Volume Force, KCV).
— Трендовые индикаторы (trend-following component) — через EMA34/EMA55 от накопительной линии он показывает долгосрочную тенденцию объёма и её изменения.


Расчет индикатора Klinger Oscillator (KO)

Шаги расчёта (популярная формула)
1. Определяем Trend (тенденция) для текущего периода (обычно для бара/свечи i):
Typical Price (TP) = (High + Low + Close) / 3.
Direction (DM): сравниваем текущий TP с предыдущим TP (TP_prev).
Если TP > TP_prev, то Direction = +1 (восходящая тенденция),
если TP < TP_prev, то Direction = −1 (нисходящая), если равны — берут Direction = 0 (иногда = +1 или сохраняют предыдущее значение — вариации). 2. Вычисляем Volume Force (VF):
— VF = Volume × Direction × (2 × TP − High − Low) / (High − Low)

Пояснение: множитель (2×TP − High − Low)/(High − Low) измеряет смещение Typical Price внутри диапазона бара;
если TP ближе к High — множитель положительный, если ближе к Low — отрицательный. В источниках встречаются варианты формулы (в частности, без деления на диапазон или с другими нормировками). Важны направление (Direction) и пропорциональность объёму.

Упрощённый/альтернативный вариант (часто используется):
VF = Volume × Direction × (Close − Close[i−1]) / (High − Low)
или
VF = Volume × Direction — простая версия, но менее точная.

Замечание: в реальных реализациях встречается несколько версий VF; ключевая идея — совместить объём, направление и положение цены в диапазоне бара.

3. Накопительная линия KCV (Klinger Cumulative Volume):
— KCV = KCV[i−1] + VF
Обычно KCV_0 = 0 (или начинается с первого VF).

4. Вычисляем две экспоненциальные скользящие средние KCV:
EMA_short = EMA(KCV, n1) — короткая EMA, стандарт n1 = 34 периодa (в оригинале Клингер использовал 34).
EMA_long = EMA(KCV, n2) — длинная EMA, стандарт n2 = 55 периодов (в оригинале 55).

В разных источниках используются SMA, EMA или WMA; EMA наиболее распространена.

5. Klinger Oscillator:
KO = EMA_short − EMA_long
Получаем осциллятор, колеблющийся относительно нуля. Когда короткая EMA выше длинной — положительное значение (бычий сигнал), и наоборот.

6. Сигнальная линия:
Signal = EMA(KO, n3), где обычно n3 = 13 (или 13-периодная EMA). Сигнал к действию генерируется при пересечении KO и Signal, либо при дивергентных расхождениях между ценой и KO.

Пример расчёта (упрощённый, шаги для нескольких баров)
— Пусть для бара i: High=110, Low=100, Close=108, TP=(110+100+108)/3=106, Volume=1000.
— Для предыдущего бара TP_prev = 103 → Direction = +1.
— VF = 1000 × (+1) × (2×106 −110 −100)/(110−100) = 1000 × (212 −210)/10 = 1000 × 2/10 = 200.
— KCV добавляет 200; затем рассчитываем EMA34 и EMA55 от KCV и их разницу = KO.


Торговля с индикатором Klinger Oscillator (KO)

— Пересечение нуля: когда KO пересекает ноль снизу вверх — подтверждение бычьего тренда (объём поддерживает рост) — момент входа в покупки; наоборот при пересечении осциллятором KO нулевой линии сверху вниз — медвежье – момент открытия коротких позиций.
Пересечение-нулевой-линии-KVO

— Пересечение с сигнальной линией (EMA/SMA KO): похожие сигналы, но более сглаженные. Если основная линия KO пересекает сигнальную снизу вверх – это благоприятный момент для входа в покупки. В случае, когда основная линия индикатора KO пересекла сигнальную сверху вниз – благоприятный момент для открытия коротких позиций.
линий-KVO

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

С другой стороны, сигнал для входа в шорт формируется, когда есть пересечение между двумя линиями осциллятора и оно находится выше центральной линии.
пересечения-KVO

— Дивергенции: если цена делает новый максимум, а Осциллятор KO не подтверждает (меньший максимум) — медвежья дивергенция, возможен разворот вниз. Обратная ситуация — если значение индикатора движется вверх даже при падении цены ценной бумаги, это считается бычьей дивергенцией.
по-КО
В первом (“#1”) мы видим тенденцию к росту цен, а осциллятор – показатель объема, учитывая, что он является частью его входных данных, имеющих тенденцию к снижению. Когда 13-периодная EMA (“signal line”) пересекала осциллятор, когда он находился в нисходящем тренде, это посылало медвежий торговый сигнал (обозначаемый первой стрелкой). Его сняли после того, как 13-периодная EMA пересекла осциллятор, когда он находился в восходящем тренде (вторая стрелка).

Цена и осциллятор на тот момент были сонаправлены. Таким образом, никакая торговля не была бы предпринята на основе расхождений на пересечении, который вышел из короткой торговли.

Вторая сделка (“#2”) была долгой. Мы не видим большой дивергенции, но какая-то ее степень тем не менее есть. Цена была боком, а осциллятор резко возрастал. Тенденция была повышена на основе скользящего среднего за 50 периодов. (Это не обязательно часть системы, но чем больше у вас факторов, идущих в пользу вашей торговли, тем лучше.)

— Подтверждение тренда: KO помогает отличать «ложные» ценовые пробои, указывая, поддерживается ли движение объёмом.

Пример комбинирования сигналов по осциллятору KO и скользящей на графике цены.
Пример-сигналов-осциллятора-KO
— Сделка на продажу:
Осциллятор пересек свою и сигнальную линию над отметкой 0. Это дало нам первый сигнал к продаже. Мувинг на самом графике подтвердил продажу, так как пересек график сверху вниз. В качестве точки выхода из сделки использовался уровень поддержки, нарисованный на самом осцилляторе.

— Сделка на покупку:
Осциллятор пересек свои линии под отметкой 0, что дало первый сигнал на покупку. Там же оказался и наш уровень поддержки, только в этом случае он уже был сопротивлением. Это дало второй сигнал на покупку, а также, указало на более точную точку входа. Мувинг на самом графике подтвердил начало восходящего тренда, а также, указал более безопасную точку входа на покупку. В качестве точки выхода в этот раз использовался уровень сопротивления, но уже нанесенный на самом графике.


Ограничения и советы
Чувствительность к настройкам и волатильности: разные структуры VF/нормировок дают разные сигналы. Необходима оптимизация параметров под инструмент и таймфрейм.
Запаздывание: как и все скользящие, индикатор даёт запаздывающие сигналы; рекомендуется использовать в сочетании с ценовыми уровнями, свечными моделями и другими индикаторами.
Работа в боковом рынке: в диапазонном рынке KO может давать ложные сигналы.
Объёмные данные: на некоторых рынках (форекс) объём — это тик-объём (не реальный объём сделок), что снижает информативность.

Компоненты и логика
— Volume Force (VF) — первичная величина, связывающая изменение цены, направление движения и объём. Идея: если цена растёт и закрытие выше средних значений, то объём «поддерживает» рост (положительный VF), если цена падает — объём «поддерживает» падение (отрицательный VF). VF накапливается (или суммируется) в виде накопительной линии (Klinger Cumulative Volume, KCV), а затем из KCV вычисляют два скользящих средних с разными периодами и берут их разницу — собственно осциллятор.