База полезных кодов.

Voldemar

Админ
Staff member
Joined
Jan 2, 2025
Messages
118
Reaction score
56
Собираю редкие полезные коды и логические решения.
 
📌 Немного макросов Вам, что бы облегчить Жизнь!

CSS:
#define _PointLot          ::SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP)     // === Макрос возврата шага лота
#define _DigitsLot    (int)::ceil(::fabs(::log(_PointLot) / ::log(10)))        // === Макрос возврата знаков после точки в лоте (Крайне полезный макрос)
#define _Nd(aValue)        ::MathRound(aValue / _Point) * _Point               // === Макрос нормализации цены
#define _Ds(aValue)        ::DoubleToString(aValue,_Digits)                    // === Макрос нормализации цены
#define _NdLt(aValue)      ::MathRound(aValue / _PointLot) * _PointLot         // === Макрос нормализации лота
#define _TickSize(aValue)  ::NormalizeDouble(::SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)*aValue,2)

Макросы должны быть указаны один раз в шапке кода, и могут быть использованы везде по коду.

Зачем?

В коде часто пишем:
double ask = NormalizeDouble(Ask, Digits());

Макрос позволяет заменить такую строчку на:
double ask = _Nd(Ask);

1 - Код лаконичней
2 - Код стабильно работающий, не вызывает сомнений а все верно ли нормализуется
3 - Комфорт использования, можно вынести в отдельный файл с макросами и таскать из кода в код и больше не юзать NormalizeDouble
 
Last edited:
Back
Top Bottom