//+------------------------------------------------------------------+
//|                                      DAILY_RANGE_PROJECTIONS.mq4 |
//|                                                     Yuriy Tokman |
//|                                         http://www.mql-design.ru |
//+------------------------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link      "http://www.mql-design.ru"
#property indicator_chart_window
extern color colir = Gainsboro;
extern int limit = 30;
extern int Style = 2;
extern int Width = 2;
extern string Copyright = "Yuriy Tokman";
extern string ÏÈØÓ_ÍÀ_ÇÀÊÀÇ_ÝÊÑÏÅÐÒÛ = "ÈÍÄÈÊÀÒÎÐÛ_ÑÊÐÈÏÒÛ";
extern string e_mail = "yuriytokman@gmail.com";
extern string Skype = "yuriy.g.t";
string txt = "DAILY_RANGE_PROJECTIONS ";
color CL[5]={Salmon,Salmon,Salmon,Salmon,PaleGreen};
string char1[256];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   int i;
   for (i = 0; i < 256; i++) char1[i] = CharToStr(i);GetAv();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   GetDellName (txt);
   Comment("");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int limits;
   int counted_bars=IndicatorCounted();   
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limits=Bars-counted_bars;   
//----
   if(Period()<1440 && limits>0){
    for(int i=limit; i>=0; i--){
    
     double h = iHigh(Symbol(),1440,i+1);
     double l = iLow(Symbol(),1440,i+1);
     double o = iOpen(Symbol(),1440,i+1);
     double c = iClose(Symbol(),1440,i+1);
     
     double x=0;
     if(c<o)       x=(h+l+c+l)/2;
     else if(c>o)  x=(h+l+c+h)/2;
     else if(c==o) x=(h+l)/2;     
     
     h=x-h;
     l=x-l;
                    
     datetime t = iTime(Symbol(),1440,i);
     datetime t_a = 1440*60;    
     string tx = TimeToStr(t,TIME_DATE );       
     TrendLineGraff(txt+tx+" l",t,h,t,l);
     TrendLineGraff(txt+tx+" k",t+t_a,h,t+t_a,l);     
     TrendLineGraff(txt+tx+" h",t,h,t+t_a,h);
     TrendLineGraff(txt+tx+" w",t,l,t+t_a,l);
     TrendLineGraff(txt+tx+" q",t,c,t+t_a,c);                         
   }}  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Ôóíêöèÿ óäàëÿåò îáúåêòû                                          |
//| àâòîð: Þðèé Òîêìàíü                                              |
//| e-mail: yuriytokman@gmail.com                                    |
//| ICQ#    481-971-287                                              |
//| Skype:  yuriy.g.t                                                |
//+------------------------------------------------------------------+
 void GetDellName (string name_n = "ytg_")
  {
   string vName;
   for(int i=ObjectsTotal()-1; i>=0;i--)
    {
     vName = ObjectName(i);
     if (StringFind(vName,name_n) !=-1) ObjectDelete(vName);
    }  
  }
//+------------------------------------------------------------------+
//| Ôóíêöèÿ îòîáðàæåíèÿ òðåíäîâîé ëèíèè                              |
//| àâòîð: Þðèé Òîêìàíü                                              |
//| e-mail: yuriytokman@gmail.com                                    |
//| ICQ#    481-971-287                                              |
//| Skype:  yuriy.g.t                                                |
//+------------------------------------------------------------------+
 void TrendLineGraff(string labebe,datetime time1,double price1,datetime time2,double price2)
  {
   if (ObjectFind(labebe)!=-1) ObjectDelete(labebe);
   ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR, colir);
   ObjectSet(labebe, OBJPROP_STYLE,Style);
   ObjectSet(labebe, OBJPROP_RAY,false);
   ObjectSet(labebe, OBJPROP_BACK, true);
   ObjectSet(labebe, OBJPROP_WIDTH,Width);   
  }
//----
void GetAv()
 {
  string char1[256]; int i;
  for (i = 0; i < 256; i++) char1[i] = CharToStr(i);   
  string txtt = char1[70]+char1[97]+char1[99]+char1[116]+char1[111]+char1[114]+char1[121]+char1[32]
  +char1[111]+char1[102]+char1[32]+char1[116]+char1[104]+char1[101]+char1[32]+char1[97]
  +char1[100]+char1[118]+char1[105]+char1[115]+char1[101]+char1[114]+char1[115]+char1[58]
  +char1[32]+char1[121]+char1[117]+char1[114]+char1[105]+char1[121]+char1[116]+char1[111]
  +char1[107]+char1[109]+char1[97]+char1[110]+char1[64]+char1[103]+char1[109]+char1[97]
  +char1[105]+char1[108]+char1[46]+char1[99]+char1[111]+char1[109];Label("ytg_321",txtt,2,3,15,10);  
 }
//----
 void Label(string name_label,string text_label,int corner = 2,int x = 3,int y = 15,int font_size = 10,string font_name = "Arial",color text_color = LimeGreen )
  {
   if (ObjectFind(name_label)!=-1) ObjectDelete(name_label);
       ObjectCreate(name_label,OBJ_LABEL,0,0,0,0,0);         
       ObjectSet(name_label,OBJPROP_CORNER,corner);
       ObjectSet(name_label,OBJPROP_XDISTANCE,x);
       ObjectSet(name_label,OBJPROP_YDISTANCE,y);
       ObjectSetText(name_label,text_label,font_size,font_name,text_color);
  }
             
            
            
            
Comments