Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 30.01.17
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.