KPO (Kase Peak Oscillator) — Осциллятор пика Кейс

Kase-Peak-Oscillator
Осциллятор пика Кейс (Kase Peak Oscillator, KPO) — это технический осциллятор, разработанный трейдером и инженером Селией (Синтия) Кейс (Celia /Cynthia Kase) как часть ее торговой методологии в 1992 году, предназначенный для измерения импульса ценового движения с учётом сглаживания и фильтрации шума. Он помогает выявлять точки разгона (пики импульса), возможные развороты, определять перекупленные и перепроданные условия на рынке, а также подтверждать трендовые движения.

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

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

Поведение и применение:
— Пересечение нуля: переход через ноль часто трактуется как смена доминирующей силы (быки/медведи).
— Дивергенции: расхождение между ценой и KPO может сигнализировать о потенциальном развороте.
— Усиление тренда: рост KPO по мере движения цены вверх подтверждает силу восходящего импульса; аналогично для снижения вниз.
— Фильтрация шума: в отличие от простых импульсных индикаторов, KPO включает элементы сглаживания и нормализации, чтобы уменьшить ложные сигналы.

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


Расчет индикатора Kase Peak Oscillator

Kase Peak Oscillator — это авторская комбинация нескольких элементов: расчёт «импульса» (change or momentum), адаптивное сглаживание (обычно экспоненциальное/алгоритмическое) и нормализация (для приведения значений к удобному диапазону). В литературе и на практических реализациях формулы приводятся в разных вариациях; одна из распространённых формул (упрощённая / демонстрационная) выглядит так:

Шаг 1 — базовый импульс (например, разность цен):
P = Close − Close[t−n] где n — базовый период (например, 1 для простого изменения за шаг или другой согласованный период).

Шаг 2 — сглаживание импульса (экспоненциальное скользящее среднее, EMA):
S = EMA(P, L)
где L — период сглаживания.

Шаг 3 — нормализация (чтобы привести к относительному значению):
V = EMA(|P|, L) (скользящее среднее абсолютного импульса — показатель волатильности)

Шаг 4 — расчёт KPO:
KPO = 100 * (S / V)

или альтернативно без умножения на 100:
KPO = S / V

Итого: KPO — это относительный сглаженный импульс (скользящее среднее изменений) нормированный на среднее абсолютное изменение (волатильность). Конкретные реализации могут использовать адаптивные веса (например, Kase’s Adaptive Moving Average — KAMA), взвешивать последние значения и включать дополнительные корректирующие коэффициенты.

Второй вариант расчет индикатора Kase Peak Oscillator
1. Расчет показателя краткосрочного импульса на основе короткого периода:
Short Momentum = EMA(Price, ShortPeriod) — EMA(Price, ShortPeriod)[previous]

2. Расчет показателя долгосрочного импульса на основе длинного периода:
Long Momentum = EMA(Price, LongPeriod) — EMA(Price, LongPeriod)[previous]

3. Расчет текущей волатильности:
Volatility = ATR(ShortPeriod)

4. Нормализация импульса относительно волатильности:
Normalized Short Momentum = Short Momentum / Volatility
Normalized Long Momentum = Long Momentum / Volatility

5. Итоговый расчет KPO:
KPO = Normalized Short Momentum — Normalized Long Momentum
где:
Price — обычно используется цена закрытия
EMA — экспоненциальное скользящее среднее
ATR — средний истинный диапазон
ShortPeriod — короткий период расчета
LongPeriod — длинный период расчета

Еще один альтернативный вариант
KPO = RWI(high) — RWI(low), where

RWI(high) = (High[0]-Low[n])/ATR*sqrt(n),

RWI(low) = (High[n]-Low[0])/ATR*sqrt(n).

Код для МТ4

PRC_Kase Peak Oscillator V2 | indicator
Sharing ProRealTime knowledge

— settings
kpoDeviations = 2.0 // Kase peak oscillator deviations
kpoShortCycle = 8 // Kase peak oscillator short cycle
kpoLongCycle = 65 // Kase peak oscillator long cycle
kpoSensitivity = 40
allPeaksMode = 0 //1=true ; 0=false
— end of settings

if barindex>kpoLongCycle*2 then
ccLog = Log(Close[0]/Close[1])
ccDev = std[9](ccLog)

