Скачать MetaTrader 5

Order send error 131

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть вопросы по сервису MQL5 Cloud Network? FAQ поможет!
Forex Trader
114255
Forex Trader 2007.09.09 23:36 
Тестер пишет "Order send error 131" при lots = 1.2. Почему?
Пока лот был меньше 1, такого сообщения в журнале не было, начиналось с лота 0.5 при 10000 начальных баланса. Но баланс поднялся более чем в 2 раза, лот был вычислен равным 1.2 и тут пошли сообщения об ошибке.
         double lots = AccountFreeMargin()/20000;
         lots = NormalizeDouble(lots,1);
         if (lots > 5.0) lots = 5.0;
         else if (lots < 0.1) lots = 0.1;
         if (nCmd == OP_BUY)
            ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,5,0,0);
         if (nCmd == OP_SELL)
            ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,5,0,0);




Forex Trader
114255
Forex Trader 2007.09.10 19:51  
нужно уточнить из MarketInfo
MODE_LOTSIZE 15 Размер контракта в базовой валюте инструмента
MODE_MINLOT 23 Минимальный размер лота
MODE_LOTSTEP 24 Шаг изменения размера лота
MODE_MAXLOT 25 Максимальный размер лота
Forex Trader
114255
Forex Trader 2007.09.10 19:58  
Вот таким образом стало работать. 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;
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий