Функция MQL5

MQL5 Experts

Tâche terminée

Temps d'exécution 6 heures
Commentaires du client
Очень быстро, качественно. Cпасибо за выполненную работу, успехов!
Commentaires de l'employé
Приятно работать с Иваном. Понятное ТЗ, работу принял быстро. Спасибо за заказ.

Spécifications

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

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

            }


и.т.д

Répondu

1
Développeur 1
Évaluation
(172)
Projets
186
32%
Arbitrage
5
60% / 20%
En retard
3
2%
Gratuit
Publié : 3 codes
2
Développeur 2
Évaluation
(645)
Projets
872
48%
Arbitrage
29
38% / 17%
En retard
63
7%
Gratuit

Informations sur le projet

Budget
30+ USD
Délais
de 1 à 2 jour(s)