# Detrended Price Oscillator (DPO)

> QuantNexus indicator page for DPO.

**Route**: `/quantnexus/indicators/dpo/`

## What It Does

DPO removes longer-term trend influence to help expose cyclic movement and shorter-term turning points.

## Formula

`DPO = Price - centered moving average`

## Parameters

- `period` - default `20`
- `movav` - default `MovingAverageSimple`

## C++23 API

```cpp
#include <nonabt/indicators/dpo.hpp>
auto dpo = std::make_unique<nonabt::DPO>(data().close(), 20, "MovingAverageSimple");
```

## Common Usage

- Use DPO to identify cyclical swings.
- Combine it with support/resistance or timing rules.
- Helpful for mean-reversion systems.

## Practical Pattern

Positive DPO values can suggest price is above its centered average, while negative values can suggest the opposite.
