//+------------------------------------------------------------------+ //| 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)=(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++; } } } //+------------------------------------------------------------------+