double SummaryProfit()
{
double Sum = 0;
//Суммарный профит по всем открытым ордерам
for(int i=OrdersTotal()-1; i >=0 ; i--)//Только так и не иначе - пока считаем могут открыться новые ордера
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderType() < 2 && OrderSymbol() == _Symbol && OrderMagicNumber() == Magik)
Sum += OrderProfit()+ OrderSwap() - OrderCommission(); //включая своп и комиссию комиссия вычитается т.к. она всегда положительна
}
//Сумма по ордерам, закрытым сегодня:
datetime current_day=SeriesInfoInteger(_Symbol,PERIOD_D1,SERIES_LASTBAR_DATE);//время наступления этого самого "сегодня"
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
if(
OrderType() < 2 //
&& OrderOpenTime() >= current_day //время открытия ордера больше, чем "сегодня"
&& OrderSymbol() == _Symbol //По текущему символу
&& OrderMagicNumber() == Magik) //По заданному магику
Sum += OrderProfit()+ OrderSwap() + OrderCommission();
}
}
return(Sum);
}