Иван, если сравнивать OTT (Optimized Trend Tracker) и SuperTrend
У OTT более продвинутая формула расчета центральной линии с коэффициентом оптимизации (OttCoeff) и процентным отклонением от MA. Поэтому OTT более гладкий - МАшки фильтруют цену.
fark = MAvg * percent * 0.01 // Размер отклонения
- Отклонение рассчитывается как процент от текущего значения скользящей средней, что делает его адаптивным к волатильности и масштабу цены.
- Автоматическая корректировка границ:
longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop
Границы автоматически корректируются в зависимости от направления движения цены.
- Адаптивное переключение тренда:
dir := dir == -1 and MAvg > shortStopPrev ? 1 :
dir == 1 and MAvg < longStopPrev ? -1 : dir
Направление тренда меняется динамически в зависимости от взаимодействия цены с границами.
- Нелинейная фильтрация через VAR:
VAR := nz(valpha*abs(vCMO)*src) + (1-valpha*abs(vCMO))*nz(VAR[1])
Использование Variable Index Dynamic Average (VAR) обеспечивает адаптивное сглаживание, которое реагирует на изменения волатильности.
- Динамическая корректировка коэффициента:
OTT = MAvg > MT ? MT*(200+percent)/200 : MT*(200-percent)/200
Коэффициент коррекции изменяется в зависимости от положения цены относительно основной линии.
- Возможность выбора разных типов MA позволяет использовать различные адаптивные скользящие средние.
- getMA(src, length) =>
if mav == "SMA" // или другие типы
==================================
SuperTrend просто строит медиану и ATR-канал :
Upper Band = (High + Low) / 2 + Multiplier * ATR
Lower Band = (High + Low) / 2 - Multiplier * ATR