#property indicator_chart_window
//---- input parameters

extern color  Clock_Color = Red;
extern string Corner_Placement = "1 is top right 3 is bottom right";
extern int    Corner = 3;
extern double Risk_percentage = 2.85;
extern int    NumberOfCharts = 1;


string sp_close="Spread&Bar";
string lots="Lots";
string t="Today";
string y="Yesterday";


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init(){

  ObjectCreate(sp_close, OBJ_LABEL,0, 0, 0);
  ObjectSet(sp_close, OBJPROP_CORNER, Corner);
  ObjectSet(sp_close, OBJPROP_XDISTANCE, 10);
  ObjectSet(sp_close, OBJPROP_YDISTANCE, 2);     
  
  ObjectCreate(lots, OBJ_LABEL,0, 0, 0);
  ObjectSet(lots, OBJPROP_CORNER, Corner);
  ObjectSet(lots, OBJPROP_XDISTANCE, 10);
  ObjectSet(lots, OBJPROP_YDISTANCE, 16);   
  
  ObjectCreate(y, OBJ_LABEL,0, 0, 0);
  ObjectSet(y, OBJPROP_CORNER, Corner);
  ObjectSet(y, OBJPROP_XDISTANCE, 10);
  ObjectSet(y, OBJPROP_YDISTANCE, 28);   
  
  ObjectCreate(t, OBJ_LABEL,0, 0, 0);
  ObjectSet(t, OBJPROP_CORNER, Corner);
  ObjectSet(t, OBJPROP_XDISTANCE, 10);
  ObjectSet(t, OBJPROP_YDISTANCE, 40);     

   //----
   return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit(){

  ObjectDelete(sp_close);
  ObjectDelete(lots);
  ObjectDelete(y);
  ObjectDelete(t);

  //----
  return(0);
} 

//+-------------------------------------------
int start()
{
  int m,s; 
  double open1, close1, high1, low1;
  double open, close, high, low;
  double d0, hl0, d1, hl1;
  double Prots, Lots, Lotz;
  //double freemargin;

  //------------------------------------------
  //Lot per risk percentage
  Prots=Risk_percentage/100;
  Lots=MathFloor(AccountFreeMargin()*Prots/MarketInfo(Symbol(),MODE_MARGINREQUIRED)
              /MarketInfo(Symbol(),MODE_LOTSTEP))*MarketInfo(Symbol(),MODE_LOTSTEP);
  Lotz=Lots/NumberOfCharts;
  //------------------------------------------
  //Time to bar expiry 
  m=Time[0]+Period()*60-CurTime();
  s=m%60;
  m=(m-s)/60;
  int spread=MarketInfo(Symbol(), MODE_SPREAD);

  string _sp="",_m="",_s="";
  if (spread<10) _sp="..";
  else if (spread<100) _sp=".";
  if (m<10) _m="0";
  if (s<10) _s="0";
  //------------------------------------------
  //Pips indi  
  int point_compat=1;
  if(Digits == 3 || Digits == 5) {point_compat = 10;}                      
  open1=iOpen(NULL,PERIOD_D1,1);
  close1=iClose(NULL,PERIOD_D1,1);
  high1=iHigh(NULL,PERIOD_D1,1);
  low1=iLow(NULL,PERIOD_D1,1);
  open=iOpen(NULL,PERIOD_D1,0);
  close=iClose(NULL,PERIOD_D1,0);
  high=iHigh(NULL,PERIOD_D1,0);
  low=iLow(NULL,PERIOD_D1,0);  
  //------------------------------------------
  // Yesterday Up
  if(open1<close1){ hl1=((high1-low1)/Point);
                    d1=((close1-open1)/Point); }
  // Yesterday Down
  else if(open1>close1){ hl1=((low1-high1)/Point);
                         d1=((close1-open1)/Point); }
   
  //Today Up
  if(open<close){ hl0=((high-low)/Point);
                  d0=((close-open)/Point); }
  //Today Down
  else if(open>close){ hl0=((low-high)/Point);   
                       d0=((close-open)/Point); }  
  
  
  //Draw objects
  ObjectSetText(sp_close,"Sp:"+DoubleToStr(spread,0)+_sp+"Close:"+_m+DoubleToStr(m,0)+":"+_s+DoubleToStr(s,0),10,"Courier",Clock_Color);
  ObjectSetText(lots,"L:"+DoubleToStr(Lotz,2),10,"Courier",Clock_Color);
  ObjectSetText(t,"T:"+DoubleToStr(hl0,0)+"/"+DoubleToStr(d0,0),10,"Courier",Clock_Color);
  ObjectSetText(y,"Y:"+DoubleToStr(hl1,0)+"/"+DoubleToStr(d1,0),10,"Courier",Clock_Color);

  
  return(0);
}
///////////------------------------------