Пт. Апр 26th, 2024

Функция определяет количество прибыльных сделок с определенного времени, передаваемого в параметре этой функции.

int profitInRow(datetime startCount)
  {
   int res = 0;
   double profit = 0;
   ulong deal_ticket=0;
   ulong order_ticket=0;
   ulong order_magic  = -1;
   int deals=HistoryDealsTotal();
   datetime deal_time = 0;
   
   for(int i=0; i<deals; i++)
     {
      deal_ticket=HistoryDealGetTicket(i);
      order_magic = (ulong)HistoryDealGetInteger(deal_ticket,DEAL_MAGIC);
      profit = HistoryDealGetDouble(deal_ticket,DEAL_PROFIT);
      deal_time = (datetime) HistoryDealGetInteger(deal_ticket,DEAL_TIME);
         
      if(deal_ticket>0 && order_magic == Magic && profit > 0 && deal_time > startCount)
        {
         order_ticket=(ulong)HistoryDealGetInteger(deal_ticket,DEAL_ORDER);

         if(order_ticket>0)
           {
            if(HistoryDealGetInteger(deal_ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT)  res++;
           }
        }
     }
   return(res);
  }

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

от drivermql

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

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

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