Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Real time Price Quote Table on Chart - TVK - Afl code for Amibroker (AFL)
I ’ve been downloaded many code from many source codes on the internet.
I’m grateful for all the codes sharing here and there.
I want to contribute the community this code i edit for private using on chart.
My code including:
1. Price marker (style i prefer than other code wrote)
2. Real time Price quote table, i want it on may chart for ease at tracking.
Thanks and feel free to use at your own.
PS: i’m not profestional at coding and newbie to stock trading.
Screenshots
Indicator / Formula
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 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | ///////////////////BY TRAN VAN KHAI - CODE EDIT AND COLLECT FROM INTERNET - 20201104///////////////////// // Collected From https://www.WiseStockTrader.com // Collected From Drawing code & ASK & BID PRICE functions // AND OTHER SOURCES //////////////////////////////////////////////// BDboard = ParamToggle ( "Bid Vs Ask Board" , "Show|Hide" , 1 ); Yhor= Param ( "Horizontal Position" ,1,0.001,1,0.001); Yver= Param ( "Vertical Position" ,0, -15, 100, 1); //Yfont5 = Param("Font Size",0,-0.01,1,0.001); Yx1 = Status ( "pxchartleft" ) ; // left side of chart Yy1 = Status ( "pxcharttop" ); // top side of chart Yx2 = Status ( "pxchartright" ); // right side of chart Yy2 = Status ( "pxchartbottom" ); // bottom side ofthe chart Yx3 = Status ( "pxchartwidth" ); // boarder type size Yy3 = Status ( "pxchartwidth" ); // boarder type size // Downloaded From https://www.WiseStockTrader.com _SECTION_BEGIN ( "Bid Vs Ask Dashboard" ); TextHighlight = ParamToggle ( "Text Highlight" , "No|Yes" , 1 ); HighlightTime = Param ( "Text highlight (sec.)" , 3, 1, 20, 1 ); HighlightColor = ParamColor ( "Highlight color" , colorRose ); ChartID = GetChartID (); Plot ( C , "Close" , ParamColor ( "Color" , colorDefault ), styleNoTitle | ParamStyle ( "Style" ) | GetPriceStyle () ); //StaticVarSet("0PriceSave" + Name(), 0); //Voltemp = StaticVarSet("0VolumeSave" + Name(),0); CellHeight = 20; CellWidth = 100; function PrintInCell( string, row, Col, Color ) { //RandomColor = ColorHSB( mtRandom() * 255, 255, 255 ); //Color = RandomColor; GfxSelectSolidBrush (Color); GfxRectangle ( Col * CellWidth, row * CellHeight, (Col + 1 ) * CellWidth + 1, (row + 1 ) * CellHeight + 1); GfxDrawText ( string, Col * CellWidth + 1, row * CellHeight + 1, (Col + 1 ) * CellWidth, (row + 1 ) * CellHeight, 32+5 ); } if ( BDboard == 1 ) { Bid = GetRTData ( "BidSize" ); //IIf((H==L),0,V*(C-L)/(H-L)); BidPrice = GetRTData ( "Bid" ); Ask = GetRTData ( "AskSize" ); //IIf((H==L),0,V*(H-C)/(H-L)); AskPrice = GetRTData ( "Ask" ); LastPrice = GetRTData ( "Last" ); LastTradeVolume = GetRTData ( "TradeVolume" ); Pricetemp = StaticVarGet ( "0PriceSave" + Name ()); Voltemp = StaticVarGet ( "0VolumeSave" + Name ()); PerformanceCounterBefore = Nz ( StaticVarGet ( "PerformanceCounterBefore" + ChartID ) ); PerformanceCounterNow = GetPerformanceCounter () / 1000; ElapsedSeconds = PerformanceCounterNow - PerformanceCounterBefore; //ExtraHighlight = 0; Colorhead = ColorRGB (42,42,42); Color = colorGrey40 ; Ttl_col= int (Yx3/CellWidth); Ttl_row= int (Yy3/CellHeight); row = Param ( "row" , 0, 0, Ttl_row, 1 ); col = Param ( "col" , 0, 0,Ttl_col, 1 ); GfxSetOverlayMode ( 0 ); GfxSelectFont ( "Tahoma" , 8.5 ); GfxSetBkMode ( 1 ); if (TextHighlight AND (Pricetemp != LastPrice OR Voltemp != LastTradeVolume)) { StaticVarSet ( "PerformanceCounterBefore" + ChartID, PerformanceCounterNow ); PerformanceCounterNow = GetPerformanceCounter () / 1000; ElapsedSeconds = PerformanceCounterNow - PerformanceCounterBefore; if (Pricetemp < LastPrice) GfxSetTextColor ( colorGreen ); else if (Pricetemp > LastPrice) GfxSetTextColor ( colorRed ); else GfxSetTextColor ( colorOrange ); } if ( TextHighlight AND ElapsedSeconds <= HighlightTime) { Color = HighlightColor; } PrintInCell( "Bid = " + BidPrice , row+0,col+0,Colorhead ); PrintInCell( "Price" , row+0,col+1,Colorhead); PrintInCell( "Volume" , row+0,col+2,Colorhead ); PrintInCell( "Ask = " + AskPrice, row+0,col+3,Colorhead ); PrintInCell( "" + NumToStr (Bid,8.0), row+1,col+0, colorBlue ); PrintInCell( "" + LastPrice, row+1,col+1,Color ); PrintInCell( "" + LastTradeVolume, row+1,col+2,Color ); PrintInCell( "" + NumToStr (Ask,8.0) , row+1,col+3, colorOrange ); StaticVarSet ( "0PriceSave" + Name (), LastPrice); StaticVarSet ( "0VolumeSave" + Name (), LastTradeVolume); //GfxSetOverlayMode( 0 ); } _SECTION_END (); _SECTION_BEGIN ( "Price Line Marker" ); //Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); // the following drawing lines code is adapted from a post found in the AmiBroker Community forum: // https://forum.amibroker.com/t/help-with-iif-function-in-a-loop-horizontal-lines-with-labels-how-to-check-if-the-code-is-efficient/7187/10 // added some logic to draw the lines only till the end of each intraday session fvbi = Status ( "firstvisiblebarindex" ); lvbi = Status ( "lastvisiblebarindex" ); pxchr = Status ( "pxchartright" ); LVBI = LastVisibleValue( BarIndex () ); i= BarCount - 1; Colorm = colorYellow ; PriceLevel = ParamField ( "PriceField" , field = 3 ); Spot = EndValue (PriceLevel); GfxSetOverlayMode ( 0 ); //GfxSetZOrder(-1); GfxSelectFont ( "Arial narrow" , 9, 700, False ); //RandomColor = ColorHSB( mtRandom() * 255, 255, 255 ); //Spot = C[i]; GfxSetCoordsMode( 1 ); GfxSelectPen ( Colorm, 0, 2 ); GfxSelectSolidBrush ( Colorm ); GfxCircle ( i, Spot, -3 ); GfxMoveTo ( i, Spot ); GfxLineTo ( Min ( i + 5, lvbi ), Spot ); GfxSetCoordsMode( 2 ); //GfxMoveTo( i, Spot ); GfxLineTo (Yx2, Spot ); GfxSetCoordsMode( 2 ); GfxSetTextColor ( Colorm ); GfxTextOut ( "" + Spot, pxchr - 50, Spot ); _SECTION_END (); Plot ( C , "Close" , ParamColor ( "Color" , colorDefault ), styleNoTitle | ParamStyle ( "Style" ) | GetPriceStyle () ); |
3 comments
Leave Comment
Please login here to leave a comment.
Back
This is really helpful for intraday traders.
Thanks a lot.
Somehow values are not displayed on chart. Please suggest
you could try to change line 73:
//GfxSetOverlayMode( 0 );
GfxSetZOrder(0);//layer may negative or positive as your wish to lay on top/or under