avg = average[30](ccDev)

if (avg>0) then
max1 = 0
maxs = 0

for k = kpoShortCycle to kpoLongCycle-1 do
max1 = Max(Log(High[0]/Low[0+k])/Sqrt(k),max1)
maxs = Max(Log(High[0+k]/Low[0])/Sqrt(k),maxs)
next
x1 = max1/avg
xs = maxs/avg
endif

xp = kpoSensitivity*(average[3](x1)-average[3](xs))
xpAbs = Abs(xp)

kpoBuffer = xp
kphBuffer = xp

tmpVal = average[50](xpAbs)+kpoDeviations*std[50](xpAbs)
maxVal = Max(90.0,tmpVal)
minVal = Min(90.0,tmpVal)

if (kpoBuffer > 0) then
kpdBuffer = maxVal
kpmBuffer = minVal
else
kpdBuffer = -maxVal
kpmBuffer = -minVal
endif

kppbuffer=0
if (not allPeaksMode) then
if (kpoBuffer[1]>0 and kpoBuffer[1]>kpoBuffer[0] and kpoBuffer[1]>=kpoBuffer[2] and kpoBuffer[1]>= maxVal) then
kppBuffer = kpoBuffer[1] endif
if (kpoBuffer[1]<0 and kpoBuffer[1]0 and kpoBuffer[1]>kpoBuffer[0] and kpoBuffer[1]>=kpoBuffer[2]) then
kppBuffer = kpoBuffer[1] endif
if (kpoBuffer[1]<0 and kpoBuffer[1]

Kase Peak Oscillator for Amibroker

Per1 = Param("Per1",7,1,100,1);
RWH=(H-Ref(L,-Per1))/(ATR(Per1)*sqrt(Per1));
RWL=(Ref(H,-Per1)-L)/(ATR(Per1)*sqrt(Per1));
Pk=WMA((RWH-RWL),3);
MN=MA(Pk,Per1);
SD=StDev(Pk,Per1);
Val1=IIf(MN+(1.33*SD)>2.08,MN+(1.33*SD),2.08);
Val2=IIf(MN-(1.33*SD)<-1.92,MN-(1.33*SD),-1.92);
ln1=IIf(Pk>0,Val1,IIf(Pk<0,Val2,0));
Red=IIf(Ref(Pk,-1)>Pk,Pk,0);
Blue=IIf(Pk>Ref(Pk,-1),Pk,0);
Plot(Red,"Red",colorRed,styleHistogram);
Plot(Blue,"Blue",colorBlue,styleHistogram);
Plot(ln1,"ln",colorGreen,styleLine);

Как использовать индикатор Kase Peak Oscillator

● Пересечение нулевой линии:
— Пересечение снизу вверх может рассматриваться как бычий сигнал.
Kase-Peak-Oscillator-Buy-Signal
— Пересечение сверху вниз может рассматриваться как медвежий сигнал.
Kase-Peak-Oscillator-Sell-Signal

● Экстремальные значения:
— Высокие положительные значения могут указывать на перекупленность рынка и потенциальный разворот вниз.
— Высокие отрицательные значения могут указывать на перепроданность рынка и потенциальный разворот вверх.

● Дивергенции:
— Бычья дивергенция (цена формирует новый минимум, а KPO — более высокий минимум) может сигнализировать о предстоящем восходящем развороте.
— Медвежья дивергенция (цена формирует новый максимум, а KPO — более низкий максимум) может сигнализировать о предстоящем нисходящем развороте.

● Пересечение между компонентами:
— Когда краткосрочный импульс пересекает долгосрочный импульс снизу вверх, это может рассматриваться как бычий сигнал.
— Когда краткосрочный импульс пересекает долгосрочный импульс сверху вниз, это может рассматриваться как медвежий сигнал.

● Ускорение и замедление:
— Увеличение наклона KPO указывает на ускорение импульса.
— Уменьшение наклона KPO указывает на замедление импульса, что может предшествовать развороту.

● Комбинирование с другими индикаторами:
— KPO часто используется вместе с другими техническими индикаторами для подтверждения сигналов.
— Особенно эффективно сочетание с индикаторами тренда и уровнями поддержки/сопротивления.