//+------------------------------------------------------------------+ //| STICKER.v3 mg4 | //| vorese | //| vorese@yandex.ru | //| | //+------------------------------------------------------------------+ #property indicator_chart_window extern string symbol="0";// любая валютная пара. 0-текущий график extern int X_DISTANCE=0; // располож. по горизонтали extern int Y_DISTANCE=0; // располож. по вертикали extern color border_color=Silver; // цвет рамки extern color text_color=Silver; // цвет верхней строки extern color CurrCol_up=Aqua; // цвет обозн.валюты и % растущего бара extern color CurrCol_down=Gold; // цвет обозн.валюты и % падающего бара extern bool colorRB_RG=true; //цвет гистограммы. true- красный синий.false- красный зеленый. extern bool brightness_gradation=true; //--------------------------------------------------------------------- int line_x[5]={7,18,28,94,107};// координаты горизонт.линий color color_currency; string symb; //===================================================================== int init() { if(symbol=="0") symb=Symbol(); else symb=symbol; //------------------------------------------------------------------- // создать горизонт. линии for(int x=0;x<5;x++) { ObjectCreate(symbol+"line-x"+x, OBJ_LABEL, 0, 0, 0); ObjectSet(symbol+"line-x"+x, OBJPROP_CORNER, 3); ObjectSet(symbol+"line-x"+x, OBJPROP_XDISTANCE,X_DISTANCE+10); ObjectSet(symbol+"line-x"+x, OBJPROP_YDISTANCE, Y_DISTANCE+line_x[x]); ObjectSetText(symbol+"line-x"+x,"_____________________",7,"Verdana",border_color); } //--------------------------------------------------------------------- // создать вертикал. линии int c,y,r; for(c=0;c<2;c++) { if(c==1)r=129; for( y=0;y<5;y++) { ObjectCreate(y+symbol+"line-y"+c, OBJ_LABEL, 0, 0, 0); ObjectSet(y+symbol+"line-y"+c, OBJPROP_CORNER, 3); ObjectSet(y+symbol+"line-y"+c, OBJPROP_XDISTANCE,X_DISTANCE+3+r); ObjectSet(y+symbol+"line-y"+c, OBJPROP_YDISTANCE, Y_DISTANCE+7+y*19); ObjectSetText(y+symbol+"line-y"+c,"|",19,"Verdana",border_color); } } //--------------------------------------------------------------------- // текст ObjectCreate(symbol+"text", OBJ_LABEL, 0, 0, 0); ObjectSet(symbol+"text", OBJPROP_CORNER, 3); ObjectSet(symbol+"text", OBJPROP_XDISTANCE,X_DISTANCE+52); ObjectSet(symbol+"text", OBJPROP_YDISTANCE, Y_DISTANCE+96); ObjectSetText(symbol+"text",symb,7,"Verdana",text_color); return(0); } //======================================================================= int deinit() { int n,m; for( n=0;n<7;n++) // удалить все об'екты { ObjectDelete(symbol+"perc"+n); ObjectDelete(symbol+"curr"+n); if(n<5) ObjectDelete(symbol+"line-x"+n); //------ for( m=0;m<=20;m++) { ObjectDelete(m+symbol+"gist"+n); if(m<2 && n<5) ObjectDelete(n+symbol+"line-y"+m); } } ObjectDelete(symbol+"text"); return(0); } //====================================================================== int start() { int i,w,z; double percent,bid,open,high,low; int flag,count; for( z=0;z<7;z++) { for( w=0;w<=20;w++) { ObjectDelete(w+symbol+"gist"+z); //удалить гистограмму перед обновлением } percent=0; flag=0; count=0; //--------------------------------------------------------------------- // обновить данные RefreshRates(); bid=MarketInfo(symb, MODE_BID ); open=iOpen(symb,f_Timeframe(z),0); high=iHigh(symb,f_Timeframe(z),0); low=iLow(symb,f_Timeframe(z),0); //--------------------------------------------------------------------- // расчет процентов if(bid>open && high!=open && bid>0) { percent=(bid-open)/(high-open)*100; // проц.растущего бара flag=1; count=NormalizeDouble(percent/5,0); } else { if(bid0) { percent=(open-bid)/(open-low)*100; // проц.падающего бара flag=(-1); count=NormalizeDouble(percent/5,0); } } //-------------------------------------------------------------------- // при переключении ТФ// if(percent>100)percent=100; if(count>20)count=20; //------------------------------------------------------------------- //-------------------------------------------------------------------- //-- цвет валюты и процентов if(flag==1)color_currency=CurrCol_up; else { if(flag==(-1))color_currency=CurrCol_down; else { color_currency=text_color; }} //-------------------------------------------------------------------- // проценты ObjectCreate(symbol+"perc"+z, OBJ_LABEL, 0, 0, 0); ObjectSet(symbol+"perc"+z, OBJPROP_CORNER, 3); ObjectSet(symbol+"perc"+z, OBJPROP_XDISTANCE,X_DISTANCE+121-z*18); ObjectSet(symbol+"perc"+z, OBJPROP_YDISTANCE, Y_DISTANCE+20); ObjectSetText(symbol+"perc"+z,DoubleToStr(percent,0),5,"Verdana",color_currency); //-------------------------------------------------------------------- // период ObjectCreate(symbol+"curr"+z, OBJ_LABEL, 0, 0, 0); ObjectSet(symbol+"curr"+z, OBJPROP_CORNER, 3); ObjectSet(symbol+"curr"+z, OBJPROP_XDISTANCE,X_DISTANCE+119-z*18); ObjectSet(symbol+"curr"+z, OBJPROP_YDISTANCE, Y_DISTANCE+10); ObjectSetText(symbol+"curr"+z,f_Period(z),5,"Verdana",color_currency); //--------------------------------------------------------------------- // гистограмма for( i=0;i<=count;i++) { ObjectCreate(i+symbol+"gist"+z, OBJ_LABEL, 0, 0, 0); ObjectSet(i+symbol+"gist"+z, OBJPROP_CORNER, 3); ObjectSet(i+symbol+"gist"+z, OBJPROP_XDISTANCE,X_DISTANCE+115-z*18); ObjectSet(i+symbol+"gist"+z, OBJPROP_YDISTANCE, Y_DISTANCE+3+i*3); ObjectSetText(i+symbol+"gist"+z,"-",40,"Verdana",f_Color(i,flag)); } } //--------------------------------------------------------------------- return(0); } //===================================================================== //============ цвет синий красный зеленый============================== color f_Color (int num,int flag) { color col_R,col_B,col,col_G; if(!brightness_gradation ) { if(flag==1 && colorRB_RG)col=Blue; else { if(flag==1 && !colorRB_RG)col=Green; else { if(flag==(-1)) col=Red; else { col=text_color; }}} } else { switch(num) { case 0: col_B=C'0,0,255';col_R=C'255,0,0';col_G=C'0,90,0';break; case 1: col_B=C'0,10,255';col_R=C'255,10,0';col_G=C'0,100,0';break; case 2: col_B=C'0,20,255';col_R=C'255,20,0';col_G=C'0,110,0';break; case 3: col_B=C'0,30,255';col_R=C'255,30,0';col_G=C'0,120,0';break; case 4: col_B=C'0,40,255';col_R=C'255,40,0';col_G=C'0,130,0';break; case 5: col_B=C'0,50,255';col_R=C'255,50,0';col_G=C'0,140,0';break; case 6: col_B=C'0,60,255';col_R=C'255,60,0';col_G=C'0,150,0';break; case 7: col_B=C'0,70,255';col_R=C'255,70,0';col_G=C'0,155,0';break; case 8: col_B=C'0,80,255';col_R=C'255,80,0';col_G=C'0,160,0';break; case 9: col_B=C'0,90,255';col_R=C'255,90,0';col_G=C'0,165,0';break; case 10: col_B=C'0,100,255';col_R=C'255,100,0';col_G=C'0,170,0';break; case 11: col_B=C'0,110,255';col_R=C'255,110,0';col_G=C'0,175,0';break; case 12: col_B=C'0,120,255';col_R=C'255,120,0';col_G=C'0,180,0';break; case 13: col_B=C'0,130,255';col_R=C'255,130,0';col_G=C'0,185,0';break; case 14: col_B=C'0,140,255';col_R=C'255,140,0';col_G=C'0,190,0';break; case 15: col_B=C'0,150,255';col_R=C'255,150,0';col_G=C'0,195,0';break; case 16: col_B=C'0,160,255';col_R=C'255,160,0';col_G=C'0,200,0';break; case 17: col_B=C'0,170,255';col_R=C'255,170,0';col_G=C'0,205,0';break; case 18: col_B=C'0,180,255';col_R=C'255,180,0';col_G=C'0,210,0';break; case 19: col_B=C'0,190,255';col_R=C'255,190,0';col_G=C'0,215,0';break; case 20: col_B=C'0,200,255';col_R=C'255,200,0';col_G=C'0,220,0';break; } if(flag==1 && colorRB_RG)col=col_B; else { if(flag==1 && !colorRB_RG)col=col_G; else { if(flag==(-1)) col=col_R; else { col=text_color; }}} } return(col); } //=========== период ================================================== int f_Timeframe(int period) { int TF; if(period==0)TF=5; else { if(period==1)TF=15; else { if(period==2)TF=30; else { if(period==3)TF=60; else { if(period==4)TF=240; else { if(period==5)TF=1440; else { if(period==6)TF=10080; }}}}}} return(TF); } //==================================================================== //========== период текст. ============================================ string f_Period(int tf_num) { string text; switch(tf_num) { case 0: text="M5";break; case 1: text="M15";break; case 2: text="M30";break; case 3: text="H1";break; case 4: text="H4";break; case 5: text="D1";break; case 6: text="W1";break; } return(text); }