Помогите разобраться с OrderSend()

 
Пожалуйста, помогите разобраться, не могу врубиться где ошибка, вроде все элементарно просто:
if(buylots>selllots && buylots!=selllots+selllotsSTO)
{
defenselots=NormalizeDouble(buylots+buylotsSTO-selllots-selllotsSTO+baselots, mmfx); //extern int mmfx -целый лот-0, мини-1, микро-2
RefreshRates();
priceopen=NormalizeDouble(lastfractallow-1*Point, Digits);
if(tps>0) takeprofit=NormalizeDouble(priceopen-tps*Point, Digits); else takeprofit=0;
ticket=OrderSend(Symbol(),OP_SELLSTOP,defenselots,priceopen,3,0,takeprofit,"", MagicNumber, 0,Red);
if(ticket>0)
{
Print(" Выставлен защитный ордер : #",ticket," sellstop open at ",priceopen, " ExpertMagic: ",MagicNumber);
Sleep(5000);
}}
Советник, выдает такое интересное сообщение:
23:30:05 Советник EURJPY,M30: invalid lots amount for OrderSend function
23:30:05 Советник EURJPY,M30: Выставлен защитный ордер : #-1 sellstop open at 156. 59 ExpertMagic: 100005
То есть if(ticket>0) проигнорирован?? Print() вроде не должен выполняться? или это просто глюк?
 
...ошибка, вроде все элементарно просто:
23:30:05 Советник EURJPY,M30: invalid lots amount for OrderSend function


Так все уже написано, зачем голову ломать.
 
Перезагрузи терминал. На последних билдах сам стал часто замечать такое, что после компилирования советник ведет себя неадекватно.
 
Talex:
...ошибка, вроде все элементарно просто:

23:30:05 Советник EURJPY,M30: invalid lots amount for OrderSend function





Так все уже написано, зачем голову ломать.
в том то и дело, что там вроде все верно, не должен быть инвалид лотс. Я просил код рассмотреть внимательно, а не сообщение советника :)
 
Перед ордерсендом дайте принтовку переменной defenselots.
 
mr_Johns:
в том то и дело, что там вроде все верно, не должен быть инвалид лотс. Я просил код рассмотреть внимательно, а не сообщение советника :)
Не должен быть, а он есть и терминал явно показывает где. Воспользуйтесь советом Игоря, сделайте распринтовку, чтобы убедиться и еще посмотрите примет ли ДЦ такой лот.
 

значение лота нужно не только нормализировать но и приводить к кратному шагу по лоту, иначе он будет как раз так и ругаться что инвалид лот

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