Скачать MetaTrader 5

Помогите найти ошибку в коде, не закрываются ордера!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Eduard Lipchinskiy
256
Eduard Lipchinskiy  

Есть собственно код:

for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордеров
{
if(OrderSelect(i-1, SELECT_BY_POS,MODE_TRADES)==true)
{
   if (OrderType() ==OP_BUY)
   {
    if (maxProf>OrderTakeProfit()) maxProf=OrderTakeProfit();
    if (Up<OrderOpenPrice()) OrderDelete(OrderTicket());  
   }
   if (OrderType() ==OP_SELL)
   {
   if (minProf<OrderTakeProfit()) minProf=OrderTakeProfit();
   if (Down>OrderOpenPrice()) OrderDelete(OrderTicket());
   }
}
}

Суть в том, что переменная Up и Down соответственно верхняя и нижняя границы каналов и выполняется проверка в выделеных фрагментах выполняется проверка что если для указанного ордера выполняется условие (цена верхней границы канала ниже цены открытия ордера, то даный ордер закрывается).

Но тест показывает что этого не происходит. Подскажите, что не так???

 Зарание благодарен за помощь! 


 

o_o
Модератор
23921
o_o  

рыночные ордера и OrderDelete - две вещи несовместны.

RTFM

Eduard Lipchinskiy
256
Eduard Lipchinskiy  
Блин, я завтыкал...это ж получается что OrderClose() нужно использовать. Но не подскажите как правильно сделать, для OrderClose() вижу несколько параметров нужно указывать, а в моем случае не подскажите какие именно?
Роман
7939
Роман  
pr0fess0r64:
Блин, я завтыкал...это ж получается что OrderClose() нужно использовать. Но не подскажите как правильно сделать, для OrderClose() вижу несколько параметров нужно указывать, а в моем случае не подскажите какие именно?
   Для начала гляньте... прежде чем...
Файлы:
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий