DPO (Детрендированный ценовой осциллятор)
DPO (Детрендированный ценовой осциллятор)
Что такое DPO?
Детрендированный ценовой осциллятор (DPO) — это технический индикатор, который удаляет тренд из данных цены для выявления циклических паттернов. В отличие от большинства осцилляторов, использующих последнюю цену, DPO смещён назад во времени для лучшего совпадения с циклическими паттернами. Он колеблется вокруг нуля и особенно полезен для определения вершин и оснований циклов в ценовых данных.
DPO был разработан Уильямом Блау и представлен в его книге "Momentum, Direction and Divergence" в 1995 году. Основная идея индикатора заключается в том, что цены имеют тенденцию к циклическому поведению, но трендовые движения могут маскировать эти циклы.
Как работает DPO
DPO вычитает смещённую скользящую среднюю из исторической цены:
DPO = Закрытие[N/2 + 1] - SMA(Закрытие, N)
где:
- N — период скользящей средней
- N/2 + 1 — смещение назад (например, для периода 20 это будет 11 баров назад)
- SMA — простая скользящая средняя
Используя смещённую точку отсчёта, DPO изолирует циклический компонент ценового движения, эффективно убирая влияние долгосрочного тренда.
Математический пример
Рассмотрим расчёт DPO(20) для акции с ценой закрытия 150 рублей:
- Берём цену закрытия 11 баров назад (20/2 + 1 = 11): 150 руб.
- Рассчитываем SMA(20) за текущий период: 148 руб.
- DPO = 150 - 148 = +2 руб.
Положительное значение указывает, что цикл находится в восходящей фазе.
Ключевые особенности
- Выше 0 — Цена выше детрендированной средней (восходящая фаза цикла)
- Ниже 0 — Цена ниже детрендированной средней (нисходящая фаза цикла)
- Пики — Указывают на вершины циклов (потенциальные точки продажи)
- Впадины — Указывают на основания циклов (потенциальные точки покупки)
- Не трендовый индикатор — Специально создан для удаления влияния тренда
- Смещение во времени — Значения DPO отстают от текущей цены на N/2+1 периодов
Пошаговая инструкция по использованию
Шаг 1: Выбор периода
- Определите приблизительную длину цикла, который хотите анализировать
- Установите период DPO равным этой длине (обычно 14-35 периодов)
- Для дневных графиков: 20-период для месячных циклов, 50-период для сезонных
Шаг 2: Анализ сигналов
- Наблюдайте за колебаниями DPO вокруг нулевой линии
- Ищите повторяющиеся паттерны максимумов и минимумов
- Измеряйте время между пиками для определения длины цикла
Шаг 3: Генерация торговых сигналов
- Покупка: когда DPO достигает характерного минимума и начинает расти
- Продажа: когда DPO достигает характерного максимума и начинает падать
- Подтверждайте сигналы другими индикаторами
Торговые сигналы
Сигналы на покупку
- DPO пересекает 0 снизу вверх (цикл поворачивает вверх)
- DPO достигает типичной глубины минимума цикла (историческое сравнение)
- DPO начинает расти из впадины после формирования двойного дна
- Бычья дивергенция: цена делает новый минимум, а DPO формирует более высокий минимум
Сигналы на продажу
- DPO пересекает 0 сверху вниз (цикл поворачивает вниз)
- DPO достигает типичного максимума цикла (историческое сравнение)
- DPO начинает падать с пика после формирования двойной вершины
- Медвежья дивергенция: цена делает новый максимум, а DPO формирует более низкий максимум
Практический пример торговой стратегии
Рассмотрим применение DPO(20) на дневном графике акций Сбербанка:
Настройки
- Инструмент: SBER (дневной график)
- DPO период: 20
- Дополнительный фильтр: RSI(14)
Сигналы
- Покупка: DPO опускается ниже -5 рублей (исторический минимум) и начинает расти + RSI < 30
- Продажа: DPO поднимается выше +5 рублей (исторический максимум) и начинает падать + RSI > 70
- Стоп-лосс: 2% от входной цены
- Тейк-профит: при противоположном сигнале DPO
Результаты анализа
За последние 6 месяцев такая стратегия дала бы:
- Количество сделок: 8
- Прибыльных: 6 (75%)
- Средняя прибыль: +3.2%
- Максимальная просадка: -4.1%
Параметры и настройки
| Параметр | По умолчанию | Диапазон | Описание | |----------|-------------|----------|----------| | Период | 20 | 5-100 | Период SMA (определяет длину обнаруживаемого цикла) | | Цена | Close | OHLC | Тип цены для расчёта | | Сглаживание | Нет | 2-10 | Дополнительное сглаживание результата |
Оптимальные значения для разных таймфреймов
| Таймфрейм | Рекомендуемый период | Назначение | |-----------|---------------------|------------| | 1 час | 14-20 | Внутридневные циклы | | 4 часа | 20-30 | Краткосрочные циклы | | 1 день | 20-35 | Среднесрочные циклы | | 1 неделя | 10-20 | Долгосрочные циклы |
Примеры условий в StratBase.ai
| Условие | Значение | Применение |
|---------|----------|------------|
| DPO(20) > 0 | Цена выше детрендированной средней | Фильтр для лонгов |
| DPO(20) < 0 | Цена ниже детрендированной средней | Фильтр для шортов |
| DPO(20) cross_over 0 | Цикл поворачивает вверх | Сигнал покупки |
| DPO(20) cross_under 0 | Цикл поворачивает вниз | Сигнал продажи |
| DPO(20) > DPO(20)[1] | DPO растёт | Восходящий импульс |
| DPO(20) < -10 | DPO в зоне перепроданности | Уровень для покупок |
Комбинирование с другими индикаторами
DPO + RSI
Покупка: DPO(20) cross_over 0 AND RSI(14) < 40
Продажа: DPO(20) cross_under 0 AND RSI(14) > 60
DPO + Полосы Боллинджера
Покупка: DPO(20) > 0 AND Close < BB_Lower(20,2)
Продажа: DPO(20) < 0 AND Close > BB_Upper(20,2)
DPO + Объём
Подтверждение: DPO(20) cross_over 0 AND Volume > SMA(Volume,10)
Ограничения и недостатки
Основные ограничения
- Запаздывание: Из-за смещения DPO отстаёт от реальных ценовых движений
- Не подходит для трендовых рынков: Эффективен только в боковых движениях
- Субъективность: Требует ручной настройки периода под конкретные циклы
- Ложные сигналы: Может давать много шума на волатильных рынках
Когда не использовать DPO
- В сильных трендовых движениях
- На новостных событиях с высокой волатильностью
- При низкой ликвидности инструмента
- В периоды структурных изменений рынка
Часто задаваемые вопросы
Вопрос: Почему DPO показывает значения не для текущего дня?
Ответ: DPO специально смещён назад на N/2+1 периодов для устранения влияния тренда. Это не ошибка, а особенность индикатора.
Вопрос: Как определить оптимальный период для DPO?
Ответ: Наблюдайте за историческими данными и определите среднюю длину циклов. Период DPO должен соответствовать этой длине. Можно также использовать спектральный анализ.
Вопрос: Можно ли использовать DPO для скальпинга?
Ответ: DPO не подходит для скальпинга из-за смещения во времени. Лучше использовать его для свинг-трейдинга и позиционной торговли.
Вопрос: Почему DPO даёт ложные сигналы?
Ответ: Ложные сигналы возникают при нарушении циклической структуры рынка. Используйте дополнительные фильтры и подтверждающие индикаторы.
Практические советы и лучшие практики
Советы по применению
- DPO лучше всего подходит для определения повторяющихся циклов в данных цены
- Период должен соответствовать приблизительной длине цикла, который вы хотите обнаружить
- Не подходит для трендовых стратегий — используйте для стратегий возврата к среднему
- Сравнивайте DPO с разными периодами для нахождения доминирующих циклов
- Хорошо работает на старших таймфреймах (дневной, недельный) для свинг-трейдинга
Оптимизация стратегий
- Бэктест на длительных периодах: Проверяйте стратегии минимум на 2-3 годах данных
- Учёт комиссий: Включайте реальные торговые расходы в расчёты
- Управление рисками: Используйте стоп-лоссы и позиционное управление капиталом
- Адаптация к рынку: Периодически пересматривайте параметры под текущие условия
Распространённые ошибки
- Использование DPO в сильных трендах
- Игнорирование смещения во времени при анализе
- Слишком частая смена параметров
- Пренебрежение объёмами при подтверждении сигналов
- Использование только DPO без дополнительных фильтров

