Функции были взяты с открытых источников. Обсуждаем. Пробуем. Тестируем.
функция закрытие позиции по типу
// Функция закрывает последний ордер или удаляет последний отложенный // параметр type может принимать значения OP_BUY, OP_SELL, // OP_BUYSTOP,OP_SELLSTOP, OP_BUYLIMIT, OP_SELLLIMIT // Если в ордерах не применяется Magic Number, то параметр mg можно не передавать. bool Close_LastOrder_by_type( int type, int mg = 0) { // ищем самый последний ордер datetime time=0; int ticket=-1,i; for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderType()==type && OrderSymbol()==Symbol() && OrderMagicNumber()==mg) { if(OrderOpenTime()>time) { time=OrderOpenTime(); ticket=OrderTicket(); } } } } if(OrderTicket()!=ticket)OrderSelect(ticket,SELECT_BY_TICKET); if(OrderType()<=1)return(OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3)); else return(OrderDelete(OrderTicket())); }