catch22/README.md

39 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2026-08-14 00:09:40 +00:00
# catch22
The canonical catch22 time-series feature set, ported to MQL5 and validated
against the reference Python implementation.
Companion code for the MQL5 article: https://www.mql5.com/en/articles/23488
## What it does
catch22 is twenty-two features selected out of thousands because they carry
most of the discriminative power between time series while staying cheap to
compute. `CCatch22` computes all of them natively in MQL5.
The port is checked against `pycatch22` rather than assumed correct, which is
what `validate_catch22.py` and `Catch22Validate.mq5` are for. Feature code that
is subtly wrong still returns plausible numbers, so this step is not optional.
The article then builds a leak-free dataset from the features and runs an
ablation to ask whether they actually add value over the raw series, before
using them as a regime filter in `Catch22EA.mq5`.
## Layout
```
Include/Catch22/Catch22.mqh the CCatch22 engine
Include/Catch22/Catch22Features.mqh the twenty-two feature implementations
Scripts/Catch22/Catch22Validate.mq5 checks against the Python reference
Scripts/Catch22/Catch22Lab.mq5 feature extraction and dataset build
Experts/Catch22/Catch22EA.mq5 the regime filter in a trading context
Catch22/validate_catch22.py reference values from pycatch22
```
Run `Catch22Validate.mq5` before anything else.
## 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.