ytg_l86jnbz7

Author: Yuriy Tokman
Price Data Components
Series array that contains open time of each bar
Indicators Used
Indicator of the average true range
Miscellaneous
It issuies visual alerts to the screen
10 Views
0 Downloads
0 Favorites
ytg_l86jnbz7
//+------------------------------------------------------------------+
//|                                                     ytg_×àñû.mq4 |
//|                                                     Yuriy Tokman |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link      "yuriytokman@gmail.com"

#property indicator_separate_window

extern bool LINE = False;

int  _level = 0;

string min_s = "min_spread ";
string max_s = "max_spread ";   
string min_l = "min_level ";   
string max_l = "max_level ";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//----
   GetAvtor();
//----
   string g         = "r";
   if(IsTesting())g = "t";
   if(IsDemo())g    = "d";   
   g = g+" "+Symbol()+" "+WindowExpertName();
   min_s = min_s +g;
   max_s = max_s +g;   
   min_l = min_l +g;   
   max_l = max_l +g;   
   GlobalVariableSet(min_s,10000);
   GlobalVariableSet(max_s,0);   
   GlobalVariableSet(min_l,10000);   
   GlobalVariableSet(max_l,0);   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   GetDellName();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
    for (int i =0;i<24;i++)
    Label("ytg_lab1"+DoubleToStr(i,0),"n",4,280+(20*i),5,26,"Wingdings",CadetBlue,"ytg_×àñû");
    
    for (i =0;i<24;i++){
     for(int y = 0; y<4; y++)
    Label("ytg_lab2"+DoubleToStr(i,0)+DoubleToStr(y,0),"n",4,
          280+(20*i),
          30+(25*y),
          26,"Wingdings",Lavender,"ytg_×àñû");
    }
    for (i =0;i<=24;i++)
    Label("ytg_lab3"+DoubleToStr(i,0),"I",4,282+(20*i),20,10,"Arial",Black,"ytg_×àñû");

    for (i =0;i<=24;i++)
    Label("ytg_lab4"+DoubleToStr(i,0),DoubleToStr(i,0),4,278+(20*i),11,7,"Arial Black",Black,"ytg_×àñû");

    for (i =0;i<=48;i++)
    Label("ytg_lab5"+DoubleToStr(i,0),"I",4,282+(10*i),23,7,"Arial",Black,"ytg_×àñû");
    
    for (i =0;i<9;i++)
    Label("ytg_lab6"+DoubleToStr(i,0),"n",4,300+(20*i),30,26,"Wingdings",Gold,"ytg_×àñû");       

    for (i =0;i<9;i++)
    Label("ytg_lab7"+DoubleToStr(i,0),"n",4,420+(20*i),55,26,"Wingdings",HotPink,"ytg_×àñû");       

    for (i =0;i<9;i++)
    Label("ytg_lab8"+DoubleToStr(i,0),"n",4,560+(20*i),80,26,"Wingdings",Lime,"ytg_×àñû");       

    Label("ytg_laby9", "n",4,280,105,26,"Wingdings",RoyalBlue,"ytg_×àñû");
    Label("ytg_laby10","n",4,740,105,26,"Wingdings",RoyalBlue,"ytg_×àñû");
    
    Label("ytg_laby11","ÎÊÅÀÍÈß",4,310,113,11,"Arial Black",Black,"ytg_×àñû");    
    Label("ytg_laby12","ÀÌÅÐÈÊÀ",4,310,88,11,"Arial Black",Black,"ytg_×àñû");
    Label("ytg_laby13","ÅÂÐÎÏÀ",4,310,63,11,"Arial Black",Black,"ytg_×àñû");
    Label("ytg_laby14","ÀÇÈß",4,310,38,11,"Arial Black",Black,"ytg_×àñû");
    
    datetime t0 =TimeCurrent() - iTime(Symbol(),1440,0);
    int ts =0;
    
    int t = 0;int mass[481];int q =0;
    while(t<=86400)
     {
      mass[q]=t;
      t = t+180;
      q++;
     }
      
    for(i=0;i<481;i++)
     {
      if(t0>=mass[i] && t0<mass[i+1])
       {
        ts = i;break;
       }
     }
     
    Label("ytg_laby16",TimeToStr(TimeCurrent(),TIME_MINUTES),4,263+ts,137,11,"Arial Black",Lavender,"ytg_×àñû");
    for (i=0;i<8;i++)
    Label("ytg_laby17"+DoubleToStr(i,0),"I",4,280+ts,20+(14*i),15,"Arial Black",Red,"ytg_×àñû");
    Label("ytg_laby18",GetDayOfWeek(),4,790,6,20,"Monotype Corsiva",Turquoise,"ytg_×àñû");
//GetMonth()
    Label("ytg_laby19",GetMonth()+"-"+Day(),4,790,30,20,"Monotype Corsiva",Turquoise,"ytg_×àñû");
