[← 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.