Чт. Апр 25th, 2024

Функция для мультивалютного советника, выводящая (принтом) в конце тестирования сумму профита по каждому участвующему в торговле инструменту.

Вызов функции делать в OnDeinit(). Входной параметр — массив с торговыми инструментами.

//+------------------------------------------------------------------+
void reportOpPair(string &arrP[])
  {
   ulong d_ticket=0;
   string res = "";
   double totProf = 0;
   if(HistorySelect(0,TimeCurrent()))
     {
      for(int i = 0; i < ArraySize(arrP); i++)
        {
         double prof=0;

         for(int j= 0; j<HistoryDealsTotal(); j++) // Получаем общее количество сделок в истории
           {
            d_ticket = HistoryDealGetTicket(j); // выбираем сделку по тикету
            if(d_ticket>0)
              {
               string symb = arrP[i];
               StringTrimLeft(symb);
               StringTrimRight(symb);
               if(HistoryDealGetString(d_ticket,DEAL_SYMBOL) == symb)
                 {
                  prof += HistoryDealGetDouble(d_ticket,DEAL_PROFIT) + HistoryDealGetDouble(d_ticket,DEAL_SWAP) + HistoryDealGetDouble(d_ticket,DEAL_COMMISSION) + HistoryDealGetDouble(d_ticket,DEAL_FEE);
                  
                 }
              }
           }
           
         res = DoubleToString(prof,2);
         totProf+=prof;
         Print("#",i,": pair: ", arrP[i]," profit: ", res);
        }
     }
   Print("Total profit :",DoubleToString(totProf,2));
  }
//+------------------------------------------------------------------+

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

от drivermql

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

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

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