Функция закрытия последней сделки на языке MQL5:
// можно переделать под получение любых данных от последней закрытой сделки
datetime getLastBarLastClosePos(long mag)
{
ulong deal_ticket = -1; // тикет сделки
ulong order_ticket; // тикет ордера,по которому была совершена сделка
datetime transaction_time = -1; // время совершения сделки
long deal_entry; //DEAL_ENTRY_OUT
long magic; //магик
HistorySelect(0,TimeCurrent());//--- запросим историрю сделок в указанном интервале
int deals=HistoryDealsTotal();//--- общее количество в списке сделок
//--- теперь обработаем каждую сделку
for(int c=deals; c>0; c--)
{
deal_ticket=HistoryDealGetTicket(c);
order_ticket = ulong(HistoryDealGetInteger(deal_ticket, DEAL_ORDER));
magic = long(HistoryDealGetInteger(deal_ticket, DEAL_MAGIC));
deal_entry = long(HistoryDealGetInteger(deal_ticket, DEAL_ENTRY));
if(order_ticket > 0 && magic == mag && deal_entry == DEAL_ENTRY_OUT)
{
transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
break;
}
}
return(transaction_time);
}
Бар закрытия последней сделки:
iBarShift(_Symbol,_Period,getLastBarLastClosePos(Magic);