Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2548
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как округлить число к ближайшему лоту?
Задача получить меньшее
0.0151 = 0.01
0.0192 = 0.01
0.0201 = 0.02
0.0349 = 0.03
Так не получается
Срезать лишнее после сотых?
Задача:
На каждые 5000 депозита при лоте 0.01, повышать лот на 0.01
Сейчас при росте баланса до 7501, лот получается 0.02, а нужен 0.01, пока баланс не станет 10000
Как округлить число к ближайшему лоту?
Задача получить меньшее
0.0151 = 0.01
0.0192 = 0.01
0.0201 = 0.02
0.0349 = 0.03
Так не получается
Срезать лишнее после сотых?
Задача:
На каждые 5000 депозита при лоте 0.01, повышать лот на 0.01
Сейчас при росте баланса до 7501, лот получается 0.02, а нужен 0.01, пока баланс не станет 10000
P.S. Наверное как решение, подойдёт
Используйте функцию MathFloor() или просто floor().
double lotStep = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP); double lots = NormalizeDouble(0.0151/lotStep,0)*lotStep; // Print = 0.02
Используйте функцию MathFloor() или просто floor().
Выдал не то
Также не тот результат, выдал 0.02
Так?
Да, работает правильно
Да, работает правильно
Ещё так можно
Тут даже нормализация не нужна. Но это не точно.Выдал не то
А зачем NULL? Параметр по умолчанию указывать не надо.
Да, извини. Это функция для нормализации цен, а не лотов.
Вот эта для лотов.
У него задача немного другая. Ну я понял, что ему не надо нормализовать лот. У него задача округлить его до сотых.
... в меньшую сторону
Это вроде как выполняет задачу
... в меньшую сторону
Это вроде как выполняет задачу
Возможно, но она не соответствует поставленному изначально вопросу.
Задача получить меньшее
0.0151 = 0.01
0.0192 = 0.01
0.0201 = 0.02
0.0349 = 0.03
Мой ответ, отвечает на этот вопрос. Ваш нет)))