Price Data Components
Series array that contains open prices of each barSeries array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
10 Views
0 Downloads
0 Favorites
STICKER_3
//+------------------------------------------------------------------+
//|                                                   STICKER.v3 mg4 |                   
//|                                                  vorese          |
//|                                              vorese@yandex.ru    |
//|                                                                  |
//+------------------------------------------------------------------+
#property indicator_chart_window
extern string symbol="0";// ëþáàÿ âàëþòíàÿ ïàðà.  0-òåêóùèé ãðàôèê
extern int X_DISTANCE=0; // ðàñïîëîæ. ïî ãîðèçîíòàëè
extern int Y_DISTANCE=0; // ðàñïîëîæ. ïî âåðòèêàëè
extern color border_color=Silver; // öâåò ðàìêè 
extern color text_color=Silver; // öâåò âåðõíåé ñòðîêè 
extern color CurrCol_up=Aqua; // öâåò îáîçí.âàëþòû è % ðàñòóùåãî áàðà 
extern color CurrCol_down=Gold; // öâåò îáîçí.âàëþòû è % ïàäàþùåãî áàðà
extern bool colorRB_RG=true;  //öâåò ãèñòîãðàììû. true- êðàñíûé ñèíèé.false- êðàñíûé çåëåíûé.
extern bool  brightness_gradation=true; 
//---------------------------------------------------------------------   
int line_x[5]={7,18,28,94,107};// êîîðäèíàòû ãîðèçîíò.ëèíèé
color color_currency;
string symb;
//=====================================================================
int init()
  {
      if(symbol=="0") symb=Symbol();
        else
         symb=symbol;
 //-------------------------------------------------------------------  
   // ñîçäàòü ãîðèçîíò. ëèíèè
  for(int x=0;x<5;x++)  {
   ObjectCreate(symbol+"line-x"+x, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"line-x"+x, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"line-x"+x, OBJPROP_XDISTANCE,X_DISTANCE+10);
   ObjectSet(symbol+"line-x"+x, OBJPROP_YDISTANCE, Y_DISTANCE+line_x[x]);
   ObjectSetText(symbol+"line-x"+x,"_____________________",7,"Verdana",border_color); 
                     }
 //---------------------------------------------------------------------
   // ñîçäàòü âåðòèêàë. ëèíèè
   int c,y,r;
      for(c=0;c<2;c++) {
        if(c==1)r=129;
      for( y=0;y<5;y++)  {
   ObjectCreate(y+symbol+"line-y"+c, OBJ_LABEL, 0, 0, 0);
   ObjectSet(y+symbol+"line-y"+c, OBJPROP_CORNER, 3);
   ObjectSet(y+symbol+"line-y"+c, OBJPROP_XDISTANCE,X_DISTANCE+3+r);
   ObjectSet(y+symbol+"line-y"+c, OBJPROP_YDISTANCE, Y_DISTANCE+7+y*19);
   ObjectSetText(y+symbol+"line-y"+c,"|",19,"Verdana",border_color);      }
                     } 
  //--------------------------------------------------------------------- 
  // òåêñò                     
   ObjectCreate(symbol+"text", OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"text", OBJPROP_CORNER, 3);
   ObjectSet(symbol+"text", OBJPROP_XDISTANCE,X_DISTANCE+52);
   ObjectSet(symbol+"text", OBJPROP_YDISTANCE, Y_DISTANCE+96); 
   ObjectSetText(symbol+"text",symb,7,"Verdana",text_color);                                                          
   return(0);
  }                               
//=======================================================================
int deinit()
  { 
    int n,m;
      for( n=0;n<7;n++)  // óäàëèòü âñå îá'åêòû 
     {  
       ObjectDelete(symbol+"perc"+n);
       ObjectDelete(symbol+"curr"+n);
       if(n<5) ObjectDelete(symbol+"line-x"+n);  
  //------       
      for( m=0;m<=20;m++)
     {
       ObjectDelete(m+symbol+"gist"+n);
       if(m<2 && n<5) ObjectDelete(n+symbol+"line-y"+m);
                               } } 
       ObjectDelete(symbol+"text");                        
   return(0);
  }
//======================================================================
int start()
  {
  int i,w,z;
  double percent,bid,open,high,low; 
  int flag,count;  
  for( z=0;z<7;z++)  
    { 
      for( w=0;w<=20;w++) {
       ObjectDelete(w+symbol+"gist"+z); //óäàëèòü ãèñòîãðàììó ïåðåä îáíîâëåíèåì
                              }  
   percent=0; 
   flag=0;
   count=0;           
//---------------------------------------------------------------------
     // îáíîâèòü äàííûå
    RefreshRates();
    bid=MarketInfo(symb, MODE_BID );
    open=iOpen(symb,f_Timeframe(z),0);
    high=iHigh(symb,f_Timeframe(z),0);
    low=iLow(symb,f_Timeframe(z),0);   
//---------------------------------------------------------------------  
    // ðàñ÷åò ïðîöåíòîâ
   if(bid>open && high!=open && bid>0)   
       { percent=(bid-open)/(high-open)*100; // ïðîö.ðàñòóùåãî áàðà
         flag=1;
         count=NormalizeDouble(percent/5,0); }
       else {
         if(bid<open && low!=open && bid>0)
       { percent=(open-bid)/(open-low)*100; // ïðîö.ïàäàþùåãî áàðà
         flag=(-1);  
         count=NormalizeDouble(percent/5,0); } }
//-------------------------------------------------------------------- 
         // ïðè ïåðåêëþ÷åíèè ÒÔ//
    if(percent>100)percent=100; 
    if(count>20)count=20; 
 //-------------------------------------------------------------------     
        
//-------------------------------------------------------------------- 
     //-- öâåò âàëþòû è ïðîöåíòîâ
  if(flag==1)color_currency=CurrCol_up;
    else {
    if(flag==(-1))color_currency=CurrCol_down;
    else {
          color_currency=text_color;  }}
//--------------------------------------------------------------------
  // ïðîöåíòû     
   ObjectCreate(symbol+"perc"+z, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"perc"+z, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"perc"+z, OBJPROP_XDISTANCE,X_DISTANCE+121-z*18);
   ObjectSet(symbol+"perc"+z, OBJPROP_YDISTANCE, Y_DISTANCE+20);
   ObjectSetText(symbol+"perc"+z,DoubleToStr(percent,0),5,"Verdana",color_currency); 
                   
//-------------------------------------------------------------------- 
  //    ïåðèîä
   ObjectCreate(symbol+"curr"+z, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"curr"+z, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"curr"+z, OBJPROP_XDISTANCE,X_DISTANCE+119-z*18);
   ObjectSet(symbol+"curr"+z, OBJPROP_YDISTANCE, Y_DISTANCE+10);
   ObjectSetText(symbol+"curr"+z,f_Period(z),5,"Verdana",color_currency);         
//--------------------------------------------------------------------- 
  // ãèñòîãðàììà 
     for( i=0;i<=count;i++) {  
   ObjectCreate(i+symbol+"gist"+z, OBJ_LABEL, 0, 0, 0);
   ObjectSet(i+symbol+"gist"+z, OBJPROP_CORNER, 3);
   ObjectSet(i+symbol+"gist"+z, OBJPROP_XDISTANCE,X_DISTANCE+115-z*18);
   ObjectSet(i+symbol+"gist"+z, OBJPROP_YDISTANCE, Y_DISTANCE+3+i*3);
   ObjectSetText(i+symbol+"gist"+z,"-",40,"Verdana",f_Color(i,flag));  
                       } }  
//---------------------------------------------------------------------                     
   return(0);
  }