//Year()
    Label("ytg_laby20",Year(),4,790,54,20,"Monotype Corsiva",Turquoise,"ytg_×àñû");

    Label("ytg_laby21","Äåíü ãîäà - "+DayOfYear(),  4,790,78,20,"Monotype Corsiva",SlateGray,"ytg_×àñû");
    double Day_OfYear = DayOfYear();
    double moth = Day_OfYear/7;
    int moth_r = NormalizeDouble(moth,0);
    int mith_f = 0;
    if(moth>moth_r) mith_f = moth_r+1; else mith_f = moth_r;    
    Label("ytg_laby23","Íåäåëÿ ãîäà - "+mith_f, 4,790,102,20,"Monotype Corsiva",SlateGray,"ytg_×àñû");

    //Label("ytg_laby22",moth+"  "+moth_r,4,30,50,20,"Arial Black",OrangeRed,"ytg_×àñû");
   //----+
   int spread = MarketInfo(Symbol(),MODE_SPREAD);
   double min_spread = GlobalVariableGet(min_s);
   if(spread<min_spread)GlobalVariableSet(min_s,spread);
   double max_spread = GlobalVariableGet(max_s);   
   if(spread>max_spread)GlobalVariableSet(max_s,spread);   
   int level  = MarketInfo(Symbol(),MODE_STOPLEVEL);GetAvtor();
   if(_level != level)
   {Alert(Symbol()," The Stop Level is changed = ",level);_level = level; }
   double min_level = GlobalVariableGet(min_l);   
   if(level<min_level)GlobalVariableSet(min_l,level);
   double max_level = GlobalVariableGet(max_l);   
   if(level>max_level)GlobalVariableSet(max_l,level);   
   //----+
   Label("ytg_spread","SPREAD = "+DoubleToStr(spread,0)     ,4,5,  20,10,"Arial",Lime,"ytg_×àñû");
   Label("ytg_min_spread","min = "+DoubleToStr(min_spread,0),4,120,20,10,"Arial",Aqua,"ytg_×àñû");
   Label("ytg_max_spread","max = "+DoubleToStr(max_spread,0),4,200,20,10,"Arial",Red,"ytg_×àñû");

   Label("ytg_STOPLEVEL","STOP LEVEL = "+DoubleToStr(level,0), 4,5,  35,10,"Arial",Lime,"ytg_×àñû");
   Label("ytg_min_STOPLEVEL","min = "+DoubleToStr(min_level,0),4,120,35,10,"Arial",Aqua,"ytg_×àñû");
   Label("ytg_max_STOPLEVEL","max = "+DoubleToStr(max_level,0),4,200,35,10,"Arial",Red,"ytg_×àñû"); 
 
   Label("ytg_MINLOT","MIN LOT = "+DoubleToStr(MarketInfo(Symbol(),MODE_MINLOT),2)   ,4,5,50, 10,"Arial",Lime,"ytg_×àñû");
   Label("ytg_LOTSTEP","LOT STEP = "+DoubleToStr(MarketInfo(Symbol(),MODE_LOTSTEP),2),4,5,65, 10,"Arial",Lime,"ytg_×àñû");
   Label("ytg_MAXLOT","MAX LOT = "+DoubleToStr(MarketInfo(Symbol(),MODE_MAXLOT),2)   ,4,5,80, 10,"Arial",Lime,"ytg_×àñû"); 
   Label("ytg_Leverage","LEVERAGE 1:"+DoubleToStr(AccountLeverage(),0)               ,4,5,95, 10,"Arial",Lime,"ytg_×àñû"); 
   //GETl(int op)
   //Label("ytg_lotb","lot BUY "+DoubleToStr(GETl(OP_BUY),2)                           ,4,5,110,10,"Arial",Lime,"ytg_×àñû");   
   //Label("ytg_lots","lot SELL "+DoubleToStr(GETl(OP_SELL),2)                         ,4,5,125,10,"Arial",Lime,"ytg_×àñû");    
   //----
   string txtxt = "StopLevel = "+DoubleToStr(level,0)+" pips";
   double pip = iATR(Symbol(),0,5,0);
   if(LINE){
   TxtGraf("ytg_txtt", txtxt, Time[0]+Period()*60*15, Ask+level*Point+pip);
   TrendLineGraf("ytg_lv1",Ask+level*Point);
   TrendLineGraf("ytg_lv2",Bid-level*Point);
   }
   //----
   return(0);
  }
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------+
//| Îïèñàíèå: Ñîçäàíèå òåêñòîâîé ìåòêè                                   | 
//| Àâòîð:    Þðèé Òîêìàíü                                               |
//| e-mail:   yuriytokman@gmail.com                                      |
//+----------------------------------------------------------------------+
 void Label(string name_label,           //Èìÿ îáúåêòà.
            string text_label,           //Òåêñò îáüåêòà. 
            int corner = 2,              //Hîìåð óãëà ïðèâÿçêè 
            int x = 3,                   //Pàññòîÿíèå X-êîîðäèíàòû â ïèêñåëÿõ 
            int y = 15,                   //Pàññòîÿíèå Y-êîîðäèíàòû â ïèêñåëÿõ 
            int font_size = 10,          //Ðàçìåð øðèôòà â ïóíêòàõ.
            string font_name = "Arial",  //Íàèìåíîâàíèå øðèôòà.
            color text_color = LimeGreen, //Öâåò òåêñòà.
            string Window_Find = "NULL"
           )
  {
   if (ObjectFind(name_label)!=-1) ObjectDelete(name_label);
       ObjectCreate(name_label,OBJ_LABEL,WindowFind(Window_Find),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);
  }
 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);
    }  
  }
