Order send error 131

 
Тестер пишет "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);




 
нужно уточнить из MarketInfo
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;