[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"indicator-dpo-en":3},"# Detrended Price Oscillator (DPO)\n\n> StratCraft indicator page for DPO.\n\n**Route**: `\u002Findicators\u002Fdpo\u002F`\n\n## What It Does\n\nDPO removes longer-term trend influence to help expose cyclic movement and shorter-term turning points.\n\n## Formula\n\n`DPO = Price - centered moving average`\n\n## Parameters\n\n- `period` - default `20`\n- `movav` - default `MovingAverageSimple`\n\n## C++23 API\n\n```cpp\n#include \u003Cnonabt\u002Findicators\u002Fdpo.hpp>\nauto dpo = std::make_unique\u003Cnonabt::DPO>(data().close(), 20, \"MovingAverageSimple\");\n```\n\n## Common Usage\n\n- Use DPO to identify cyclical swings.\n- Combine it with support\u002Fresistance or timing rules.\n- Helpful for mean-reversion systems.\n\n## Practical Pattern\n\nPositive DPO values can suggest price is above its centered average, while negative values can suggest the opposite.\n"]