Author: Copyright � 2009, ������ ������ ������������
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each barSeries array that contains open prices of each barSeries array that contains close prices for each bar
0 Views
0 Downloads
0 Favorites
2Graphs_v1
//+------------------------------------------------------------------+
//|                                                      2Graphs.mq4 |
//|                     Copyright © 2009, Áóãàåâ Äàíèèë Âëàäèìèðîâè÷ |
//|                                         e-mail: buga1922@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Áóãàåâ Äàíèèë Âëàäèìèðîâè÷"
#property link "mailto:buga1922@mail.ru"

#property indicator_separate_window
#property indicator_minimum -0.1
#property indicator_maximum 10.1

extern string symbol1="EURUSD";
extern string symbol2="USDCHF";
extern string s_period1="0";
extern string s_period2="0";
extern bool din_shirina=true;

int period1,period2;
double max_high1,max_high2,
min_low1=10000,min_low2=10000;
int j;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

int PROVERKA(string s_period)
  {
   if(( s_period=="0") || (s_period==""))
     {
      return(Period());
     }
   else
     {
      if(( s_period=="M1") || (s_period=="m1"))
        {
         return(1);
        }
      else
        {
         if(( s_period=="M5") || (s_period=="m5"))
           {
            return(5);
           }
         else
           {
            if(( s_period=="M15") || (s_period=="m15"))
              {
               return(15);
              }
            else
              {
               if(( s_period=="M30") || (s_period=="m30"))
                 {
                  return(30);
                 }
               else
                 {
                  if(( s_period=="H1") || (s_period=="h1"))
                    {
                     return(60);
                    }
                  else
                    {
                     if(( s_period=="H4") || (s_period=="h4"))
                       {
                        return(240);
                       }
                     else
                       {
                        if(( s_period=="D1") || (s_period=="d1"))
                          {
                           return(1440);
                          }
                        else
                          {
                           if(( s_period=="W1") || (s_period=="w1"))
                             {
                              return(10080);
                             }
                           else
                             {
                              if(( s_period=="MN") || (s_period=="mn") || (s_period=="Mn") || (s_period=="mN"))
                                {
                                 return(43200);
                                }
                              else
                                {
                                 return(-1);
                                }
                             }
                          }
                       }
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double MASHTAB1(string symbol,int period,int lag)
  {
   double iH=iHigh(symbol,period,lag),iL=iLow(symbol,period,lag);
   if(iH!=0 && max_high1 < iH ) max_high1 = iH;
   if(iL!=0 && min_low1 > iL )   min_low1  = iL;
   if(max_high1-min_low1!=0)
      return(10.0/(max_high1-min_low1));
   else
      return(1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double MASHTAB2(string symbol,int period,int lag)
  {
   double iH=iHigh(symbol,period,lag),iL=iLow(symbol,period,lag);
   if(iH!=0 && max_high2 < iH ) max_high2 = iH;
   if(iL!=0 && min_low2 > iL ) min_low2  = iL;
   if(max_high2-min_low2!=0)
      return(10.0/(max_high2-min_low2));
   else
      return(1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void UROVNI()
  {
   int i;
   for(i=0; i<=10; i++)
     {
      ObjectCreate("uroven"+i,OBJ_HLINE,1,1,i);
      ObjectSet("uroven"+i,OBJPROP_COLOR,Silver);
      ObjectSet("uroven"+i,OBJPROP_STYLE,STYLE_DOT);
     }
   int pos=WindowFirstVisibleBar()-WindowBarsPerChart()/2;
   if(pos<0 || pos>=Bars)
      pos=0;
   ObjectCreate("razdel",OBJ_VLINE,1,Time[pos],0);
   ObjectCreate("valuta1",OBJ_LABEL,1,0,0);
   ObjectSetText("valuta1",symbol1+"_"+s_period1,8,"Arial",Gray);
   ObjectSet("valuta1",OBJPROP_CORNER,    0);// Óãîë ïðèâÿçêè            
   ObjectSet("valuta1",OBJPROP_XDISTANCE,15);// Êîîðäèíàòà Õ
   ObjectSet("valuta1",OBJPROP_YDISTANCE,15);// Êîîðäèíàòà Y
   ObjectCreate("valuta2",OBJ_LABEL,1,0,0);
   ObjectSetText("valuta2",symbol2+"_"+s_period2,8,"Arial",Gray);
   ObjectSet("valuta2",OBJPROP_CORNER,    1);// Óãîë ïðèâÿçêè            
   ObjectSet("valuta2",OBJPROP_XDISTANCE,15);// Êîîðäèíàòà Õ
   ObjectSet("valuta2",OBJPROP_YDISTANCE,15);// Êîîðäèíàòà Y
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int SHIRINA_TELA()
  {
   if(WindowBarsPerChart()>300)
     {
      return(1);
     }
   else
     {
      if(WindowBarsPerChart()>150)
        {
         return(3);
        }
      else
        {
         if(WindowBarsPerChart()>70)
           {
            return(5);
           }
         else
           {
            if(WindowBarsPerChart()>35)
              {
               return(9);
              }
            else
              {
               return(13);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SVECHA(string symbol,int period,int lag_k,int lag_p,double k,double min_low)
  {
   if(lag_p<0) lag_p=0;
   if(lag_p>=Bars) lag_p=Bars-1;

   ObjectCreate("shade"+symbol+lag_p,OBJ_TREND,1,Time[lag_p],(iHigh(symbol,period,lag_k)-min_low)*k,
                Time[lag_p],(iLow(symbol,period,lag_k)-min_low)*k);
   ObjectCreate("telo"+symbol+lag_p,OBJ_TREND,1,Time[lag_p],(iOpen(symbol,period,lag_k)-min_low)*k,
                Time[lag_p],(iClose(symbol,period,lag_k)-min_low)*k);
   ObjectSet("telo"+symbol+lag_p,OBJPROP_RAY,false);
   ObjectSet("shade"+symbol+lag_p,OBJPROP_RAY,false);
   if(din_shirina==true)
     {
      ObjectSet("telo"+symbol+lag_p,OBJPROP_WIDTH,SHIRINA_TELA());
     }
   else
     {
      ObjectSet("telo"+symbol+lag_p,OBJPROP_WIDTH,3);
     }
   if(iOpen(symbol,period,lag_k)<iClose(symbol,period,lag_k))
     {
      ObjectSet("telo"+symbol+lag_p,OBJPROP_COLOR,Red);
      ObjectSet("shade"+symbol+lag_p,OBJPROP_COLOR,Red);
     }
   else
     {
      ObjectSet("telo"+symbol+lag_p,OBJPROP_COLOR,Black);
      ObjectSet("shade"+symbol+lag_p,OBJPROP_COLOR,Black);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   period1=PROVERKA(s_period1);
   period2=PROVERKA(s_period2);
//if ( ( period1==-1 ) || ( period2==-1 ) ) Comment("error");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+

void DELETE()
  {
   int i;
   ObjectDelete("razdel");
   for(i=(WindowFirstVisibleBar()-1); i>=(WindowFirstVisibleBar()-WindowBarsPerChart()/2+1); i--)
     {
      ObjectDelete("telo"+symbol1+i);
      ObjectDelete("shade"+symbol1+i);
     }
   for(i=(WindowFirstVisibleBar()-WindowBarsPerChart()+2); i<=(WindowFirstVisibleBar()-WindowBarsPerChart()/2-1); i++)
     {
      ObjectDelete("telo"+symbol2+i);
      ObjectDelete("shade"+symbol2+i);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i,travel1,travel2,vsego,first;
   double k1,k2;
   if(j!=Time[0])
     {
      j=Time[0];
      DELETE();
      UROVNI();
      vsego=WindowBarsPerChart( );
      first=WindowFirstVisibleBar( );
      max_high1=0;max_high2=0;
      min_low1=10000;min_low2=10000;
      for(i=(WindowFirstVisibleBar()-WindowBarsPerChart()+3); i<=(WindowFirstVisibleBar()-WindowBarsPerChart()/2); i++)
        {
         k1=MASHTAB1(symbol1,period1,i);
         k2=MASHTAB2(symbol2,period2,i);
        }
      for(i=(WindowFirstVisibleBar()-WindowBarsPerChart()+3); i<=(WindowFirstVisibleBar()-WindowBarsPerChart()/2); i++)
        {
         SVECHA(symbol1,period1,i,first-WindowBarsPerChart()/2+2,k1,min_low1);
         SVECHA(symbol2,period2,i,first-WindowBarsPerChart()+2,k2,min_low2);
         first++;
        }
     }
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---