40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
[← Utils](../README.md)
|
|
|
|
# Utils/FA
|
|
|
|
Shared base classes used across the ecosystem: ATR access, bar control, auto-cleanup, simple logging, diffs and sorting.
|
|
|
|
## Main features
|
|
- ATR wrapper for indicator access (`CAtr` and related classes in `Atr.mqh`).
|
|
- Bar-change detection helpers, including per-timeframe variants (`CBarControler`, `CBarControlerFastW1`, `CBarControlerFastMN1`, `CBarControlerFastMinors`).
|
|
- Automatic pointer cleanup on deinit (`CAutoCleaner`).
|
|
- Lightweight logging base used by other modules (`CLoggerBase`).
|
|
- Distance/diff calculators — by points or by ATR (`CDiff`, `CDiffPoint`, `CDiffAtr`).
|
|
- Simple array sorting (`CSimpleSort`).
|
|
|
|
## Basic usage
|
|
|
|
### Bar control
|
|
```mql5
|
|
CBarControler bar_ctrl;
|
|
bar_ctrl.Init(_Symbol, PERIOD_CURRENT);
|
|
|
|
if(bar_ctrl.IsNewBar())
|
|
{
|
|
// new bar logic
|
|
}
|
|
```
|
|
|
|
### Auto-cleanup
|
|
```mql5
|
|
CAtr* g_atr = new CAtr();
|
|
g_atr.Create(_Period, _Symbol, 14, true, true);
|
|
CAutoCleaner::AddPtr(g_atr); // will be deleted automatically on deinit
|
|
```
|
|
|
|
### Diff by ATR
|
|
```mql5
|
|
CDiffAtr* diff = CreateDiffptr(MODE_DIFF_BY_ATR, _Symbol, g_atr, 0, 1.5);
|
|
```
|
|
|
|
> Only the most representative classes are shown here.
|