нужно уточнить из MarketInfo
MODE_LOTSIZE 15 Размер контракта в базовой валюте инструмента
MODE_MINLOT 23 Минимальный размер лота
MODE_LOTSTEP 24 Шаг изменения размера лота
MODE_MAXLOT 25 Максимальный размер лота
MODE_LOTSIZE 15 Размер контракта в базовой валюте инструмента
MODE_MINLOT 23 Минимальный размер лота
MODE_LOTSTEP 24 Шаг изменения размера лота
MODE_MAXLOT 25 Максимальный размер лота
Вот таким образом стало работать. NormalizeDouble может что-то не так возвращал, какие-нибудь лишние цифры после запятой.
string sLots = MathRound(AccountFreeMargin()/2000); lots = StrToDouble(sLots) / 10.0; if (lots > 5.0) lots = 5.0; else if (lots < 0.1) lots = 0.1;
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пока лот был меньше 1, такого сообщения в журнале не было, начиналось с лота 0.5 при 10000 начальных баланса. Но баланс поднялся более чем в 2 раза, лот был вычислен равным 1.2 и тут пошли сообщения об ошибке.