Here a solution if anyone needs it. But I'm still not able to have the summary per symbol. This display the impact of each trade. Letme know if you have any idea on how instead of having results as
- EURUSD 1 EUR
- EURUSD 2 EUR
- Total: 2 EUR
I 'm missing on how to get to:
- EURUSD 2 EUR
- Total: 2 EUR
#include <Arrays\ArrayString.mqh>
string WeeklyProfit()
{
string msg_WeeklyProfit="";
int i,j,OrderCount,hstTotal=OrdersHistoryTotal();
double profit,profitb,profittotal;
string profitmsg="";
CArrayString *result = new CArrayString();
datetime starttime = iTime(Symbol(), PERIOD_W1, 0);
datetime starttime2 = TimeCurrent()-(7*60*60);
Print(starttime);
Print(starttime2);
for(i=0;i<hstTotal;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==TRUE)
{
if(OrderOpenTime() >= starttime)
{
const string symbol=OrderSymbol();
if(result.Search(symbol)!=-1)
{
Print("symbol exist");
}
else
{
result.Add(symbol);
result.Sort();
Print(symbol);
}
for(j=0;j<result.Total();j++)
{
if (OrderSymbol()==result.At(j))
{
profit+=OrderProfit()+OrderSwap()+OrderCommission();
profitmsg+=symbol+ " " + DoubleToStr(profit,2) + " " + AccountCurrency()+"\n";
}
}
OrderCount++;
profittotal+=OrderProfit()+OrderSwap()+OrderCommission();
Print("profit"+ profit);
}
}
}
msg_WeeklyProfit= profitmsg +
"\n==============\n" +
"Since " + TimeToStr(starttime,TIME_DATE) + " Total: " + DoubleToStr(profittotal,2)+ AccountCurrency()+
"\n==============\n" +
OrderCount + " Trades" + " (avg: " + DoubleToStr(profittotal/OrderCount,2) + AccountCurrency()+ ") ";
if (profittotal>=0)
{
msg_WeeklyProfit += "\n"+ EMOJI_GREENCIRCLE;
}
else
{
msg_WeeklyProfit += "\n"+EMOJI_REDCIRCLE;
};
delete result;
return(msg_WeeklyProfit);
}