Nicht ganz.
Code:
double x = 0;
double summe = 0;
//int Day(); // nicht eine best. Anzahl von Trades, sondern intraday-Trades
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())"
{
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(summe() >= 0) ObjectCreate in CLR green ...
if(summe() < 0) ObjectCreate in CLR red .....
//+--- Deklaration für monatliche Auswertung: "int TimeDay() { datetime } ;"
//+--- und in der "if"-Abfrage dann "if(TimeCurrent() < TimeDay())" ??? - wäre das richtig ?
Das Day() liefert Dir nur den derzeitigen Tag zurück, also heute z.B. 30.
Um prinzipiell über alle historischen Orders des Handelsinstrumentes Symbol() kannst Du den obigen Code benutzen. Aber hier werden nun alle Orders die in der Historie aufgelistet werden, untersucht.
Deshalb die Frage, wolltest Du nur die Profits zusammenaddieren die am aktuellen Tag anfallen oder über welchen anderen Zeitraum?
traderdoc