Краткое описание всех изменений
Подробности о функциях
UseMoneyManagement true → лоты рассчитываются на основе капитала; false → используется фиксированное значение лотов
RiskPercent Процент от капитала счета, используемый для определения размера лота (по умолчанию 2%)
DecreaseFactor Сохраняется из исходного значения — уменьшает лот после последовательных убытков
Нормализация лота Привязана к MODE_LOTSTEP, ограничена диапазоном MODE_MINLOT / MODE_MAXLOT
MaxSpreadPoints Максимально допустимый спред в пунктах; 0 = фильтр отключен
IsSpreadAllowed() Вызывается в CheckForOpen() — пропускает сделку и регистрирует сообщение, если спред слишком большой
ReverseSignals false = исходная логика (crossDown→BUY, crossUp→SELL); true = обратная (crossDown→SELL, crossUp→BUY)
Теперь проверяется значение возвращаемого значения OrderSend для сообщений об ошибках; Ошибки, выведенные в журнал
Округление партии Исправлено в исходном коде NormalizeDouble(..., 01) → правильное округление до 2 знаков после запятой с шагом партии