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 ....
gfxpolygon example for Amibroker (AFL)
Copy & Paste Friendly
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | // example code plotting convergence patterns, coded by E.M.Pottasch 2013 RequestTimedRefresh (0.1, True ); xx= BarIndex ();x=xx;Lx= LastValue (x); rightStrength= Param ( "Fractal Pivot Right side Strength" ,5,1,50,1); leftStrength= Param ( "Fractal Pivot Left side Strength" ,10,1,50,1); dispbe= ParamToggle ( "Display bearish Convergence" , "Off|On" ,1); dispbu= ParamToggle ( "Display bullish Convergence" , "Off|On" ,1); pk= H > Ref ( HHV ( H ,leftStrength),-1) AND Ref ( HHV ( H ,rightStrength),rightStrength)<= H ; tr= L < Ref ( LLV ( L ,leftStrength),-1) AND Ref ( LLV ( L ,rightStrength),rightStrength)>= L ; px0= ValueWhen (pk,x,0); tx0= ValueWhen (tr,x,0); px1= ValueWhen (pk,x,1); tx1= ValueWhen (tr,x,1); px2= ValueWhen (pk,x,2); tx2= ValueWhen (tr,x,2); ph0= ValueWhen (pk, H ,0); tl0= ValueWhen (tr, L ,0); ph1= ValueWhen (pk, H ,1); tl1= ValueWhen (tr, L ,1); ph2= ValueWhen (pk, H ,2); tl2= ValueWhen (tr, L ,2); ll=tr AND tl1<tl2; hl=tr AND tl1>tl2; hh=pk AND ph1>ph2; lh=pk AND ph1<ph2; dt=pk AND ph1==ph2; db=tr AND tl1==tl2; ll_h= IIf (ll,1,0); hl_h= IIf (hl,2,0); hh_h= IIf (hh,3,0); lh_h= IIf (lh,4,0); dt_h= IIf (dt,5,0); db_h= IIf (db,6,0); combi=ll_h+hl_h+lh_h+hh_h+dt_h+db_h; t0= ValueWhen (combi,combi,0); t1= ValueWhen (combi,combi,1); t2= ValueWhen (combi,combi,2); t3= ValueWhen (combi,combi,3); t4= ValueWhen (combi,combi,4); t5= ValueWhen (combi,combi,5); // bearisch Convergence pattern beConv=pk AND t1==4 AND t2==2; beAx= ValueWhen (beConv,tx2);beAy= ValueWhen (beConv,tl2); beBx= ValueWhen (beConv,px2);beBy= ValueWhen (beConv,ph2); beCx= ValueWhen (beConv,tx1);beCy= ValueWhen (beConv,tl1); beDx= ValueWhen (beConv,px1);beDy= ValueWhen (beConv,ph1); // bullish Convergence pattern buConv=tr AND t1==2 AND t2==4; buAx= ValueWhen (buConv,px2);buAy= ValueWhen (buConv,ph2); buBx= ValueWhen (buConv,tx2);buBy= ValueWhen (buConv,tl2); buCx= ValueWhen (buConv,px1);buCy= ValueWhen (buConv,ph1); buDx= ValueWhen (buConv,tx1);buDy= ValueWhen (buConv,tl1); GraphXSpace =5; SetChartBkColor ( ColorRGB (0,0,0)); SetChartOptions (0, chartShowDates ); SetBarFillColor ( IIf ( C > O , colorGreen , IIf ( C <= O , colorRed , colorLightGrey ))); Plot ( C , "Price" , IIf ( C > O , colorDarkGreen , IIf ( C <= O , colorDarkRed , colorLightGrey )),64,0,0,0,0); PlotShapes ( shapeSmallCircle *tr, IIf (Lx- ValueWhen (tr,x)>=rightStrength, ColorRGB (0,100,0), colorWhite ),0, L ,-10); PlotShapes ( shapeSmallCircle *pk, IIf (Lx- ValueWhen (pk,x)>=rightStrength, ColorRGB (255,0,0), colorWhite ),0, H ,10); abcdy_up=27; abcdy_dn=15; function GetVisibleBarCount() { lvb= Status ( "lastvisiblebar" ); fvb= Status ( "firstvisiblebar" ); return Min (lvb-fvb, BarCount -fvb); } function GfxConvertBarToPixelX(bar) { lvb= Status ( "lastvisiblebar" ); fvb= Status ( "firstvisiblebar" ); pxchartleft= Status ( "pxchartleft" ); pxchartwidth= Status ( "pxchartwidth" ); return Nz (pxchartleft+bar*pxchartwidth/(lvb-fvb+1)); } function GfxConvertValueToPixelY(value) { local Miny,Maxy,pxchartbottom,pxchartheight; Miny= Status ( "axisminy" ); Maxy= Status ( "axismaxy" ); pxchartbottom= Status ( "pxchartbottom" ); pxchartheight= Status ( "pxchartheight" ); return Nz (pxchartbottom- floor (0.5+(Value-Miny)*pxchartheight/(Maxy-Miny))); } AllVisibleBars=GetVisibleBarCount(); fvb= Status ( "firstvisiblebar" ); for (i=0;i<AllVisibleBars;i++) { if (beConv[i+fvb] AND dispbe) { GfxSetOverlayMode (1); GfxSelectPen ( ColorRGB (100,0,0),2); GfxSelectSolidBrush ( ColorRGB (20,0,0)); lvix=i+fvb; GfxPolygon ( GfxConvertBarToPixelX(i-(beDx[lvix]-beAx[lvix])),GfxConvertValueToPixelY(beAy[lvix]), GfxConvertBarToPixelX(i-(beDx[lvix]-beBx[lvix])),GfxConvertValueToPixelY(beBy[lvix]), GfxConvertBarToPixelX(i-(beDx[lvix]-beDx[lvix])),GfxConvertValueToPixelY(beDy[lvix]), GfxConvertBarToPixelX(i-(beDx[lvix]-beCx[lvix])),GfxConvertValueToPixelY(beCy[lvix])); } if (buConv[i+fvb] AND dispbu) { GfxSetOverlayMode (1); GfxSelectPen ( ColorRGB (0,100,0),2); GfxSelectSolidBrush ( ColorRGB (0,20,0)); lvix=i+fvb; GfxPolygon ( GfxConvertBarToPixelX(i-(buDx[lvix]-buAx[lvix])),GfxConvertValueToPixelY(buAy[lvix]), GfxConvertBarToPixelX(i-(buDx[lvix]-buBx[lvix])),GfxConvertValueToPixelY(buBy[lvix]), GfxConvertBarToPixelX(i-(buDx[lvix]-buDx[lvix])),GfxConvertValueToPixelY(buDy[lvix]), GfxConvertBarToPixelX(i-(buDx[lvix]-buCx[lvix])),GfxConvertValueToPixelY(buCy[lvix])); } } |