Setka





//+------------------------------------------------------------------+
//|                                                        Setka.mq4 |
//|                                                    Ïðèâàëîâ Ñ.Â. |
//|                                             Skype -> privalov-sv |
//+------------------------------------------------------------------+
#property copyright "Ïðèâàëîâ Ñ.Â."
#property link      "Skype -> privalov-sv"

#property  indicator_chart_window

datetime t;
color    LineColor = DimGray;
int      LineStyle = 4;
int      LineWidth = 1;
bool     LineOnBckgrnd = true;

string   name_g="Setka_g_";
string   name_v="Setka_v_";
int      i,var,Shet,MinBars;  
int      prPeriod = PERIOD_H1;
int      PreBars;
datetime BarTime;
int      StartPos;
string   mSymbol;
double   vertikal;
bool     flag=false;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() {
  mSymbol = Symbol();
  return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() {
// óäàëÿþòñÿ âñå îáúåêòû ñ ãðàôèêà.
  for (i=0;i<Shet;i++) {
   ObjectDelete(name_g+DoubleToStr(i,0));
   ObjectDelete(name_v+DoubleToStr(i,0));
  }         
  return(0);
}
//+------------------------------------------------------------------+
//|ðàñ÷åòû ïðè èíèöèàëèçàöèè è ñáîÿõ                                 |
//+------------------------------------------------------------------+
int Reset() {
  MinBars = MathMin(iBars(mSymbol, prPeriod)-1,WindowBarsPerChart());
  StartPos = MinBars;
  PreBars = 0;
  BarTime = 0;
  flag = true;
  // óäàëÿþòñÿ ñîçäàííûå îáúåêòû ñ ãðàôèêà.
  for (i=0;i<Shet;i++) {
   ObjectDelete(name_g+DoubleToStr(i,0));
   ObjectDelete(name_v+DoubleToStr(i,0));
  }
  flag=true;         
  Shet=0; //ñáðàñûâàåì ñ÷åò÷èê ëèíèé
  StartPos++;
  return(StartPos);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
//  Ðàáîòàåì òîëüêî ïî çàêîí÷èâøèìñÿ áàðàì
  if (iBars(mSymbol, prPeriod) == PreBars) return(0);  
//  Ïðîâåðèì, äîñòàòî÷íî ëè áàðîâ íà ãðàôèêå
  if (iBars(mSymbol, prPeriod) < MinBars)  return(0);
//  Åñëè íå áûëî äîêà÷êè èñòîðèè, îáñ÷èòûâàåì òîëüêî çàêîí÷èâøèéñÿ áàð
  if (iBars(mSymbol, prPeriod)-PreBars == 1 && BarTime==iTime(mSymbol, prPeriod,1)) StartPos = 1;
//  Èíà÷å ïåðåñ÷èòûâàåì çàäàííîå â ôóíêöèè Reset() êîëè÷åñòâî áàðîâ 
  else StartPos = Reset();
// Ìîäèôèöèðóåì êîíòðîëüíûå ïåðåìåííûå
  PreBars = iBars(mSymbol, prPeriod);  
  BarTime = iTime(mSymbol, prPeriod,0);
// Öèêë ïî èñòîðèè
  for (i=0; i<StartPos; i++) {
// àëãîðèòì ðàñ÷åòà .....
    t=iTime(Symbol(),PERIOD_H1,0)+60*60*(i-StartPos+2);
    var=TimeHour(t);    
    LineColor=DimGray;
    if(var==0) LineColor=Aqua;  // íà÷àëî ñóòîê 
    if(var==8) LineColor=Gold;  // íà÷àëî Ëîíäîí
    if(var==0 && TimeDayOfWeek(t)==1) LineColor=Red;  // íà÷àëî íåäåëè
    if(!ObjectCreate (name_g+DoubleToStr(Shet,0),OBJ_VLINE,0,t,0))
      {
      Print("error: íå ñîçäàí ãðàôè÷åñêèé îáúåêò name_g code #",GetLastError()," Symbol=", Symbol());
      }
    ObjectSet    (name_g+DoubleToStr(Shet,0),OBJPROP_STYLE,LineStyle);
    ObjectSet    (name_g+DoubleToStr(Shet,0),OBJPROP_COLOR,LineColor);
    ObjectSet    (name_g+DoubleToStr(Shet,0),OBJPROP_WIDTH,LineWidth);
    ObjectSet    (name_g+DoubleToStr(Shet,0),OBJPROP_BACK, LineOnBckgrnd);
    ObjectSet    (name_g+DoubleToStr(Shet,0),OBJPROP_TIMEFRAMES,NULL);
   Shet++;
  }  //  pos=StartPos;pos>0;pos--)

  // öèêë ïî âåðòèêàëè
  if(flag) {
  LineColor=DimGray;
   for(i=0; i<3000; i++) {
    Shet++;   
      vertikal=i*0.005; // øàã ñåòêè
      if(!ObjectCreate (name_v+DoubleToStr(Shet,0),OBJ_HLINE,0,t,vertikal))
      {
      Print("error: íå ñîçäàí ãðàôè÷åñêèé îáúåêò name_v code #",GetLastError()," Symbol=", Symbol());
      }
    ObjectSet    (name_v+DoubleToStr(Shet,0),OBJPROP_STYLE,LineStyle);
    ObjectSet    (name_v+DoubleToStr(Shet,0),OBJPROP_COLOR,LineColor);
    ObjectSet    (name_v+DoubleToStr(Shet,0),OBJPROP_WIDTH,LineWidth);
    ObjectSet    (name_v+DoubleToStr(Shet,0),OBJPROP_BACK, LineOnBckgrnd);
    ObjectSet    (name_v+DoubleToStr(Shet,0),OBJPROP_TIMEFRAMES,NULL);
   }
  flag=false; 
  }
  return(0);
}



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: