//+------------------------------------------------------------------+
//|                               ÄÍÅÂÍÎÉ ÊÀÍÀË GLORINIKA. 
//| Çà îñíîâó  âçÿò è äîðàáîòàí     i-DayRange.mq4    http://www.kimiv.ru 
//|      17.11.2005  Èíäèêàòîð äíåâíîãî äèàïàçîíà. Êèì Èãîðü Â. aka KimIV        
//+------------------------------------------------------------------+                                
//20090309 Nikita-Kiev 4 Glorinika http://forum.alpari-idc.ru/thread24588-297.html
  /*      Ýòîò èíäèêàòîð, ïîäàðîê   òðåéäåðó  Glorinika, â äåíü 8 Ìàðòà.
  Ñðåäè   Èíäèêàòîðîâ äíåâíîãî äèàïàçîíà,  i-DayRange.mq4 îêàçàëñÿ ëó÷øå âñåõ, 
  è ïîýòîìó áûëî ðåøåíî åãî äîðàáîòàòü, 
  èòîãå ïîëó÷èëñÿ äîâîëüíî ïðàêòè÷íûé èíäèêàòîð, ïîìîãàþùèé ðàçîáðàòüñÿ  â ñèòóàöèè  
 íà ðûíêå â òå÷åíèè äíÿ,  à òàêæå è çàðàáàòûâàòü. 
 Êàê ïîëüçîâàòüñÿ.  Ýòîò èíäèêàòîð ýôôåêòèâíî íà÷èíàåò ðàáîòàòü ñ îòêðûòèåì åâðîïåéñêîé ñåññèè. 
 Ïðèìåíÿåòñÿ íà ìàëûõ òàéì ôðåéìàõ, íà÷èíàÿ îò 1 ìèí è âûøå. Ïðåäíàçíà÷åí äëÿ ïèïñîâêè, 
 èëè îïðåäåëåíèÿ ÷åòêîé òî÷êè âõîäà â ðûíîê. Ââåðõó ãðàôèêà â êîììåíòàðèÿõ 
 íàõîäèòñÿ íåîáõîäèìàÿ äëÿ àíàëèçà èíôîðìàöèÿ.  Ñïðåä = â íåêîòîðûõ ÄÖ, èíîãäà èçìåíÿåòñÿ 
 (íåîáõîäèìî êîíòðîëèðîâàòü), Êàíàë = äèàïàçîí äíåâíîãî êàíàëà â ïóíêòàõ. 
 Ñëåäóþùèå òðè öèôðû, äèàïàçîí ïîñëåäíèõ òðåõ ñâå÷åé, ñ ïëþñîì - ââåðõ, ñ ìèíóñîì âíèç, 
 äâîåòî÷èå : îòêðûòèå ðàâíî çàêðûòèþ.
 Äàëüøå, êàê ïðèìåð: 1/8 = 22 . 1/8 = ýòî äèàïàçîí â ïóíêòàõ, êàæäîãî èç 8  äåëåíèé Ôèáî. 
 Òî åñòü, âåñü äíåâíîé äèàïàçîí  äåëèòñÿ íà 8, è òîãäà äèàïàçîí 
 ìåæäó 62% è 50% áóäåò ðàâåí 1/8 , èëè = 22 ïóíêòà. 
 Ñî âðåìåíåì ìîæíî ðàçîáðàòüñÿ, ñ èñïîëüçîâàíèåì ýòèõ êîììåíòàðèåâ.
 Ñâåðõó è ñíèçó äíåâíîãî êàíàëà = Ôèáî, ñòîÿò öèôðû ïîêàçûâàþùèå â ïóíêòàõ 
 ðàññòîÿíèå îò öåíû äî Õàÿ èëè Ëîó,  äíåâíîãî äèàïàçîíà.  
 Êàê ïîëüçîâàòüñÿ Ôèáî, ïðè îòêàòå â 12,5 è 25, èëè 38%% (â çàâèñèìîñòè îò ñèòóàöèè íà ðûíêå!!!), 
 ñòàíîâèìñÿ â ïîçèöèþ  ïî íàïðàâëåíèþ äâèæåíèÿ, = (äîï. âàæíîå óñëîâèå,=òîëüêî ïðè äèàïàçîíå êàíàëà 
 áîëüøå 80-100 ïóíêòîâ, âîîáùå äëÿ êàæäîé âàëþòû, äèàïàçîí = äûõàíèå âàëþòû = îïðåäåëÿåòñÿ ïåðñîíàëüíî). 
  Êðàñíûå è ñèíèå ëèíèè íà ãðàôèêå ïîêàçûâàþò óðîâíè ïîääåðæêè è ñîïðîòèâëåíèÿ, íà äàííûé ìîìåíò. 
 Ïðè íàâåäåíèè íà íèõ  êóðñîðîì, ïîêàçûâàþòñÿ èõ íàçâàíèå. Àëåðò, åñëè èñïîëüçîâàòü ïî óìîë÷àíèþ = íîëü,
  (ëó÷øèé âàðèàíò) è íà íåñêîëüêèõ âàëþòàõ îäíîâðåìåííî,òî íàäîåäëèâîå è ÷àñòîå ïèùàíèå ãîâîðèò, ÷òî 
  íà÷àëîñü äâèæåíèå èëè òðåíä. 
 Òèøèíà ãîâîðèò, ÷òî ïðîèñõîäèò îòêàò èëè ôëåò. Âåðòèêàëüíûå ëèíèè  = ïîêàçûâàþò î 
 ïðèáëèæåíèè îêîí÷àíèÿ 4-÷àñîâîê, èëè ÷àñîâîê
 òîæå î÷åíü âàæíûé ìîìåíò â àíàëèçå. Âðîäå âñå. Íó, è åùå, ýòîò èíäþê èíîãäà íåîáõîäèìî ïåðåêëþ÷àòü 
 ñ îäíîãî òàéìôðåéìà íà äðóãîé.
 (è èíîãäà (ëó÷øå ïî÷àøå) ïðîñìàòðèâàòü íà ëèíåéíûõ ãðàôèêàõ).  Âðîäå âñå. ÓÑÏÅÕÎÂ.           
 */       
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 SteelBlue
#property indicator_color2 SteelBlue
#property indicator_color3 LightSlateGray
#property indicator_color4 DarkGray 
#property indicator_color5 DarkGray
#property indicator_color6 DarkGray
#property indicator_color7 DarkGray
#property indicator_color8 DarkGray 
//------- Îáíîâëåíèå  èíäèêàòîðà ïðîèñõîäèò êàæäûé òèê  -------------------------------
  int ind_shift = 4; 
  int   Range_N_bars = 2; 
 extern  int   NumberOfDays = 1;      // Êîëè÷åñòâî äíåé (0-âñå)
 extern int   MaxRange     = 500;    // Ìàêñèìàëüíûé äèàïàçîí êàíàëà
 extern string  Alert_Line = " if set -1, will shut up ";//"Åñëè âûñòàâèòü -1 ïèùàòü íå áóäåò";// 
 extern int   Alert_HighLine=0;
 extern int   Alert_LowLine=0;
  extern bool   PopupON  = false ; // true  false 
  extern bool   scalp  = false; // true  false 
      bool  ShowContinue = True;   // Ïîêàçûâàòü ïðîäîëæåíèå ëèíèé  True  false
      bool  ShowPrice    = false;   // Ïîêàçûâàòü öåíîâûå óðîâíè
      color  clFont       = Green;  // Öâåò øðèôòà
      int    SizeFont     = 8;      // Ðàçìåð øðèôòà
      int    OffSet       = 10;     // Ñìåùåíèå  //extern
 string AlertSound="alert.wav"; 
 // extern bool  EmailON=false;
 double nPoint = 0;
 double shifthigh[], shiftlow[];
 double Line1[], Line2[], Line3[], Line4[],Line5[],Line6[];  
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init() {
  SetIndexBuffer   (0, shifthigh);SetIndexDrawBegin(0, 0);
  SetIndexLabel    (0, "Up Channel"); SetIndexStyle    (0, DRAW_LINE,2,0); 
//+---------
  SetIndexBuffer   (1, shiftlow); SetIndexDrawBegin(1, 0);
  SetIndexLabel    (1, "Down Channel"); SetIndexStyle    (1, DRAW_LINE,2,0); 
//+---------
 SetIndexStyle(2,DRAW_LINE,2,0);  SetIndexBuffer(2,Line1);
 SetIndexLabel(2,"  12_percent     ");SetIndexDrawBegin(2,0);
  //+---------
 SetIndexStyle(3,DRAW_LINE,2,0);SetIndexBuffer(3,Line2);
 SetIndexLabel(3,"  25_percent   ");SetIndexDrawBegin(3,0);
  //+---------
 SetIndexStyle(4,DRAW_LINE,2,0);SetIndexBuffer(4,Line3);
 SetIndexLabel(4," 38_percent  ");SetIndexDrawBegin(4,0);
  //+---------
 SetIndexStyle(5,DRAW_LINE,2,0);SetIndexBuffer(5,Line4);
 SetIndexLabel(5," 62_percent  ");SetIndexDrawBegin(5,0);
  //+---------
 SetIndexStyle(6,DRAW_LINE,2,0);SetIndexBuffer(6,Line5);
 SetIndexLabel(6,"  75_percent   ");SetIndexDrawBegin(6,0);
   //+---------
 SetIndexStyle(7,DRAW_LINE,2,0);SetIndexBuffer(7,Line6);
  SetIndexLabel(7,"     12_percent     ");SetIndexDrawBegin(7,0);
   return(0); 
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
  void deinit() {
               ObjectsDeleteAll();    Comment("");
}
//+------------------------------------------------------------------+ 
  int start(){
  datetime dt=CurTime();
   datetime  t01 = iTime(NULL,0,0), t1 = iTime(NULL,0,1); 
   double dH,d2,dH2,dL2; 
  double   HighLine=0, LowLine=0,AverLine1=0,AverLine2=0;
  double    AverLine3=0,AverLine4=0,AverLine5=0,AverLine6=0;
     nPoint = GetPoint(Symbol());
  int      i, j, kb;
  for (i=NumberBar(); i>=0; i--) {
    if (TimeHour(Time[i])==0 && TimeMinute(Time[i])==0) {
      HighLine=iHigh(Symbol(),0,i);
      LowLine=iLow(Symbol(),0,i);
    } else {
      if (MaxRange<=0 || MaxRange*nPoint>HighLine-LowLine) {
        if (iHigh(NULL,0,i)>HighLine) HighLine=iHigh(NULL,0,i);
        if (iLow(NULL,0,i)<LowLine) LowLine=iLow(NULL,0,i);
      }
    }
    AverLine1=LowLine+(HighLine-LowLine)*12/100; 
    AverLine2=LowLine+(HighLine-LowLine)*25/100; 
    AverLine3=LowLine+(HighLine-LowLine)*38/100; 
    AverLine4=LowLine+(HighLine-LowLine)*62/100; 
    AverLine5=LowLine+(HighLine-LowLine)*75/100; 
    AverLine6=LowLine + (HighLine-LowLine)*88/100;  
   //+---------  
    kb=(StrToTime(TimeToStr(Time[0], TIME_DATE)+" 23:59")-Time[0])/Period()/60;
    if (i==0 && ShowContinue) {
      SetIndexShift(0, kb);   SetIndexShift(1, kb);
      SetIndexShift(2, kb);   SetIndexShift(3, kb);
      SetIndexShift(4, kb);   SetIndexShift(5, kb);
      SetIndexShift(6, kb);   SetIndexShift(7, kb);
     //+---------   
      for (j=kb; j>=0; j--) {
     shifthigh[j]=HighLine;  shiftlow [j]=LowLine;
     Line1[j]=AverLine1;     Line2[j]=AverLine2;
     Line3[j]=AverLine3;     Line4[j]=AverLine4;
     Line5[j]=AverLine5;     Line6[j]=AverLine6;
      }
    }
    shifthigh[i+kb]=HighLine;    shiftlow [i+kb]=LowLine;
     Line1[i+kb]=AverLine1;      Line2[i+kb]=AverLine2;
     Line3[i+kb]=AverLine3;      Line4[i+kb]=AverLine4;
     Line5[i+kb]=AverLine5;      Line6[i+kb]=AverLine6;
  //+---------   
    if (i==0 && ShowPrice) {
      DrawPrices(dt, "Price", HighLine, LowLine);
   }  
  } 
   //+--------- Äîáàâëåí èíäèêàòîð, Äèàïàçîí ïîñëåäíèõ áàðîâ ------------------- 
   string name, value,Fibo,Fibo1, data; 
 for (int ii = Range_N_bars; ii >= 0; ii--){ 
 data = DoubleToStr(High[ii]/nPoint-Low[ii]/nPoint,0); 
 if (Close[ii] > Open[ii]) 
 { value = " +" + data; 
 } if (Close[ii] < Open[ii])
 {  value = " -" + data; 
 }if (Close[ii] == Open[ii])
 { value =  " :" + data;}  
   name = name + value; 
    Fibo1 = DoubleToStr((HighLine-LowLine)/8/nPoint,0);
      Fibo = DoubleToStr((HighLine-LowLine)/nPoint,0); 
  Comment(   "                                               Spread  =  ", (Ask-Bid)/nPoint,",    Channel  = " ,Fibo +" p,  ", name +" p,   1/8 ( or 0.125)  =  " ,Fibo1 +" p.");     
   }
  //+--------------------------------------------------------------------------------------- 
    if(ObjectFind("Fibo22")<0) 
    ObjectCreate("Fibo22",OBJ_FIBO,0,Time[0],Low[0],Time[0],High[0]);
    ObjectSet("Fibo22",OBJPROP_PRICE1,LowLine); 
    ObjectSet("Fibo22",OBJPROP_TIME1,iTime(NULL,PERIOD_M5,1)); 
    ObjectSet("Fibo22",OBJPROP_PRICE2,HighLine);
    ObjectSet("Fibo22",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1)+600000000);  
    ObjectSet("Fibo22", OBJPROP_COLOR,DarkGray );   // 
    ObjectSet("Fibo22",OBJPROP_RAY,0); 
    ObjectSet("Fibo22",OBJPROP_STYLE,2);  
                  ObjectSet("Fibo22", OBJPROP_FIBOLEVELS, 9);//FIRSTLEVEL ìîæíî äîáàâëÿòü äî 22 øòóê ïî îáðàçöó 
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+0, 0); 
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+1, 0.875);
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+2, 0.75);
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+3, 0.62);  
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+4, 0.5);
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+5, 0.38);   
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+6, 0.25); 
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+7, 0.125); 
                  ObjectSet("Fibo22", OBJPROP_FIRSTLEVEL+8, 1.0); 
                   //+---        
                   ObjectSetFiboDescription("Fibo22",0,"%$"); 
                  ObjectSetFiboDescription("Fibo22",1,"0.125"); 
                  ObjectSetFiboDescription("Fibo22",2,"0.25"); 
                  ObjectSetFiboDescription("Fibo22",3,"0.38");    
                  ObjectSetFiboDescription("Fibo22",4,"0.50");
                  ObjectSetFiboDescription("Fibo22",5,"0.62");   
                  ObjectSetFiboDescription("Fibo22",6,"0.75"); 
                  ObjectSetFiboDescription("Fibo22",7,"0.125"); 
                  ObjectSetFiboDescription("Fibo22",8,"%$"); 
                  ObjectSetFiboDescription("Fibo22",9,"1.12"); 
                  ObjectSetFiboDescription("Fibo22",10,"1.12"); 
                  ObjectSetFiboDescription("Fibo22",11,"1.25"); 
                  ObjectSetFiboDescription("Fibo22",12,"1.25"); 
                  ObjectSet("Fibo22",OBJPROP_LEVELCOLOR,DarkGray); 
                  ObjectSet("Fibo22",OBJPROP_LEVELSTYLE,2); 
   //+---  
 if (ObjectFind("Today\'s Open")==-1){ 
  ObjectCreate("Today\'s Open",OBJ_TREND,0,0,0,0); 
  ObjectSet("Today\'s Open",OBJPROP_RAY,false); 
  ObjectSet("Today\'s Open",OBJPROP_STYLE,3); //0 1 2 3 4 
  ObjectSet("Today\'s Open",OBJPROP_COLOR,Blue); 
 }ObjectSet("Today\'s Open",OBJPROP_PRICE1, iOpen(NULL,PERIOD_D1,0));
  ObjectSet("Today\'s Open",OBJPROP_TIME1,iTime(NULL,PERIOD_D1,0));
  ObjectSet("Today\'s Open",OBJPROP_PRICE2,iOpen(NULL,PERIOD_D1,0));  
  ObjectSet("Today\'s Open",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
    //+---  
   if (ObjectFind("Expected Today\'s Close")==-1){ 
      ObjectCreate("Expected Today\'s Close",OBJ_ARROW,0,0,0,0,0); 
    ObjectSet("Expected Today\'s Close",OBJPROP_ARROWCODE,6); 
  ObjectSet("Expected Today\'s Close",OBJPROP_COLOR,Magenta); 
  } ObjectSet("Expected Today\'s Close",OBJPROP_PRICE1, iClose(NULL,PERIOD_D1,1)+ (iClose(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,2))); 
      ObjectSet("Expected Today\'s  Close",OBJPROP_TIME1,iTime(NULL,PERIOD_D1,0)+86200); 
  //+---  
  if (ObjectFind("Week Open")==-1){ 
  ObjectCreate("Week Open",OBJ_TREND,0,0,0,0); 
  ObjectSet("Week Open",OBJPROP_RAY,True); //false False True
  ObjectSet("Week Open",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("Week Open",OBJPROP_COLOR,Blue); 
 }ObjectSet("Week Open",OBJPROP_PRICE1, iOpen(NULL,PERIOD_W1,0));
  ObjectSet("Week Open",OBJPROP_TIME1,iTime(NULL,PERIOD_W1,0));
  ObjectSet("Week Open",OBJPROP_PRICE2,iOpen(NULL,PERIOD_W1,0));  
  ObjectSet("Week Open",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1)); 
    //+--        
 if (ObjectFind("Yesterday\'s Low")==-1){ 
  ObjectCreate("Yesterday\'s Low",OBJ_TREND,0,0,0,0); 
  ObjectSet("Yesterday\'s Low",OBJPROP_RAY,false); 
  ObjectSet("Yesterday\'s Low",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("Yesterday\'s Low",OBJPROP_COLOR,Blue); 
 }ObjectSet("Yesterday\'s Low",OBJPROP_PRICE1, iLow(NULL,PERIOD_D1,1));  
  ObjectSet("Yesterday\'s Low",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
  ObjectSet("Yesterday\'s Low",OBJPROP_PRICE2,iLow(NULL,PERIOD_D1,1));  
  ObjectSet("Yesterday\'s Low",OBJPROP_TIME2,t01+(t01-t1)*ind_shift); 
  //+-- 
   if (ObjectFind("Yesterday\'s High")==-1){ 
   ObjectCreate("Yesterday\'s High",OBJ_TREND,0,0,0,0); 
   ObjectSet("Yesterday\'s High",OBJPROP_RAY,false); 
      ObjectSet("Yesterday\'s High",OBJPROP_STYLE,2); //0 1 2 3 4 
      ObjectSet("Yesterday\'s High",OBJPROP_COLOR,Red); 
   }  ObjectSet("Yesterday\'s High",OBJPROP_PRICE1, iHigh(NULL,PERIOD_D1,1));  
      ObjectSet("Yesterday\'s High",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
      ObjectSet("Yesterday\'s High",OBJPROP_PRICE2,iHigh(NULL,PERIOD_D1,1)); 
      ObjectSet("Yesterday\'s High",OBJPROP_TIME2,t01+(t01-t1)*ind_shift); 
   //+---     
        if   (ObjectFind("Yesterday\'s_High")==-1){ 
      ObjectCreate("Yesterday\'s_High",OBJ_ARROW,0,0,0,0,0); 
    ObjectSet("Yesterday\'s_High",OBJPROP_ARROWCODE,6); 
        ObjectSet("Yesterday\'s_High",OBJPROP_COLOR,Red);
            ObjectSet("Yesterday\'s_High",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); //  |OBJ_PERIOD_H4 
    }    ObjectSet("Yesterday\'s_High",OBJPROP_PRICE1,dH2); 
        ObjectSet("Yesterday\'s_High",OBJPROP_TIME1,t01+(t01-t1)*ind_shift); 
 //+---
    if   (ObjectFind("Yesterday\'s_Low")==-1){ 
      ObjectCreate("Yesterday\'s_Low",OBJ_ARROW,0,0,0,0,0); 
    ObjectSet("Yesterday\'s_Low",OBJPROP_ARROWCODE,6); 
        ObjectSet("Yesterday\'s_Low",OBJPROP_COLOR,Blue);
  ObjectSet("Yesterday\'s_Low",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); //  |OBJ_PERIOD_H4   
    }    ObjectSet("Yesterday\'s_Low",OBJPROP_PRICE1,dL2); 
        ObjectSet("Yesterday\'s_Low",OBJPROP_TIME1,t01+(t01-t1)*ind_shift);  
 //+---
           if   (ObjectFind("Last_Wek\'s_Low")==-1){ 
      ObjectCreate("Last_Wek\'s_Low",OBJ_ARROW,0,0,0,0,0); 
    ObjectSet("Last_Wek\'s_Low",OBJPROP_ARROWCODE,6); 
        ObjectSet("Last_Wek\'s_Low",OBJPROP_COLOR,Blue);
     ObjectSet("Last_Wek\'s_Low",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); //  |OBJ_PERIOD_H4     
    }    ObjectSet("Last_Wek\'s_Low",OBJPROP_PRICE1,iLow(NULL, PERIOD_W1, 1)); 
        ObjectSet("Last_Wek\'s_Low",OBJPROP_TIME1,t01+(t01-t1)*ind_shift); 
 //+---        
           if   (ObjectFind("Last_Wek\'s_High")==-1){ 
      ObjectCreate("Last_Wek\'s_High",OBJ_ARROW,0,0,0,0,0); 
    ObjectSet("Last_Wek\'s_High",OBJPROP_ARROWCODE,6); 
        ObjectSet("Last_Wek\'s_High",OBJPROP_COLOR,Magenta);
          ObjectSet("Last_Wek\'s_High",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M5|OBJ_PERIOD_M15|OBJ_PERIOD_M30|OBJ_PERIOD_H1); //  |OBJ_PERIOD_H4    
    }    ObjectSet("Last_Wek\'s_High",OBJPROP_PRICE1,iHigh(NULL, PERIOD_W1, 1)); 
        ObjectSet("Last_Wek\'s_High",OBJPROP_TIME1,t01+(t01-t1)*ind_shift); 
 //+--- 
   if (ObjectFind("Expected  Close, Weekly")==-1){ 
     ObjectCreate("Expected  Close, Weekly",OBJ_ARROW,0,0,0,0); 
        ObjectSet("Expected  Close, Weekly",OBJPROP_ARROWCODE,115); // 167 159 115 4 5 
        ObjectSet("Expected  Close, Weekly",OBJPROP_WIDTH ,1); //0,1,2,3  
        ObjectSet("Expected  Close, Weekly",OBJPROP_COLOR,Magenta); 
      } ObjectSet("Expected  Close, Weekly",OBJPROP_PRICE1, iClose(NULL,PERIOD_W1,1)+ (iClose(NULL,PERIOD_W1,1)-iClose(NULL,PERIOD_W1,2))); 
        ObjectSet("Expected  Close, Weekly",OBJPROP_TIME1,iTime(NULL,PERIOD_W1,0)+(iTime(NULL,PERIOD_W1,0)-iTime(NULL,PERIOD_W1,1))); 
 //+--       
   if (ObjectFind("High 2 days ago")==-1){ 
   ObjectCreate("High 2 days ago",OBJ_TREND,0,0,0,0); 
   ObjectSet("High 2 days ago",OBJPROP_RAY,false); 
      ObjectSet("High 2 days ago",OBJPROP_STYLE,2); //0 1 2 3 4 
      ObjectSet("High 2 days ago",OBJPROP_COLOR,FireBrick); 
   }  ObjectSet("High 2 days ago",OBJPROP_PRICE1, iHigh(NULL,PERIOD_D1,2));  
      ObjectSet("High 2 days ago",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
      ObjectSet("High 2 days ago",OBJPROP_PRICE2,iHigh(NULL,PERIOD_D1,2)); 
      ObjectSet("High 2 days ago",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
  //+---      
    if (ObjectFind("Low 2 days ago")==-1){ 
  ObjectCreate("Low 2 days ago",OBJ_TREND,0,0,0,0); 
  ObjectSet("Low 2 days ago",OBJPROP_RAY,false); 
  ObjectSet("Low 2 days ago",OBJPROP_STYLE,2); //0 1 2 3 4 
  ObjectSet("Low 2 days ago",OBJPROP_COLOR,MediumBlue); 
 }ObjectSet("Low 2 days ago",OBJPROP_PRICE1, iLow(NULL,PERIOD_D1,2));  
  ObjectSet("Low 2 days ago",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));
  ObjectSet("Low 2 days ago",OBJPROP_PRICE2,iLow(NULL,PERIOD_D1,2));  
  ObjectSet("Low 2 days ago",OBJPROP_TIME2,iTime(NULL,PERIOD_M5,1));
  //+-- 
     if (ObjectFind("Next H1 Period Line")==-1){ 
     ObjectCreate("Next H1 Period Line",OBJ_VLINE,0,0,0);  
     ObjectSet("Next H1 Period Line",OBJPROP_COLOR,DarkSlateBlue); 
     ObjectSet("Next H1 Period Line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5 ); // | OBJ_PERIOD_M15 
     ObjectSet("Next H1 Period Line",OBJPROP_STYLE,2); //0 1 2 3 4 
     ObjectSet("Next H1 Period Line",OBJPROP_BACK,true);// true  false         
   } ObjectSet("Next H1 Period Line",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,0)+3600); 
     ObjectSet("Next H1 Period Line",OBJPROP_PRICE1, 0);            
 //+------------------------------------------------------------------+ 
   if (ObjectFind("H4 Period Line")==-1){ 
   ObjectCreate("H4 Period Line",OBJ_VLINE,0,0,0);  
   ObjectSet("H4 Period Line",OBJPROP_COLOR,SlateBlue); 
   ObjectSet("H4 Period Line",OBJPROP_STYLE,2); //0 1 2 3 4 
   ObjectSet("H4 Period Line",OBJPROP_BACK,true);// true  false 
 } ObjectSet("H4 Period Line",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,0)); 
   ObjectSet("H4 Period Line",OBJPROP_PRICE1, 0);  
 //+---   
   if (ObjectFind("Next H4 Period")==-1){ 
   ObjectCreate("Next H4 Period",OBJ_VLINE,0,0,0);  
   ObjectSet("Next H4 Period",OBJPROP_COLOR,SlateBlue); 
   ObjectSet("Next H4 Period",OBJPROP_STYLE,2); //0 1 2 3 4 
   ObjectSet("Next H4 Period",OBJPROP_BACK,true);// true  false 
 } ObjectSet("Next H4 Period",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,0)+14400); 
   ObjectSet("Next H4 Period",OBJPROP_PRICE1, 0);  
 //+---  
     if (ObjectFind("H2 Period Line")==-1){ 
     ObjectCreate("H2 Period Line",OBJ_VLINE,0,0,0);  
     ObjectSet("H2 Period Line",OBJPROP_COLOR,DarkSlateBlue); 
     ObjectSet("H2 Period Line",OBJPROP_TIMEFRAMES,OBJ_PERIOD_M1 |OBJ_PERIOD_M5 | OBJ_PERIOD_M15 |OBJ_PERIOD_M30 );  
     ObjectSet("H2 Period Line",OBJPROP_STYLE,2); //0 1 2 3 4 
     ObjectSet("H2 Period Line",OBJPROP_BACK,true);// true  false         
   } ObjectSet("H2 Period Line",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,0)+7200); 
     ObjectSet("H2 Period Line",OBJPROP_PRICE1, 0);            
 //+------------------------------------------------------------------+ 
  if  (scalp )   if (ObjectFind("STOPLEVEL by High + Spread")==-1){ 
      ObjectCreate("STOPLEVEL by High + Spread",OBJ_ARROW,0,0,0,0); 
        ObjectSet("STOPLEVEL by High + Spread",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
       ObjectSet("STOPLEVEL by High + Spread",OBJPROP_COLOR,Blue); 
    }  ObjectSet("STOPLEVEL by High + Spread",OBJPROP_PRICE1,Ask+MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
       ObjectSet("STOPLEVEL by High + Spread",OBJPROP_TIME1,Time[0]);
   //+-- 
  if  (scalp )  if (ObjectFind("STOPLEVEL by High")==-1){ 
      ObjectCreate("STOPLEVEL by High",OBJ_ARROW,0,0,0,0); 
        ObjectSet("STOPLEVEL by High",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
       ObjectSet("STOPLEVEL by High",OBJPROP_COLOR,Blue); 
    }  ObjectSet("STOPLEVEL by High",OBJPROP_PRICE1,Bid+MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
       ObjectSet("STOPLEVEL by High",OBJPROP_TIME1,Time[0]);
   //+--           
 if  (scalp ) if (ObjectFind("STOPLEVEL by Low")==-1){ 
      ObjectCreate("STOPLEVEL by Low",OBJ_ARROW,0,0,0,0); 
        ObjectSet("STOPLEVEL by Low",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
      ObjectSet("STOPLEVEL by Low",OBJPROP_COLOR,Blue); 
    } ObjectSet("STOPLEVEL by Low",OBJPROP_PRICE1,Bid-MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
      ObjectSet("STOPLEVEL by Low",OBJPROP_TIME1,Time[0]); 
    //+--          
 if  (scalp ) if (ObjectFind("STOPLEVEL by Low + Spread")==-1){ 
      ObjectCreate("STOPLEVEL by Low + Spread",OBJ_ARROW,0,0,0,0); 
        ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_ARROWCODE,4); // 167 159 115 4 5 170
      ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_COLOR,Blue); 
    } ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_PRICE1,Bid-(Ask-Bid)-MarketInfo(Symbol(),MODE_STOPLEVEL)*nPoint);
      ObjectSet("STOPLEVEL by Low + Spread",OBJPROP_TIME1,Time[0]); 
    //+-- 
        if (ObjectFind("Channel 11")==-1){ ObjectCreate("Channel 11", OBJ_CHANNEL, 0, 0,0, 0, 0);  
  } ObjectSet("Channel 11",OBJPROP_TIME1,Time[1]);  ObjectSet("Channel 11",OBJPROP_PRICE1,HighLine);            
   ObjectSet("Channel 11",OBJPROP_TIME2,Time[0]);  ObjectSet("Channel 11",OBJPROP_PRICE2,HighLine);  
     ObjectSet("Channel 11",OBJPROP_TIME3,Time[0]);  ObjectSet("Channel 11",OBJPROP_PRICE3,HighLine);        
   ObjectSet("Channel 11", OBJPROP_COLOR, SlateGray);   ObjectSet("Channel 11",OBJPROP_RAY,0);    
  //+--------- 
        if    (ObjectFind("HighLine")==-1){ ObjectCreate("HighLine",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("HighLine",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("Channel "+11,0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("HighLine",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Channel "+11,0),Digits)+5*nPoint); 
             ObjectSet("HighLine",OBJPROP_TIME1,Time[0]) ;    
   //---------  
      double val1=ObjectGetValueByShift("Channel 11", 0); 
     if (Bid-Alert_HighLine*nPoint <= val1 && Bid+Alert_HighLine*nPoint >= val1) 
     {    PlaySound (AlertSound); 
         if (PopupON) Alert (Symbol()," price within ",Alert_HighLine," pips of ","Channel 11"); 
        // if (EmailON) SendMail(Symbol()+" ",Alert_HighLine+" pips from "+"Channel 11");  
      }          
 //+-----------------------------------------------------------------------------------------------          
        if (ObjectFind("Channel 111")==-1){ ObjectCreate("Channel 111", OBJ_CHANNEL, 0, 0,0, 0, 0);  
  } ObjectSet("Channel 111",OBJPROP_TIME1,Time[1]);  ObjectSet("Channel 111",OBJPROP_PRICE1,LowLine);            
   ObjectSet("Channel 111",OBJPROP_TIME2,Time[0]);  ObjectSet("Channel 111",OBJPROP_PRICE2,LowLine);  
     ObjectSet("Channel 111",OBJPROP_TIME3,Time[0]);  ObjectSet("Channel 111",OBJPROP_PRICE3,LowLine);        
   ObjectSet("Channel 111", OBJPROP_COLOR, SlateGray);   ObjectSet("Channel 111",OBJPROP_RAY,0);    
  //+--------- 
         if    (ObjectFind("LowLine")==-1){ ObjectCreate("LowLine",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("LowLine",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("Channel "+111,0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("LowLine",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Channel "+111,0),Digits)-2*nPoint);  
             ObjectSet("LowLine",OBJPROP_TIME1,Time[0]) ;  
 //+-------  
      double val2=ObjectGetValueByShift("Channel 111", 0); 
     if (Bid-Alert_LowLine*nPoint <= val2 && Bid+Alert_LowLine*nPoint >= val2) 
     {     PlaySound (AlertSound); 
    if (PopupON) Alert (Symbol()," price within ",Alert_LowLine," pips of ","Channel 111"); 
    //if (EmailON) SendMail(Symbol()+" ",Alert_LowLine+" pips from "+"Channel 111");  
      }         
       //+-----------------------------------------------------------------------------------------------  
   if (ObjectFind("Last_Week\'s_High")==-1){ ObjectCreate("Last_Week\'s_High", OBJ_TREND,0,0,0,0); 
  } ObjectSet("Last_Week\'s_High",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));  ObjectSet("Last_Week\'s_High",OBJPROP_PRICE1,iHigh(NULL,PERIOD_W1,1));            
   ObjectSet("Last_Week\'s_High",OBJPROP_TIME2,t01+(t01-t1)*3);   ObjectSet("Last_Week\'s_High",OBJPROP_PRICE2,iHigh(NULL,PERIOD_W1,1));  
   ObjectSet("Last_Week\'s_High", OBJPROP_COLOR, Magenta);   ObjectSet("Last_Week\'s_High",OBJPROP_RAY,0); 
   ObjectSet("Last_Week\'s_High",OBJPROP_STYLE,2); //0 1 2 3 4   
  //+--------- 
         if    (ObjectFind("Distance from Price to Last Week\'s High")==-1){ ObjectCreate("Distance from Price to Last Week\'s High",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("Distance from Price to Last Week\'s High",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("Last_Week\'s_High",0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("Distance from Price to Last Week\'s High",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Last_Week\'s_High",0),Digits)+5*nPoint);  
             ObjectSet("Distance from Price to Last Week\'s High",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,1)); 
             ObjectSet("Distance from Price to Last Week\'s High", OBJPROP_COLOR, Magenta);
 //+-------        
        if (ObjectFind("Last Week\'s_Low")==-1){ ObjectCreate("Last Week\'s_Low", OBJ_TREND,0,0,0,0); 
  } ObjectSet("Last Week\'s_Low",OBJPROP_TIME1,iTime(NULL,PERIOD_H4,1));  ObjectSet("Last Week\'s_Low",OBJPROP_PRICE1,iLow(NULL,PERIOD_W1,1));            
   ObjectSet("Last Week\'s_Low",OBJPROP_TIME2,t01+(t01-t1)*3);   ObjectSet("Last Week\'s_Low",OBJPROP_PRICE2,iLow(NULL,PERIOD_W1,1));  
   ObjectSet("Last Week\'s_Low", OBJPROP_COLOR, Blue);   ObjectSet("Last Week\'s_Low",OBJPROP_RAY,0); 
    ObjectSet("Last Week\'s_Low",OBJPROP_STYLE,2); //0 1 2 3 4     
  //+--------- 
         if    (ObjectFind("Distance from Price to Last Week\'s Low")==-1){ ObjectCreate("Distance from Price to Last Week\'s Low",OBJ_TEXT, 0, 0, 0); 
   } ObjectSetText("Distance from Price to Last Week\'s Low",DoubleToStr(MathAbs((NormalizeDouble(Bid,Digits)-NormalizeDouble 
   (ObjectGetValueByShift("Last Week\'s_Low",0),Digits))*MathPow(10,Digits)),0),7,"Arial",SlateGray); 
     ObjectSet("Distance from Price to Last Week\'s Low",OBJPROP_PRICE1,NormalizeDouble(ObjectGetValueByShift("Last Week\'s_Low",0),Digits)-2*nPoint);  
             ObjectSet("Distance from Price to Last Week\'s Low",OBJPROP_TIME1,iTime(NULL,PERIOD_H1,1));// t01+(t01-t1)*1); 
             ObjectSet("Distance from Price to Last Week\'s Low", OBJPROP_COLOR, Blue); 
    }
 //+-------------------------------------------------------------------------------------------------  
//+------------------------------------------------------------------+
//| Ïðîðèñîâêà öåíîâûõ ìåòîê íà ãðàôèêå                              |
//| Ïàðàìåòðû:                                                       |
//|   dt - äàòà òîðãîâîãî äíÿ                                        |
//|   no - íàèìåíîâàíèå îáúåêòà                                      |
//|   up - âåðõíèé öåíîâîé óðîâåíü                                   |
//|   dn - íèæíèé öåíîâîé óðîâåíü                                    |
//+------------------------------------------------------------------+
 void DrawPrices(datetime dt, string no, double up, double dn) {
  if (ObjectFind("Up"+no)<0) ObjectCreate("Up"+no, OBJ_TEXT, 0, 0,0);
  ObjectSet("Up"+no, OBJPROP_TIME1   , dt);
  ObjectSet("Up"+no, OBJPROP_PRICE1  , up+(OffSet+SizeFont)*nPoint);
  ObjectSet("Up"+no, OBJPROP_COLOR   , clFont);
  ObjectSet("Up"+no, OBJPROP_FONTSIZE, SizeFont);
  ObjectSetText("Up"+no, DoubleToStr(up, Digits));
//+------
  if (ObjectFind("Dn"+no)<0) ObjectCreate("Dn"+no, OBJ_TEXT, 0, 0,0);
  ObjectSet("Dn"+no, OBJPROP_TIME1   , dt);
  ObjectSet("Dn"+no, OBJPROP_PRICE1  , dn-OffSet*nPoint);
  ObjectSet("Dn"+no, OBJPROP_COLOR   , clFont);
  ObjectSet("Dn"+no, OBJPROP_FONTSIZE, SizeFont);
  ObjectSetText("Dn"+no, DoubleToStr(dn, Digits));
}
//+------------------------------------------------------------------+ 
//| Âîçâðàùàåò íîìåð áàðà                                            |
//+------------------------------------------------------------------+ 
int NumberBar() {
  int nd=0, i=0;
  while (nd<NumberOfDays) {
    i++;
    if (TimeHour(Time[i])==0 && TimeMinute(Time[i])==0) nd++;
  }
  return(i);
}
//+------------------------------------------------------------------+
double GetPoint(string vSymbol)
{
 int vres = StringFind(vSymbol,"JPY");
 if (vres == -1) return(0.0001);
 return(0.01);
}
//+-----------------------------------------------+
             
            
            
            
Comments