Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Тысяча человек уже опубликовали продукты в Маркете. Опубликуй и ты свой!
Eduard Lipchinskiy
256
Eduard Lipchinskiy 2010.09.24 20:39 

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

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
Модератор
23694
o_o 2010.09.24 20:48  

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

RTFM

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