Подскажите, почему не срабатывает OrderClose?

 
int NOrd(int mn)
{
int ot = 0;
for(int i=OrdersTotal()-1;i>=0;i--)
{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if( OrderSymbol()==Symbol() && OrderMagicNumber() == mn)
{
ot++;
}
}
}
return(ot);
}


void OpCl(int mn)
{
if(mn == mn1)
{
if(NOrd(mn1) < 1)
{
if(b_signal() == 1)
{
int ot = OP_BUY;
double pr = Ask;
double sl = Bid - sltp()*Point;
double tp = Ask + sltp()*Point;
int cl = Blue;
oop(ot,pr,sl,tp,mn,cl);
}
else if(s_signal() == 1)
{
ot = OP_SELL;
pr = Bid;
sl = Ask + sltp()*Point;
tp = Bid - sltp()*Point;
cl = Red;
oop(ot,pr,sl,tp,mn,cl);
}
}
else if(NOrd(mn1) > 0)
{
if((OrderType() == OP_BUY
&& b_signal() < 0))

{
OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);
}
if (OrderType() == OP_SELL &&
s_signal() < 0)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);
}
}
}
}
 

Вроде бы все сделано как там

написано, а не закрывается. 

 
liza:

Вроде бы все сделано как там

написано, а не закрывается. 


С помощъю функции OrderSelect() выбираем его покупка или продажа, получаем параметры  OrderTicket()...... и.т.д,

затем удаляем, закрываем, модифицируем. 

 
В таком коде трудно разбираться, так как все фигурные скобки на одной вертикали. Нужно их ставить со сдвигом. Тогда код читается легче. При вставке кода используйте кнопку SRC.
 
r772ra:


С помощъю функции OrderSelect() выбираем его покупка или продажа, получаем параметры  OrderTicket()...... и.т.д,

затем удаляем, закрываем, модифицируем. 

 

Спасибо большое!!!

Иногда пишешь и забываешь

элементарное, а кто то

посмотрит свежим взглядом

и подскажет.

Еще раз большое спасибо! 

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