PureBytes Links
Trading Reference Links
|
Hi,
Thank you for sharing this code. I use Weekly charts and have
amended the code to show weekly data. However,I do not use Volume in
my Charts. I find Jim's code very informative but I would like to
remove the bits relating to Volume. I have tried to edit the code
but keep ending up in a mess with numerous error messages.
If Jim or anybody else could amend the code I would be very grateful.
Thanks
Peter
--- In amibroker@xxxxxxxxxxxxxxx, James Hutchison <phutch@xxx> wrote:
>
> This is an example of how helpful it is to be able to draw our
own creations.
> The code is attached
> Jim Hutchison
>
> []
>
>
>
> GfxSetOverlayMode(2);
> Page = Param("Page #",0,0,12,1);
> listNum= Param("Watch List Num" ,0,0,50,1); ;//enter watchlist
number
> ChartsWiNum = Param("# Charts Wide",3,1,4,1);
> ChartsHiNum = Param("# Charts High",3,1,4,1);
> ChartMargin = 5 ;
> DataMargin = 20 ;
> NumCharts = ChartsWiNum * ChartsHiNum ;
> ScreenHeight = Status("pxheight") ;
> SceernWidth = Status("pxwidth") ;
> ChartHeight = ScreenHeight / ChartsHiNum -2 ;
> Width = SceernWidth / ChartsWiNum - 2;
> BarChartHeight= (0.80) * ChartHeight - DataMargin;
> VolChartHeight = ChartHeight - BarChartHeight - DataMargin ;
> NumberPriceLevels = BarChartHeight / 25;
> BarChartWidth= Width - 45;
> Bars =Param("Number Of Bars", 195,50,250,1) ;
> BarWidth = (BarChartWidth - ChartMargin * 3) / Bars ;
> LastBar = BarCount ;
> FirstBar = LastBar - Bars;
> _N(list = CategoryGetSymbols( categoryWatchlist, listnum ));
> printf("Watch List Name\n");
> WL = CategoryGetName( categoryWatchlist, listnum );
>
> s = Page * NumCharts;
> /*
> _TRACE("ScreenHeight "+WriteVal(ScreenHeight));
> _TRACE("ChartHeight "+WriteVal(ChartHeight));
> _TRACE("VolChartHeight "+WriteVal(VolChartHeight));
> _TRACE("BarChartHeight "+WriteVal(BarChartHeight));
> */
> for( x = 0; x < ChartsHiNum ; x++ )
> {
> for( i = 0; i < ChartsWiNum ; i++ )
> {
> sym = StrExtract( list, s );
> if(sym != "")
> {
> x1 = Width * i + 5;
> y1 = ChartHeight * x + 5;
> x2 = Width * (i + 1);
> y2 = ChartHeight * (x + 1);
> GfxSelectPen( colorBlack );
> GfxRectangle( x1, y1, x2, y2 );
>
> SetForeign(sym);
>
> s++;
> priceHigh = 0;
> VolHigh = 0;
> priceMin = 1000000;
> for( z = FirstBar; z < LastBar ; z++ )
> {
> Vol = V[z];
> BarH = H[z];
> BarL = L[z];
> if( Vol > VolHigh )
> {
> VolHigh = Vol;
> }
> if( BarH > priceHigh )
> {
> priceHigh = BarH;
> }
> if( BarL < priceMin )
> {
> priceMin = BarL;
> }
> }
>
> LOpen = O[LastBar-1];
> LHigh = H[LastBar-1];
> LLow = L[LastBar-1];
> LClose = C[LastBar-1];
> LVol = V[LastBar-1];
> GfxSelectFont("Tahoma", 9 );
> GfxSetTextColor(colorBlack);
> GfxTextOut(sym + " O-" +LOpen + " H-" +LHigh
+ " L-" +LLow + " C-" +LClose + " Vol-" +LVol/ 1000000+ " M",
x1+5, y1+2);
>
>
> VolRatio = VolChartHeight / VolHigh ;
> Range = priceHigh - priceMin;
> Ratio = BarChartHeight / Range ;
> PriceLineLevel = Range / NumberPriceLevels;
> yHi=(((priceHigh - priceMin )* Ratio) -
BarChartHeight) * -1 + y1 + DataMargin;
> GfxTextOut(WriteVal(priceHigh, 1.2), x1 +
BarChartWidth, yHi -8);
> GfxSelectPen( colorLightGrey );
> GfxMoveTo( x1 , yHi );
> GfxLineTo( x1 + BarChartWidth -5, yHi );
>
> /*
> _TRACE("x "+WriteVal(x));
> _TRACE("i "+WriteVal(i));
> _TRACE("VolHigh "+WriteVal(VolHigh));
> _TRACE("VolChartHeight "+WriteVal(VolChartHeight));
> _TRACE("VolRatio "+WriteVal(VolRatio,1.8));
> _TRACE("Ratio "+WriteVal(Ratio));
> _TRACE("PriceLineLevel "+WriteVal(PriceLineLevel));
> */
> for( z = 0; z < NumberPriceLevels ; z++ )
> {
> PriceLevel = PriceLineLevel*z + priceMin;
>
> yHi=(((PriceLevel - priceMin )* Ratio) -
BarChartHeight) * -1 + y1 + DataMargin;
> GfxTextOut(WriteVal(PriceLevel, 1.2), x1 +
BarChartWidth, yHi -8);
> GfxSelectPen( colorLightGrey );
> GfxMoveTo( x1 , yHi );
> GfxLineTo( x1 + BarChartWidth -5, yHi );
> }
>
> HighestLast = 0;
> w = 1;
> for( z = FirstBar; z < LastBar ; z++ )
> {
> BarH = H[z];
> BarL = L[z];
> BarO = O[z];
> BarC = C[z];
> Vol = V[z];
>
> vHi= Vol * VolRatio - VolChartHeight + y2;
> yHi=(((BarH - priceMin )* Ratio)-
BarChartHeight ) * -1 + y1 + DataMargin;
> yLo= (((BarL - priceMin )* Ratio) -
BarChartHeight) * -1 + y1 + DataMargin;
>
>
> if( BarH > HighestLast )
> {
> HighestLast = BarH;
> GfxSelectPen( colorBlue );
> }
>
> else
> {
> GfxSelectPen( colorRed );
> }
>
> GfxMoveTo( BarWidth * w + x1 + ChartMargin ,
yHi );
> GfxLineTo( BarWidth * w + x1 + ChartMargin,
yLo );
> if( BarO > BarC)
> {
> GfxSelectPen( colorRed );
> }
> else
> {
> GfxSelectPen( colorLime );
> }
> GfxMoveTo( BarWidth * w + x1 + ChartMargin ,
vHi );
> GfxLineTo( BarWidth * w + x1 + ChartMargin,
y2 );
> w++;
>
>
> }
> RestorePriceArrays();
> }
> }
> }
>
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|