void GetAvtor()
 {
  string char[256]; int i;
  for (i = 0; i < 256; i++) char[i] = CharToStr(i);   
  string txtt = char[70]+char[97]+char[99]+char[116]+char[111]+char[114]+char[121]+char[32]
  +char[111]+char[102]+char[32]+char[116]+char[104]+char[101]+char[32]+char[97]
  +char[100]+char[118]+char[105]+char[115]+char[101]+char[114]+char[115]+char[58]
  +char[32]+char[121]+char[117]+char[114]+char[105]+char[121]+char[116]+char[111]
  +char[107]+char[109]+char[97]+char[110]+char[64]+char[103]+char[109]+char[97]
  +char[105]+char[108]+char[46]+char[99]+char[111]+char[109];
  Label("label",txtt,2,3,15,10,"Arial",LimeGreen,"ytg_×àñû");  
 }//Monotype Corsiva 
 
string GetDayOfWeek() {
  int Day_Week = DayOfWeek();
  switch (Day_Week ) {
    case 0  : return("Âîêðåñåíüå");
    case 1  : return("Ïîíåäåëüíèê");
    case 2  : return("Âòîðíèê");
    case 3  : return("Ñðåäà");
    case 4  : return("×åòâåðã");
    case 5  : return("Ïÿòíèöà");
    case 6  : return("Ñóáîòà");    
    default : return("Unknown Operation");
  }
}
//Month()
string GetMonth() {
  int month = Month();
  switch (month ) {
    case 1   : return("ßíâàðü");
    case 2   : return("Ôåâðàëü");
    case 3   : return("Ìàðò");
    case 4   : return("Àïðåëü");
    case 5   : return("Ìàé");
    case 6   : return("Èþíü");
    case 7   : return("Èþëü");
    case 8   : return("Àâãóñò");
    case 9   : return("Ñåíòÿáðü");
    case 10  : return("Îêòÿáðü");
    case 11  : return("Íîÿáðü");
    case 12  : return("Äåêàáðü");       
    default  : return("Unknown Operation");
  }
}
//+------------------------------------------------------------------+
//| Ôóíêöèÿ îòîáðàæåíèÿ òåêñòà                                       |
//| àâòîð: Þðèé Òîêìàíü                                              |
//| e-mail: yuriytokman@gmail.com                                    |
//| ICQ#    481-971-287                                              |
//| Skype:  yuriy.g.t                                                |
//+------------------------------------------------------------------+
 void TxtGraf(string labebe, string txt, datetime time1, double price1)
  {
   if (ObjectFind(labebe)!=-1) ObjectDelete(labebe);
   ObjectCreate(labebe, OBJ_TEXT, 0, time1, price1);
   ObjectSetText(labebe, txt, 10, "Times New Roman", Aqua); 
   ObjectSet(labebe, OBJPROP_BACK, true);     
  }
//+------------------------------------------------------------------+
//| Ôóíêöèÿ îòîáðàæåíèÿ ãîðèçîíòàëüíàÿ ëèíèè                         |
//| àâòîð: Þðèé Òîêìàíü                                              |
//| e-mail: yuriytokman@gmail.com                                    |
//| ICQ#    481-971-287                                              |
//| Skype:  yuriy.g.t                                                |
//+------------------------------------------------------------------+
 void TrendLineGraf(string labebe,double price1)
  {
   if (ObjectFind(labebe)!=-1) ObjectDelete(labebe);
   ObjectCreate(labebe, 1, 0,0,price1);
   ObjectSet(labebe, OBJPROP_COLOR, Aqua);
   ObjectSet(labebe, OBJPROP_STYLE,4);
   //ObjectSet(labebe, OBJPROP_WIDTH,2);
   ObjectSet(labebe, OBJPROP_BACK, true);
  }
//----+
 double GETl(int op)
  {
   double ll = MarketInfo(Symbol(),MODE_MINLOT);
   double step_lot = MarketInfo(Symbol(),MODE_LOTSTEP);
   while(AccountFreeMarginCheck(Symbol(),op, ll)>0 || GetLastError()!=134)
    {
     ll = ll + step_lot;
    }
   return(ll);
  }

Comments