Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Strange Formula for Amibroker (AFL)
Copy & Paste Friendly
Back
_SECTION_BEGIN("Chart Settings"); SetChartOptions(0,chartShowArrows|chartShowDates); SetChartBkColor(ParamColor("Outer Panel",1)); SetChartBkGradientFill(ParamColor("Upper Chart",1),ParamColor("Lower Chart",23)); GraphXSpace=Param("GraphXSpace",10,0,100,1); dec = (Param("Decimals",2,0,7,1)/10)+1; bi = BarIndex(); Lbi = LastValue(BarIndex()); sbi = SelectedValue(bi); x1= BarCount-1; SetBarFillColor (IIf(C>O,19,IIf(C<O,24,42))); Plot(C,"",IIf(C>O,51,IIf(C<O,33,55)),64); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx _SECTION_BEGIN("SV X Pivots"); pct = Param( "Pivot %",0.18,0.10,60,0.01); plt = ParamToggle("Plot Zig ","Off|On",0); ppa = ParamToggle("Plot Pattern Lines","Off|On",1); plx = ParamToggle("Plot Time Lines","Off|On",1); Vsh= Param("Time Line V Shift",0.25,0,10,0.01); ptx = ParamToggle("Plot Text","Off|On",1); HiLb= Param("Hi Lookback",1,1,x1,1); LoLb= Param("Lo Lookback",1,0,x1,1); //============================== pk=PeakBars(H,pct)==0; tr=TroughBars(L,pct)==0; zHi=Zig(H,pct); zLo=Zig(L,pct); HLAvg=(zHi+zLo)/2; zp=IIf(pk,zHi,IIf(tr,zLo,IIf(HLAvg>Ref(HLAvg,-1),H,L))); za=Zig(zp,pct); pR=Ref(za,-1)<za AND za>Ref(za,1);//pk pS=Ref(za,-1)>za AND za<Ref(za,1);//tr //============================== if(plt==1)Plot(za,"ZIG",42,32|4096); //============================== //Support xs0 = SelectedValue(ValueWhen(PS,bi,LoLb)); xs1 = SelectedValue(ValueWhen(pS,bi,LoLb+1)); xs2 = SelectedValue(ValueWhen(pS,bi,LoLb+2)); xs3 = SelectedValue(ValueWhen(pS,bi,LoLb+3)); xs4 = SelectedValue(ValueWhen(pS,bi,LoLb+4)); ys0 = SelectedValue(ValueWhen(pS,L,LoLb)); ys1 = SelectedValue(ValueWhen(pS,L,LoLb+1)); ys2 = SelectedValue(ValueWhen(pS,L,LoLb+2)); ys3 = SelectedValue(ValueWhen(pS,L,LoLb+3)); ys4 = SelectedValue(ValueWhen(pS,L,LoLb+4)); //Resistance xr0 = SelectedValue(ValueWhen(pR,bi,HiLb)); xr1 = SelectedValue(ValueWhen(pR,bi,HiLb+1)); xr2 = SelectedValue(ValueWhen(pR,bi,HiLb+2)); xr3 = SelectedValue(ValueWhen(pR,bi,HiLb+3)); xr4 = SelectedValue(ValueWhen(pR,bi,HiLb+4)); yr0 = SelectedValue(ValueWhen(pR,H,HiLb)); yr1 = SelectedValue(ValueWhen(pR,H,HiLb+1)); yr2 = SelectedValue(ValueWhen(pR,H,HiLb+2)); yr3 = SelectedValue(ValueWhen(pR,H,HiLb+3)); yr4 = SelectedValue(ValueWhen(pR,H,HiLb+4)); Sup = xs0>xr0; Res = xr0>xs0; xsh = 50; xsbi = IIf(Res, xr0-xsh, xs0-xsh);//xstart za=Zig(zp,0.01); pR=Ref(za,-1)<za AND za>Ref(za,1);//pk pS=Ref(za,-1)>za AND za<Ref(za,1);//tr eLy = SelectedValue(ValueWhen(pS,L,0)); eHy = SelectedValue(ValueWhen(pR,H,0)); d1 = IIf(sup,ely,ehy); c1 = IIf(sup,ehy,ely); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx _SECTION_BEGIN("Patterns"); //Assign Letter to Pivots if(Res==1) { col= 40; colp= 32; va1= 0.30; va2= -0.30; Sx = xs4; Sy = ys4; Tx = xr4; Ty = yr4; Ux = xs3; Uy = ys3; Vx = xr3; Vy = yr3; Wx = xs2; Wy = ys2; Xx = xr2; Xy = yr2; Ax = xs1; Ay = ys1; Bx = xr1; By = yr1; Cx = xs0; Cy = ys0; Dx = xr0; Dy = yr0; } if(Sup==1) { col= 51; colp= 43; va1= -0.30; va2= 0.30; Sx = xr4; Sy = yr4; Tx = xs4; Ty = ys4; Ux = xr3; Uy = yr3; Vx = xs3; Vy = ys3; Wx = xr2; Wy = yr2; Xx = xs2; Xy = ys2; Ax = xr1; Ay = yr1; Bx = xs1; By = ys1; Cx = xr0; Cy = yr0; Dx = xs0; Dy = ys0; } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx //Calculate Hi Lo Retracements WX=(abs(xy-wy)/abs(wy-vy))*100; XA=abs(Xy-Ay)/abs(Xy-Wy)*100; AB=abs(By-Ay)/abs(Xy-Ay)*100; BC=abs(By-Cy)/abs(By-Ay)*100; CD=abs(Dy-Cy)/abs(By-Cy)*100; CE=(abs(Cy-c1)/abs(Cy-By))*100; DE=(abs(Dy-d1)/abs(Cy-Dy))*100; //Calculate Hi-Hi Lo-Lo Retracements XBi= abs(Xy-By)/(abs(Xy-Ay))*100; XBe= abs(By-Ay)/(abs(Xy-Ay))*100; XB = IIf(By>=Ay,XBe,XBi); XD=abs(Dy-Ay)/abs(Xy-Ay)*100; ACi=abs(Cy-Ay)/abs(By-Ay)*100; ACe=abs(By-Cy)/abs(By-Ay)*100; AC = IIf(Cy>=Ay,ACi,ACe); BDi=abs(Dy-By)/abs(By-Cy)*100; BDe=abs(Dy-Cy)/abs(By-Cy)*100; BD = IIf(Dy>=By,BDe,BDi); //Plot Labels and Retracements if(ptx==1) { PlotText(" S ",sx,sy + va2, col,1); PlotText(" T ",tx,ty + va1, col,1); PlotText(" U ",ux,uy + va2, col,1); PlotText(" V ",vx,vy + va1, col,1); PlotText(" W ",IIf(sup,xr2,xs2),wy + va2, col,1); PlotText(" X = "+NumToStr(WX,1.1)+" % ",xx,xy + va1, col,1); PlotText(" A = "+NumToStr(XA,1.1)+" % ",ax,ay + va2, col,1); PlotText(" B = "+NumToStr(AB,1.1)+" % ",bx,by + va1, col,1); PlotText(" C = "+NumToStr(BC,1.1)+" % ",cx,cy + va2, col,1); PlotText(" D = "+NumToStr(CD,1.1)+" % ",dx,dy + va1, colp,1); PlotText(" "+NumToStr(de,1.1)+"%",(dx+x1)/2,(dy+d1)/2,42,1); PlotText(" "+NumToStr(ce,1.1)+"%",(cx+x1)/2,(cy+c1)/2,42,1); PlotText(" "+NumToStr(XB,1.1)+" %",((xx+bx)/2)-2,(xy+by)/2, 40,1); PlotText(" "+NumToStr(XD,1.1)+" %",(xx+dx)/2,(xy+dy)/2, 34,1); PlotText(" "+NumToStr(AC,1.1)+" %",(ax+cx)/2-2,(ay+cy)/2, 10,1); PlotText(" "+NumToStr(BD,1.1)+" %",((bx+dx)/2)-2,(by+dy)/2, 10,1); } //Plot Hi-Hi Lo-Lo Lines if(ppa==1) { Plot(LineArray(dx,dy,x1,d1,0),"",42,32|4096); Plot(LineArray(cx,cy,x1,c1,0),"",42,32|4096); Plot(LineArray(sx,sy,ax,ay,1),"",35,41|4096|2048); Plot(LineArray(ux,uy,ax,ay,1),"",25,41|4096|2048); Plot(LineArray(bx,by,dx,dy,0),"",34,32|4096); Plot(LineArray(ax,ay,cx,cy,0),"",34,32|4096); Plot(LineArray(xx,xy,dx,dy,0),"",32,32|4096); Plot(LineArray(xx,xy,bx,by,0),"",32,32|4096); } //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx //Count Bars Between Pivots xXA=xsbi+abs(ax-xx); xXB=xsbi+abs(bx-xx); xXC=xsbi+abs(cx-xx); xXD=xsbi+abs(dx-xx); xAB=xsbi+abs(bx-ax); xAC=xsbi+abs(cx-ax); xAD=xsbi+abs(dx-ax); xBC=xsbi+abs(cx-bx); xBD=xsbi+abs(dx-bx); xCD=xsbi+abs(dx-cx); //============================== if(plx==1) { bc=IIf(sup,sbi-xs0,sbi-xr0); tp=IIf(sup,ys0-Vsh,yr0+Vsh); if(Res==1) { col=42; Plot(bi==xCD, "", colorYellow, styleHistogram|styleOwnScale,0,1,xsh);//sample code if lines are preferred PlotText("XA\n | "+NumToStr(abs(xx-ax)-bc,1),xxa+xsh,tp,col,1); PlotText("XB\n | "+NumToStr(abs(bx-xx)-bc,1),xxb+xsh,tp,col,1); PlotText("XC\n | "+NumToStr(abs(cx-xx)-bc,1),xxc+xsh,tp,col,1); PlotText("XD\n | "+NumToStr(abs(xx-dx)-bc,1),xxd+xsh,tp,col,1); PlotText("AB\n | "+NumToStr(abs(bx-ax)-bc,1),xab+xsh,tp,col,1); PlotText("AC\n | "+NumToStr(abs(cx-ax)-bc,1),xac+xsh,tp,col,1); PlotText("AD\n | "+NumToStr(abs(dx-ax)-bc,1),xad+xsh,tp,col,1); PlotText("BC\n | "+NumToStr(abs(cx-bx)-bc,1),xbc+xsh,tp,col,1); PlotText("BD\n | "+NumToStr(abs(dx-bx)-bc,1),xbd+xsh,tp,col,1); PlotText("CD\n | "+NumToStr(abs(dx-cx)-bc,1),xcd+xsh,tp,col,1); } if(Sup==1) { col=34; Plot(bi==xCD, "", colorYellow, styleHistogram|styleOwnScale,0,1,xsh);//sample code if lines are preferred PlotText("| "+NumToStr(abs(xx-ax)-bc,1)+"\nXA",xxa+xsh,tp,col,1); PlotText("| "+NumToStr(abs(bx-xx)-bc,1)+"\nXB",xxb+xsh,tp,col,1); PlotText("| "+NumToStr(abs(cx-xx)-bc,1)+"\nXC",xxc+xsh,tp,col,1); PlotText("| "+NumToStr(abs(xx-dx)-bc,1)+"\nXD",xxd+xsh,tp,col,1); PlotText("| "+NumToStr(abs(bx-ax)-bc,1)+"\nAB",xab+xsh,tp,col,1); PlotText("| "+NumToStr(abs(cx-ax)-bc,1)+"\nAC",xac+xsh,tp,col,1); PlotText("| "+NumToStr(abs(dx-ax)-bc,1)+"\nAD",xad+xsh,tp,col,1); PlotText("| "+NumToStr(abs(cx-bx)-bc,1)+"\nBC",xbc+xsh,tp,col,1); PlotText("| "+NumToStr(abs(dx-bx)-bc,1)+"\nBD",xbd+xsh,tp,col,1); PlotText("| "+NumToStr(abs(dx-cx)-bc,1)+"\nCD",xcd+xsh,tp,col,1); } } //example of plotting line with start at a ****** point f50= ys0+(abs(yr0-ys0)*0.50); Plot(LineArray(xxb,f50,xxd,f50,0),"",29,32,0,0,xsh); //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Title = EncodeColor(55)+ Title = Name() + " " + EncodeColor(32) + Date() + " " + EncodeColor(5) + "{{INTERVAL}} " + EncodeColor(55)+ " Open = "+ EncodeColor(52)+ WriteVal(O,dec) + EncodeColor(55)+ " High = "+ EncodeColor(5) + WriteVal(H,dec) + EncodeColor(55)+ " Low = "+ EncodeColor(32)+ WriteVal(L,dec) + EncodeColor(55)+ " Close = "+ EncodeColor(52)+ WriteVal(C,dec)+ EncodeColor(55)+ " Volume = "+ EncodeColor(52)+ WriteVal(V,1);