//=====================================================================
//============ öâåò ñèíèé êðàñíûé çåëåíûé==============================      
color f_Color (int num,int flag) 
{   color col_R,col_B,col,col_G;
if(!brightness_gradation ) {
 if(flag==1 && colorRB_RG)col=Blue;
     else {
      if(flag==1 && !colorRB_RG)col=Green;
       else {
        if(flag==(-1)) col=Red; 
         else {
           col=text_color;  }}}  }
     else {      
  switch(num) 
  { case 0: col_B=C'0,0,255';col_R=C'255,0,0';col_G=C'0,90,0';break; 
    case 1: col_B=C'0,10,255';col_R=C'255,10,0';col_G=C'0,100,0';break; 
    case 2: col_B=C'0,20,255';col_R=C'255,20,0';col_G=C'0,110,0';break; 
    case 3: col_B=C'0,30,255';col_R=C'255,30,0';col_G=C'0,120,0';break; 
    case 4: col_B=C'0,40,255';col_R=C'255,40,0';col_G=C'0,130,0';break; 
    case 5: col_B=C'0,50,255';col_R=C'255,50,0';col_G=C'0,140,0';break; 
    case 6: col_B=C'0,60,255';col_R=C'255,60,0';col_G=C'0,150,0';break; 
    case 7: col_B=C'0,70,255';col_R=C'255,70,0';col_G=C'0,155,0';break; 
    case 8: col_B=C'0,80,255';col_R=C'255,80,0';col_G=C'0,160,0';break; 
    case 9: col_B=C'0,90,255';col_R=C'255,90,0';col_G=C'0,165,0';break; 
    case 10: col_B=C'0,100,255';col_R=C'255,100,0';col_G=C'0,170,0';break; 
    case 11: col_B=C'0,110,255';col_R=C'255,110,0';col_G=C'0,175,0';break; 
    case 12: col_B=C'0,120,255';col_R=C'255,120,0';col_G=C'0,180,0';break; 
    case 13: col_B=C'0,130,255';col_R=C'255,130,0';col_G=C'0,185,0';break; 
    case 14: col_B=C'0,140,255';col_R=C'255,140,0';col_G=C'0,190,0';break; 
    case 15: col_B=C'0,150,255';col_R=C'255,150,0';col_G=C'0,195,0';break; 
    case 16: col_B=C'0,160,255';col_R=C'255,160,0';col_G=C'0,200,0';break; 
    case 17: col_B=C'0,170,255';col_R=C'255,170,0';col_G=C'0,205,0';break; 
    case 18: col_B=C'0,180,255';col_R=C'255,180,0';col_G=C'0,210,0';break; 
    case 19: col_B=C'0,190,255';col_R=C'255,190,0';col_G=C'0,215,0';break; 
    case 20: col_B=C'0,200,255';col_R=C'255,200,0';col_G=C'0,220,0';break; 
  
    } 
    if(flag==1 && colorRB_RG)col=col_B;
     else {
      if(flag==1 && !colorRB_RG)col=col_G;
       else {
        if(flag==(-1)) col=col_R; 
         else {
           col=text_color;  }}}  }
  return(col); }  
 //=========== ïåðèîä ==================================================
int f_Timeframe(int period)
  { 
    int TF;   
      if(period==0)TF=5;
   else {
     if(period==1)TF=15;
   else {
     if(period==2)TF=30;
   else {
     if(period==3)TF=60;
   else {
     if(period==4)TF=240;
   else {
     if(period==5)TF=1440;
   else {
     if(period==6)TF=10080; 
                     }}}}}}
             return(TF);   }
//==================================================================== 
//========== ïåðèîä òåêñò. ============================================
 string f_Period(int tf_num)
 {
    string text;
    switch(tf_num)
     {  case 0: text="M5";break;
        case 1: text="M15";break;
        case 2: text="M30";break;
        case 3: text="H1";break;
        case 4: text="H4";break; 
        case 5: text="D1";break;
        case 6: text="W1";break;  }
        return(text);   }    

Comments