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
///////////////////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