высчитать количество часов

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Yerkin Sagandykov
481
Yerkin Sagandykov  

Всем привет !

по логике советника мне надо понять за какое кол-во  часов закрылся ордер. как высчитать ? 

если в течении одного дня то примерно как в коде, а если больше дня ордер был ?

void OnStart()

  {
//---
         
      int  dCurr = TimeHour( Time[0]);   //     D'2018.01.18 10:00:00' ;    //08:56:39' ;  
      int dOpen = TimeHour(D'2018.03.12 11:24:00') ;  
      
      int dd = dCurr - dOpen;
   
      
      Alert(dd);
  }


Taras Slobodyanik
38321
Taras Slobodyanik  
(OrderCloseTime()-OrderOpenTime()) / 60 / 60
FXwin
755
FXwin  
Erik:

по логике советника мне надо понять за какое кол-во  часов закрылся ордер. как высчитать ? 

Не проверял!!

bool op;

void start() {

  datetime tOp=0,TimeOp=0;
  for(int i=OrdersTotal()-1;i>=0;i--)
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType()<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){
  if(tOp<OrderOpenTime()) tOp=OrderOpenTime();}
//---
  datetime tCl=0;
   for(i=OrdersHistoryTotal()-1;i>=0;i--) 
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && OrderType()<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) {
   if(tCl<OrderCloseTime()) tCl=OrderCloseTime();}
//---
   int res=0;
   if(tOp!=0 && op) {TimeOp=tOp;op=false;}
   if(tOp!=0 && tOp!=TimeOp) op=true;
   if(tCl>TimeOp) res=TimeHour(tCl-TimeOp);
   Print("© Результат = ",res," ");

}//StartEND
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий