Объем сделки и NormalizeDouble();

 
Объем сделки: нужно ли нормализовать в соответствии со спецификацией инструмента? или можно отправлять на сервер 0,123456 и он сам его округлит как надо и это будет безопасно и безотказно вне зависимости от брокера?
 
Нужна нормализация.
 
Alexandr Bryzgalov:
Нужна нормализация.

тогда вопрос, если для нормализации цены у нас есть "SYMBOL_DIGITS" и тут все просто, то как нормализовать объем, если учитывать что  шаг объема может быть как 0,01 так и 0,25 ?

 
Pavel Kolchin:

тогда вопрос, если для нормализации цены у нас есть "SYMBOL_DIGITS" и тут все просто, то как нормализовать объем, если учитывать что  шаг объема может быть как 0,01 так и 0,25 ?

SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

 
Pavel Kolchin:

тогда вопрос, если для нормализации цены у нас есть "SYMBOL_DIGITS" и тут все просто, то как нормализовать объем, если учитывать что  шаг объема может быть как 0,01 так и 0,25 ?

SYMBOL_VOLUME_STEP


из простого

double LotStep=SymbolInfoDouble(Lot,SYMBOL_VOLUME_STEP);

double NormalizeLots(double lots,double step)
  {
   return (MathRound(lots/step)*step);
  }
 
Alexandr Bryzgalov:

в последнем примере нет нормализации, результат может получиться 0,25000001

 
нужно не только нормализовывать под число знаков Digits но и корректировать с учетом шага лота.
 
Nikolay Ivanov:
нужно не только нормализовывать под число знаков Digits но и корректировать с учетом шага лота.

а мне количество знаков самому высчитывать? 

 
дело в том что НИГДЕ в документации не говорится что объем нужно нормализовать и подгонять под шаг лота, я проверил везде где только мог, неподходящее значение ошибки не вызывает, сервер сам округляет как надо, вот думаю оставлять так или все таки играть с цифрами
 
Pavel Kolchin:
дело в том что НИГДЕ в документации не говорится что объем нужно нормализовать и подгонять под шаг лота, я проверил везде где только мог, неподходящее значение ошибки не вызывает, сервер сам округляет как надо, вот думаю оставлять так или все таки играть с цифрами

 всего нельзя описать в документации, но практика подсказывает что эти мероприятия делать нужно. Если коды не коммерческие - то не надо, если будет ошибка сами и поправите.. Значность лота можно вычислить.. Либо сделать настройкой 

 
Nikolay Ivanov:

Значность лота можно вычислить

как узнать сколько знаков после запятой у числа 0.10 ? при переводе в строку количество знаков после запятой может стать неверным

Причина обращения: