Подскажите, как сделать проверку закрытия текущего ордера по StopLoss?

 
Подскажите, как сделать проверку закрытия текущего ордера по StopLoss?
 
if(OrderType()==OP_BUY)
  if(OrderTakeProfit()>0 && OrderTakeProfit()<=OrderClosePrice())
    { 
     // закрылись по тейкпрофиту
    }
 
if(OrderType()==OP_SELL)
  if(OrderTakeProfit()>0 && OrderTakeProfit()>=OrderClosePrice())
    { 
     // закрылись по тейкпрофиту
    }
 
Renat писал (а):
if(OrderType()==OP_BUY)
  if(OrderTakeProfit()>0 && OrderTakeProfit()<=OrderClosePrice())
    { 
     // закрылись по тейкпрофиту
    }
 
if(OrderType()==OP_SELL)
  if(OrderTakeProfit()>0 && OrderTakeProfit()>=OrderClosePrice())
    { 
     // закрылись по тейкпрофиту
    }


Спасибо.
 
Снова возник вопрос. :(

Какой номер ( OrderSelect() ) у последнего открытого ордера, который по моим условиям должен быть либо открыт, либо закрылся по стоплоссу, что и требуется определить?

 

Ордер имеет свой Magic номер!

 
Можно или перебрать все закрытые ордеры, либо попытаться сразу же обратиться так:
if(OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)==false) return(-1);
Оказывается, на первый вопрос я не так ответил. Вместо стоплосса написал про тейкпрофит. Извините.
 
Renat писал (а):
Можно или перебрать все закрытые ордеры, либо попытаться сразу же обратиться так:
if(OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)==false) return(-1);
Оказывается, на первый вопрос я не так ответил. Вместо стоплосса написал про тейкпрофит. Извините.


Объясните, пожалуйста, как это работает.

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