Future plotting of time and Price
Future plotting of Time and Price revolves around forecasting future price levels using historical price and time data. With Amibroker AFL, traders can develop algorithms or indicators that plot potential future price levels based on time-based patterns or historical data analysis. Amibroker data feed integration facilitates up-to-date information for precise future price plotting.
/_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(CO,51,IIf(C Ref(HLAvg,-1),H,L))); za=Zig(zp,pct); pR=Ref(za,-1) Ref(za,1);//pk pS=Ref(za,-1)>za AND zaxr0; Res = xr0>xs0; xsh = 50; xsbi = IIf(Res, xr0-xsh, xs0-xsh);//xstart za=Zig(zp,0.01); pR=Ref(za,-1) Ref(za,1);//pk pS=Ref(za,-1)>za AND za=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 future 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);