Вс. Апр 28th, 2024

Функция закрытия последней сделки на языке 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);


Поделись с друзьями:

от drivermql

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.