Функция MQL5

MQL5 Experts

Job finished

Execution time 6 hours
Feedback from customer
Очень быстро, качественно. Cпасибо за выполненную работу, успехов!
Feedback from employee
Приятно работать с Иваном. Понятное ТЗ, работу принял быстро. Спасибо за заказ.

Specification

Добрый день. Написать функцию: работа с закрытыми сделками.

- найти последнюю закрытую сделку, получить номер бара открытия, номер бара закрытия, определить ее тип (покупка, продажа), далее мой код. Зафиксировать ID или тикет позиции (в mql5  так и не вкурил как правильно), чтобы при следующем вызове обрабатывать следующую закрытую последнюю сделку, обработанные сделки повторно не записывать в файлы.

Тип совершаемых сделок - открыл, через пару баров закрыл.

Нужно максимально быстро.


Нерабочий пример реализации:

void Write_data()

  {

   datetime start_time = StringToTime(TimeToString(TimeCurrent(), TIME_DATE)); 

   if(!Fn_get_trade_history(start_time)){return;}

   int deals = HistoryDealsTotal();

   

   for(int i=0; i < deals; i++)

     {

      ulong deal_ticket = HistoryDealGetTicket(i);

      

      if(deal_ticket > ticket_history)

      {

       ticket_history = deal_ticket;

      

         ENUM_DEAL_ENTRY entry_type = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(deal_ticket,DEAL_ENTRY);

         if(entry_type == DEAL_ENTRY_IN) {time_in = HistoryDealGetInteger(deal_ticket,DEAL_TIME); }

         if(entry_type == DEAL_ENTRY_OUT){time_out = HistoryDealGetInteger(deal_ticket,DEAL_TIME);}

           

         int BarShiftOpen = iBarShift(Symbol(),PERIOD_CURRENT,time_in,false);

         int BarShiftClose = iBarShift(Symbol(),PERIOD_CURRENT,time_out,false);

         

         double Opens = iOpen(Symbol(),PERIOD_CURRENT,BarShiftOpen);

         double Closes = iClose(Symbol(),PERIOD_CURRENT,BarShiftClose);

         


         if((ENUM_DEAL_TYPE)HistoryDealGetInteger(deal_ticket,DEAL_TYPE) == DEAL_TYPE_BUY)

         {        

           if(Closes > Opens)

           {

              Hadle_2 = FileOpen("test.txt",FILE_WRITE|FILE_READ|FILE_ANSI,";");

              FileSeek(Hadle_2,0,SEEK_END);

              bWriteInfoToFile(Hadle_2, BarShiftOpen);

            }


и.т.д

Responded

1
Developer 1
Rating
(172)
Projects
186
32%
Arbitration
5
60% / 20%
Overdue
3
2%
Free
Published: 3 codes
2
Developer 2
Rating
(645)
Projects
872
48%
Arbitration
29
38% / 17%
Overdue
63
7%
Free

Project information

Budget
30+ USD
Deadline
from 1 to 2 day(s)