Функция MQL5

MQL5 Asesores Expertos

Trabajo finalizado

Plazo de ejecución 6 horas
Comentario del Cliente
Очень быстро, качественно. Cпасибо за выполненную работу, успехов!
Comentario del Ejecutor
Приятно работать с Иваном. Понятное ТЗ, работу принял быстро. Спасибо за заказ.

Tarea técnica

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

- найти последнюю закрытую сделку, получить номер бара открытия, номер бара закрытия, определить ее тип (покупка, продажа), далее мой код. Зафиксировать 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);

            }


и.т.д

Han respondido

1
Desarrollador 1
Evaluación
(172)
Proyectos
186
32%
Arbitraje
5
60% / 20%
Caducado
3
2%
Libre
Ha publicado: 3 ejemplos
2
Desarrollador 2
Evaluación
(645)
Proyectos
872
48%
Arbitraje
29
38% / 17%
Caducado
63
7%
Libre

Información sobre el proyecto

Presupuesto
30+ USD
Plazo límite de ejecución
de 1 a 2 día(s)