Price Data Components
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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---