Nein, mit dem Day() geht das nicht so einfach, v.a. Nicht im Vergleich mit TimeCurrent().
Probiere einfach mal diese Variante:
Code:
double Profit()
{
double x = 0;
double summe = 0;
for (int i = OrdersHistoryTotal() - 1 ; i >= 0; i--) // "int i" wurde integriert deklariert / Zählung läuft abwärts
{
if OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
{
if(OrderSymbol() == Symbol()) // hier ggf. zusätzlich "(... && OrderTicket() == TicketNumber())"
{
if (OrderCloseTime() >= StringToTime(TimeToString(TimeCurrent(), TIME_DATE))
//oder if (OrderCloseTime() >= iTime(NULL, PERIOD_D1, 0))für den Tagesprofit
//oder if (OrderCloseTime() >= iTime(NULL, PERIOD_MN1, 0)) für den Monatsprofit
{
x = OrderProfit() + OrderSwap() + OrderCommission(); // Swap und Commission werden jetzt berücksichtigt
summe += x; // "summe" kann jetzt <= (positiv) oder < 0 (negativ) sein
}
}
}
Print("Summe=", summe); // summe = positiv/Graph-green // summe = negativ/Graph=red
}
}
//+---
void OnStart()
{
if(Profit() >= 0) // ObjectCreate in CLR green ...
if(Profit() < 0) // ObjectCreate in CLR red .....
...
}
Viel Erfolg!
traderdoc