dateime

 

Hallo,


ich habe eine Funktion um mir die Zeit des letzten Deals auszugeben.

ulong last_deal_time(const string symbol,const int magicnumber)
  {

   datetime end=TimeCurrent();                                       // current server time
   datetime start=end-PeriodSeconds(PERIOD_H1) *Hours_Order_lookback;// set the beginning time to 24 hours ago

   HistorySelect(start,end);

   int deals=HistoryDealsTotal();

   ulong deal_time=0;

   if(deals>0)
     {
      for(int i=0;i<deals;i++)
        {
         ulong deal_ticket=HistoryDealGetTicket(i);
         if(deal_ticket>0) 
           {
            string deal_symbol=HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
            long order_magic=HistoryDealGetInteger(deal_ticket,DEAL_MAGIC);

            if(order_magic==magicnumber && deal_symbol==symbol)
              {
               deal_time=(ulong)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
              }

           }
         else 
           {
            PrintFormat("We couldn't select a deal, with the index %d. Error %d",
                        i,GetLastError());
           }
        }
     }
//--- output the results of the calculations

   return((ulong)deal_time);
  }

diese bekomme ich in einem Ulong format raus, also sekunden seit dem 1.1.1970


jetzt will ich das mit 

TimeCurrent()

verknüpfen, quasi relativ einfach


ulong lastdealtime = 0;
lastdealtime = last_deal_time(_Symbol,MN);

if( (lastdealtime + Wait_after_loss*60*60)  <= TimeCurrent() ) Print("Waiting Over");


bekomme ich ein sign mismatch



das schöne an der Doku von MQL ist ja


ich gehe ja davon aus, das es sich hier um ein Problem zwischen ulong und datetime handelt, oder sehe ich das falsch?

jemand eine Idee wie ich die Werte auf datetime oder ulong normalisieren kann? Ulong wäre mir lieber


danke

amando

 

ok, das war eigentlich zu einfach

ulong lastdealtime = 0;
lastdealtime = last_deal_time(_Symbol,MN);

if( (lastdealtime + Wait_after_loss*60*60)  <= (ulong)TimeCurrent() ) Print("Waiting Over");

ist mir erst nach dem Post gekommen das zu probieren ;-)

Grund der Beschwerde: