//+------------------------------------------------------------------+ //| | //| Copyright © 1999-2007, MetaQuotes Software Corp. | //| http://www.metaquotes.ru | //+------------------------------------------------------------------+ #property indicator_chart_window //---- extern int P=64; extern int StepBack=0; //---- double dmml=0,dvtl=0,sum =0,v1=0,v2=0,mn=0,mx=0,x1=0,x2=0,x3=0,x4=0,x5=0,x6=0,y1=0,y2=0,y3=0,y4=0,y5=0,y6=0,octave=0,fractal=0,range =0,finalH =0,finalL =0,mml[13]; string ln_txt[13], buff_str=""; int bn_v1 =0, bn_v2 =0, OctLinesCnt=13, mml_thk=8, mml_clr[13], mml_shft=3, nTime=0, CurPeriod=0, nDigits=0, i=0; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { ln_txt[0] ="[-2/8]P"; ln_txt[1] ="[-1/8]P"; ln_txt[2] ="ÏÎÄÄÅÐÆÊÀ [0/8]"; ln_txt[3] ="ÎÑÒÀÍÎÂÊÀ_ÐÀÇÂÎÐÎÒ [1/8]"; ln_txt[4] ="ÂÐÀÙÅÍÈÅ_ÐÀÇÂÎÐÎÒ [2/8]"; ln_txt[5] ="ÄÍÎ_ÊÀÍÀËÀ [3/8]"; ln_txt[6] ="ÑÎÏÐÎÒÈÂËÅÍÈÅ_ÏÎÄÄÅÐÆÊÀ [4/8]"; ln_txt[7] ="ÂÅÐÕ_ÊÀÍÀËÀ [5/8]"; ln_txt[8] ="ÂÐÀÙÅÍÈÅ_ÐÀÇÂÎÐÎÒ [6/8]"; ln_txt[9] ="ÎÑÒÀÍÎÂÊÀ_ÐÀÇÂÎÐÎÒ [7/8]"; ln_txt[10]="ÑÎÏÐÎÒÈÂËÅÍÈÅ [8/8]"; ln_txt[11]="[+1/8]P";// "overshoot [+1/8]"; ln_txt[12]="[+2/8]P";// "extremely overshoot [+2/8]"; //---- mml_shft=25; mml_thk =3; //---- mml_clr[0] =Magenta; mml_clr[1] =Pink; mml_clr[2] =Blue; mml_clr[3] =Orange; mml_clr[4] =Red; mml_clr[5] =OliveDrab; mml_clr[6] =Blue; mml_clr[7] =OliveDrab; mml_clr[8] =Red; mml_clr[9] =Orange; mml_clr[10]=Blue; mml_clr[11]=Pink; mml_clr[12]=Magenta; //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { Comment(" "); for(i=0;i25000 ) fractal=100000; else if(v2<=25000 && v2>2500 ) fractal=10000; else if(v2<=2500 && v2>250 ) fractal=1000; else if(v2<=250 && v2>25 ) fractal=100; else if(v2<=25 && v2>12.5 ) fractal=12.5; else if(v2<=12.5 && v2>6.25) fractal=12.5; else if(v2<=6.25 && v2>3.125 ) fractal=6.25; else if(v2<=3.125 && v2>1.5625 ) fractal=3.125; else if(v2<=1.5625 && v2>0.390625 ) fractal=1.5625; else if(v2<=0.390625 && v2>0) fractal=0.1953125; range=(v2-v1); sum=MathFloor(MathLog(fractal/range)/MathLog(2)); octave=fractal*(MathPow(0.5,sum)); mn=MathFloor(v1/octave)*octave; if((mn+octave)>v2 ) mx=mn+octave; else mx=mn+(2*octave); if((v1>=(3*(mx-mn)/16+mn)) && (v2<=(9*(mx-mn)/16+mn)) ) x2=mn+(mx-mn)/2; else x2=0; if((v1>=(mn-(mx-mn)/8))&& (v2<=(5*(mx-mn)/8+mn)) && (x2==0) ) x1=mn+(mx-mn)/2; else x1=0; if((v1>=(mn+7*(mx-mn)/16))&& (v2<=(13*(mx-mn)/16+mn)) ) x4=mn+3*(mx-mn)/4; else x4=0; if((v1>=(mn+3*(mx-mn)/8))&& (v2<=(9*(mx-mn)/8+mn))&& (x4==0) ) x5=mx; else x5=0; if((v1>=(mn+(mx-mn)/8))&& (v2<=(7*(mx-mn)/8+mn))&& (x1==0) && (x2==0) && (x4==0) && (x5==0) ) x3=mn+3*(mx-mn)/4; else x3=0; if((x1+x2+x3+x4+x5) ==0 ) x6=mx; else x6=0; finalH=x1+x2+x3+x4+x5+x6; if(x1>0 ) y1=mn; else y1=0; if(x2>0 ) y2=mn+(mx-mn)/4; else y2=0; if(x3>0 ) y3=mn+(mx-mn)/4; else y3=0; if(x4>0 ) y4=mn+(mx-mn)/2; else y4=0; if(x5>0 ) y5=mn+(mx-mn)/2; else y5=0; if((finalH>0) && ((y1+y2+y3+y4+y5)==0) ) y6=mn; else y6=0; finalL=y1+y2+y3+y4+y5+y6; for( i=0; i