Функция для мультивалютного советника, выводящая (принтом) в конце тестирования сумму профита по каждому участвующему в торговле инструменту.
Вызов функции делать в 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));
}
//+------------------------------------------------------------------+