//+--------------------------------------------------------------------------------  
//|"×ÀÑÈÊÈ MT4" = ïîëíûé âàðèàíò CLOCK MT4.mq4  http://codebase.mql4.com/ru/6241   
//+---------------------------------------------------------------------------------- 
#property indicator_chart_window
 //+----------------------------------------------------------------  
   extern int       N     = 3; 
   extern int      Corner = 1;      // values [0-3] - îïîðíûé óãîë
   extern int   XDistance = 3;     // x ðàññòîÿíèå îò îïîðíîãî óãëà
   extern int   YDistance = 3;     // y ðàññòîÿíèå îò îïîðíîãî óãëà
   extern bool     CLOCK  = true ; 
   extern bool     BALANS = true ; 
   extern bool      Tokyo = true ;   
   extern bool   New_York = true ; 
   extern bool    OPEN_H4 = true ;   
   extern bool Vertical_Line = true ; // false  true  
   extern color    Color1 = Blue;    // Lime öâåò ëèíèè äëÿ  Ïðèáûëè
   extern  color   Color2 = SlateGray  ; // Maroon  öâåò ëèíèè äëÿ óáûòêà
   extern int    FontSize = 8;
   extern string FontName = "Tahoma" ;  // "Arial"  
   double profit=0;  double   nPoint = 0;
 // ======================================================================================== 
  int init(){  return(0);}
 // ========================================================================================  
   int deinit(){  
   ObjectDelete("C_3");  ObjectDelete("C_31");ObjectDelete("BALANS");ObjectDelete("Tokyo"); 
   ObjectDelete("New York"); ObjectDelete("FT");  ObjectDelete("OPEN_H4"); 
   return(0); }                                        
 // ======================================================================================== 
 int start(){  double nPoint = GetPoint(Symbol());     profit=0;
       string  vt,  d, n_d, n_z , dz ; 
 // ========================================================================================
  for (int w1=0; w1<OrdersTotal(); w1++) 
  if ((OrderSelect(w1, SELECT_BY_POS, MODE_TRADES))&&  (OrderSymbol()==Symbol())&&
      (OrderType()==OP_BUY)||(OrderType()==OP_SELL))       profit+=OrderProfit() ;
  color colir ;  if(profit >0) colir = Color1 ; else colir = Color2;  
  // ========================================================================================
 if (BALANS) ObjectCreate( "BALANS", OBJ_LABEL,   0,0,0);    ObjectSet( "BALANS", OBJPROP_CORNER, 2); 
   ObjectSet( "BALANS", OBJPROP_XDISTANCE, 150);     ObjectSet( "BALANS", OBJPROP_YDISTANCE, 1);  
   ObjectSetText("BALANS",  DoubleToStr (profit / OrderLots () /MarketInfo (Symbol(), MODE_TICKVALUE) ,0) + 
   " p/" +  DoubleToStr (profit ,1)+ " $.   " + DoubleToStr (MarketInfo(Symbol(), MODE_SPREAD ),0)+"/"  +    
    DoubleToStr(MarketInfo(Symbol(), MODE_TICKVALUE),2)+" $," , FontSize, FontName, colir); 
 // ======================================================================================== 
   //-------------------------------------------------------------------------------------- 
   for (int t = 0; t <N  ; t++){   d = DoubleToStr(iHigh(NULL,0,t)/nPoint-iLow(NULL,0,t)/nPoint,0); 
  if (iClose(NULL,0,t) > iOpen(NULL,0,t))  { vt = " +" + d ; }
  if (iClose(NULL,0,t) < iOpen(NULL,0,t))  { vt = " -" + d ; }
  if (iClose(NULL,0,t) == iOpen(NULL,0,t)) { vt = " :" + d ; }    n_d = n_d+ vt; }  
     //+---------------------------------------------------------------------------------- 
   if (CLOCK)  ObjectCreate ("C_3", OBJ_LABEL, 0,0,0);  ObjectSetText("C_3", 
 //  "D/"+DoubleToStr  (iHigh(NULL,PERIOD_D1,0)/ nPoint-iLow(NULL,PERIOD_D1,0)/ nPoint,0) + ",  "+
   " " + n_d + " p. " +  "M" + Period() + "-" + (TimeCurrent()-Time[0])/60 + ":"+ (TimeCurrent()-Time[0])%60 + ", "+
  TimeToStr(TimeCurrent(), TIME_SECONDS),FontSize, FontName, colir); ObjectSet( "C_3", OBJPROP_CORNER,Corner); 
  ObjectSet("C_3",OBJPROP_XDISTANCE, XDistance);ObjectSet( "C_3", OBJPROP_YDISTANCE, YDistance);   
  ObjectSet("C_3",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1|OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1 );             
   //+-------------------------------------------------------------------------------------- 
   if (CLOCK) ObjectCreate("C_31", OBJ_LABEL, 0, 0, 0); ObjectSetText("C_31",  " " + n_d + "p,  "  +  
  TimeToStr(TimeCurrent(), TIME_SECONDS), FontSize, FontName, colir); ObjectSet("C_31",OBJPROP_CORNER, Corner); 
  ObjectSet("C_31", OBJPROP_XDISTANCE, XDistance);  ObjectSet("C_31", OBJPROP_YDISTANCE, YDistance);  
  ObjectSet("C_31",OBJPROP_TIMEFRAMES, OBJ_PERIOD_H4 |OBJ_PERIOD_D1| OBJ_PERIOD_W1 |OBJ_PERIOD_MN1 );   
 //========================================================================================  
  //Ïðîâåðêà http://time.yandex.ru/ Ïðè ïåðåõîäå íà ëåòíåå âðåìÿ äîáàâòå èëè îòíèìèòå 1 ÷àñ = 3600 ñåêóíä   
  //+------------------------------------------------------------------  
   if (Tokyo) ObjectCreate( "Tokyo", OBJ_LABEL, 0,0,0); ObjectSet( "Tokyo", OBJPROP_CORNER, 2 );
 ObjectSet( "Tokyo", OBJPROP_XDISTANCE, 2); ObjectSet( "Tokyo", OBJPROP_YDISTANCE, 2); 
 ObjectSetText("Tokyo", TimeToStr(CurTime()+28800, TIME_MINUTES), FontSize, FontName, colir);
 //+--------------------------------------------------------------------------------------- 
 if (New_York)  ObjectCreate( "New York", OBJ_LABEL, 0,0,0); ObjectSet( "New York", OBJPROP_CORNER,3);
 ObjectSet( "New York", OBJPROP_XDISTANCE, 3); ObjectSet( "New York", OBJPROP_YDISTANCE, 3); 
 ObjectSetText("New York", TimeToStr(CurTime()- 21600, TIME_MINUTES), FontSize, FontName, colir);
  //========================================================================================  
   if (Vertical_Line)  if (ObjectFind("FT")==-1){ ObjectCreate("FT",OBJ_FIBOTIMES,0,0,0,0,0);  
   ObjectSet("FT",OBJPROP_RAY,1);            ObjectSet("FT", OBJPROP_FIBOLEVELS, 6); // 4-24 
   ObjectSet("FT",OBJPROP_FIRSTLEVEL+0, 0);
   ObjectSet("FT",OBJPROP_FIRSTLEVEL+1, 1);  ObjectSet("FT", OBJPROP_FIRSTLEVEL+2, 2); 
   ObjectSet("FT",OBJPROP_FIRSTLEVEL+3, 3);  ObjectSet("FT", OBJPROP_FIRSTLEVEL+4, 4); 
   ObjectSet("FT",OBJPROP_LEVELSTYLE,2);     ObjectSet("FT",OBJPROP_LEVELCOLOR,LightSlateGray); // Gray
   ObjectSet("FT",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1|OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30);                   
 } ObjectSet("FT",OBJPROP_PRICE1,  iOpen(NULL,PERIOD_H4,0)+200000*nPoint);                          
   ObjectSet("FT",OBJPROP_TIME1,   iTime(NULL,PERIOD_H4,0));
   ObjectSet("FT",OBJPROP_PRICE2,  iOpen(NULL,PERIOD_H4,0)+200000*nPoint);                   
   ObjectSet("FT",OBJPROP_TIME2,   iTime(NULL,PERIOD_H4,0)+ 60*60); 
//=========================================================================================== 
  if (OPEN_H4)  if (ObjectFind("OPEN_H4")==-1){  ObjectCreate("OPEN_H4",OBJ_CHANNEL,0,0,0,0,0);  
  ObjectSet("OPEN_H4",OBJPROP_RAY,false);  ObjectSet("OPEN_H4",OBJPROP_STYLE,2); 
  ObjectSet("OPEN_H4",OBJPROP_COLOR,LightSlateGray);          // Gray  DarkGray 
  ObjectSet("OPEN_H4",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1|OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30 ); 
 }ObjectSet("OPEN_H4",OBJPROP_TIME1, iTime(NULL,PERIOD_H4,1));
  ObjectSet("OPEN_H4",OBJPROP_PRICE1,iOpen(NULL,PERIOD_H4,1));   
  ObjectSet("OPEN_H4",OBJPROP_TIME2, iTime(NULL,PERIOD_H4,0));
  ObjectSet("OPEN_H4",OBJPROP_PRICE2,iOpen(NULL,PERIOD_H4,1));   
  ObjectSet("OPEN_H4",OBJPROP_TIME3, iTime(NULL,PERIOD_H4,0));
  ObjectSet("OPEN_H4",OBJPROP_PRICE3,iOpen(NULL,PERIOD_H4,0)); 
  //=========================================================================================== 
    return(0);  }
  //======================================================================================== 
  double GetPoint(string vSymbol){
  int vres = StringFind(vSymbol,"JPY");
  if (vres == -1) return(0.0001); return(0.01);}  
 //========================================================================================
 //========================================================================================
             
            
            
            
Comments