Нужна помощь!!! Как из истории выбрать последний убыточный ордер???
нужно найти последний который убыточный или просто найти последний закрытый и проверить не убыточный ли он?
При сортировке
поможет -
Функция 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);
}
выводит минус последней убыточной сделки.
Передалал Кимовский под свое задание.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь