42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
# BOCPD
|
|
|
|
Bayesian Online Change-Point Detection in MQL5. Maintains a probability
|
|
distribution over how long the current regime has lasted, and updates it bar by
|
|
bar, so a break is flagged as it happens rather than after a lookback window
|
|
catches up.
|
|
|
|
Companion code for the MQL5 article: https://www.mql5.com/en/articles/23482
|
|
|
|
## What it does
|
|
|
|
The run-length posterior is the whole method. At every bar the model asks how
|
|
likely it is that the current regime started 1 bar ago, 2 bars ago, and so on.
|
|
A break shows up as probability mass collapsing from a long run length onto
|
|
zero. Nothing here is a threshold on a moving average.
|
|
|
|
`CBOCPD` in `BOCPDModel.mqh` carries the recursion. Three consumers sit on top
|
|
of it, which is the point of the article: the same signal is useful in more
|
|
than one place.
|
|
|
|
- `BOCPDRegime.mq5` plots the break probability directly, as a monitor.
|
|
- `BOCPDAdaptiveMA.mq5` is a moving average that resets itself when the model
|
|
says the regime changed, instead of dragging stale history across the break.
|
|
- `BOCPDRiskOverlay.mq5` uses it as a meta-layer over position sizing rather
|
|
than as an entry signal.
|
|
|
|
## Layout
|
|
|
|
```
|
|
Include/BOCPD/BOCPDModel.mqh the recursion, CBOCPD
|
|
Indicators/BOCPD/BOCPDRegime.mq5 break probability monitor
|
|
Indicators/BOCPD/BOCPDAdaptiveMA.mq5 self-resetting adaptive average
|
|
Experts/BOCPD/BOCPDRiskOverlay.mq5 risk meta-layer
|
|
```
|
|
|
|
Copy the folders into your terminal's `MQL5` directory and compile.
|
|
|
|
## Disclaimer
|
|
|
|
Educational code. Past behaviour of any model or dataset says nothing about
|
|
future results. Test on your own data and broker conditions before drawing
|
|
conclusions.
|