Нужна помощь!!!

 
Нужна помощь!!! Как из истории выбрать последний убыточный ордер???
 
нужно найти последний который убыточный или просто найти последний закрытый и проверить не убыточный ли он?
 


При сортировке     поможет - 

Функция isLossLastPos().

Эта функция возвращает флаг убыточности последней закрытой позиции. Флаг поднят - True - последняя позиция была закрыта с убытком. Флаг опущен - False - последняя позиция была закрыта либо в ноль, либо с прибылью

https://www.mql5.com/ru/forum/107476/page21

 


double isSTADO(string sy="", int op=-1, int mn=-1, int time=0) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();
double punktLoss;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}


if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY) && time<OrderCloseTime()) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
tick=OrderTicket();
// if (OrderType()==OP_BUY) punktLoss=((OrderOpenPrice()-OrderClosePrice()) / Point);
// if (OrderType()==OP_SELL) punktLoss=((OrderClosePrice()-OrderOpenPrice()) / Point);

punktLoss=OrderProfit();


}
return(punktLoss);
}

выводит минус последней убыточной сделки.


Передалал Кимовский под свое задание.

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