//+------------------------------------------------------------------+
//|                ATR_Value_Display_Mtf_ Multiinstance_Barshift.mq4 |
//|                                         Created By ExplosionKibo |
//+------------------------------------------------------------------+
#property copyright "Created By ExplosionKibo @ FF"
#property indicator_chart_window

enum p
{
   p0,    // Pips
   p1,    // Points
};
extern ENUM_TIMEFRAMES  TimeFrame            =  PERIOD_CURRENT;
extern int              ATRPeriod            =  13;
extern p                DisplayAtrAs;
extern double           AtrMultiplier        =  1;
extern int              BarShift             =  0;
extern string           DisplayAtrIdentifier =  "ATR1";
extern string           FontName             =  "Arial";
extern color            FontColor            =  clrDodgerBlue;
extern int              FontSize             =  10;
extern ENUM_BASE_CORNER DisplyCorner         =  CORNER_RIGHT_UPPER;
extern int              DisplayWindow        =  0;
extern int              XDISTANCE            =  5; 
extern int              YDISTANCE            =  5;

int point=10; double Pips, Points; string t, obj_atr_display;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
  int OnInit()
  {

 return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinit                   
//+------------------------------------------------------------------+
  int deinit()
  {
   for (int i = ObjectsTotal() - 1; i >= 0; i--)
   {
      obj_atr_display = ObjectName(i);
      if(
      (StringFind(obj_atr_display,DisplayAtrIdentifier,0)!=-1)&&
      (StringFind(obj_atr_display,YDISTANCE,0)!=-1)&&
      (StringFind(obj_atr_display,XDISTANCE,0)!=-1) 
        )
      ObjectDelete(obj_atr_display);
   }
  
  return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
  int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
     
   double ATR = iATR(Symbol(),TimeFrame,ATRPeriod,BarShift)*AtrMultiplier;
      
   if(DisplayAtrAs==p0) double A = Pips; else A = Points;
   
   if(Digits == 1|| Digits == 2 || Digits == 3 || Digits == 5 ) point = 10; 
   
   int D = (int) MarketInfo(Symbol(),MODE_DIGITS);
         
   if(DisplayAtrAs==p0) t= "pips";
   if(DisplayAtrAs==p1) t= "points";
   
   Points = MathAbs((NormalizeDouble(((ATR)/
   MarketInfo(Symbol(),MODE_POINT)),D)));
   
   Pips = Points/point;
   
   string atr_name = DisplayAtrIdentifier + XDISTANCE + YDISTANCE;
   obj_atr_display = atr_name;   
   
   ObjectCreate (0,obj_atr_display, OBJ_LABEL,DisplayWindow,0,0);
   ObjectSet    (obj_atr_display, OBJPROP_CORNER,DisplyCorner);
   ObjectSet    (obj_atr_display, OBJPROP_XDISTANCE,XDISTANCE);
   ObjectSet    (obj_atr_display, OBJPROP_YDISTANCE,YDISTANCE);
   ObjectSetText(obj_atr_display,"Atr"+"("+ATRPeriod+"): "+DoubleToStr(A,1)+" "+t,FontSize,FontName,FontColor); 
  
 return(rates_total);
  }
//+------------------------------------------------------------------+










































