PureBytes Links
Trading Reference Links
|
Thanks for sharing PS, pretty cool code!
vlanschot <vlanschot@xxxxxxxxx> wrote: Make sure you choose a watchlist (via Parameters) that has at least 2 but does not have too many securities in it, say less than 50 if you use 1 pane. Also, as is generally the case in AB, cross-sectional analysis (i.e. matrix calculations across stocks) is very computer intensive. PS --- In amibroker@xxxxxxxxxps.com, "jayhart_1972" <jayhart_1972@ ...>
wrote: > > PS - thanks for sharing, looks interesting. BTW, has anyone got this > to work? When I applied the indicator I get nothing but a blue screen > > J > > --- In amibroker@xxxxxxxxxps.com, "vlanschot" <vlanschot@> wrote: > > > > Thought I'd share the following code. > > > > PS > > > > //Simple application of the new Gfx functions, basically calculating > > //the correlation matrix of any WL of choice. You can easily adjust > > //this code to move to Var-Covar matrix, etc. > > // PS 28/05/07 > > > > > > GfxSetOverlayMode(2); // Show Only Matrix > > > > function NrSecs(ListType,ListNr) > > { > > global NrPosPrices; > > > > if(ListType==1) ExtrList =
CategoryGetSymbols > > (categoryGroup,ListNr); > > else if(ListType==2)ExtrList = CategoryGetSymbols > > (categoryWatchlist,ListNr); > > else if(ListType==3)ExtrList = CategoryGetSymbols > > (categoryIndustry,ListNr); > > > > NrSecurs=0; > > NrPosPrices=0; > > > > for( n=0; (Ticker=StrExtract( ExtrList, n))!= ""; n++) > > { > > NrSecurs=NrSecurs+1; > > SetForeign(Ticker); > > Prijs=C; > > RestorePriceArrays(); > > NrPosPrices=NrPosPrices+IIf(Prijs!=Null AND > > Prijs>0,1,0); > > } > > return NrSecurs; > > } > > > > function PrintTxtInCell( Str, row, Col, CellWidth, CellHeight, > > HorzAdj, VertAdj, Formaat ) > > { > > GfxDrawText( Str, Col * CellWidth + HorzAdj, row * CellHeight
+ > > VertAdj, (Col + 1 ) * CellWidth, (row + 1 ) * CellHeight, Formaat); > > } > > > > function PrintInCell( val, row, Col, CellWidth, CellHeight, > HorzAdj, > > VertAdj ) > > { > > GfxDrawText( NumToStr(val), Col * CellWidth + HorzAdj, row * > > CellHeight + VertAdj, (Col + 1 ) * CellWidth, (row + 1 ) * > > CellHeight, 1|32|4); > > } > > > > > > //CH = Param("CellH",20,10,100,5); > > //CW = Param("CellW",100,10,300,5); > > HA=0; > > VA=0; > > > > String = "" ; > > for ( x = 0 ; x < 200 ; x++ ) > > { > > WList = CategoryGetName( categoryWatchlist, x ); > > if (WList != "" ) > > { > > String = String + WList +"," ; > > // Creates a list of WatchLists, NOT symbols !!! > > } > >
} > > WatchList = ParamList ( "Watch List", String ); > > > > WLnr=CategoryFind(WatchList,categoryWatchlist); > > WLSymbols = CategoryGetSymbols(categoryWatchlist,WLnr); > > > > NrSymbs = NrSecs(2,WLNr); > > > > CW= Status("pxwidth")/(NrSymbs+1);// In order to allow Rowheadings > > CH = Status("pxheight")/(NrSymbs+1);//Colheadings > > > > //GfxSetTextAlign(6 | 24); > > > > RetLB = Param("RetLB",1,1,100); > > CorrLB = Param("CorrLB",30,5,256); > > > > Start = BarCount-RetLB; > > > > ActBar = Min(BarCount-1,LastValue(SelectedValue(BarIndex()))); > > ActD = LastValue(SelectedValue(DateTime())); > > > > GfxSelectFont( "MS Serif", CH/4,800); > > PrintTxtInCell( "CorrM
@:\n"+NumToStr(ActD,formatDateTime), 0, > 0,CW, > > CH, HA, VA, 1); > > > > for ( x = 0 ; (Ticker = StrExtract ( WLSymbols, x ))!="" ; x++ ) > > { > > SetForeign(Ticker); > > RetTick = ROC(C,RetLB); > > FN = FullName(); > > RestorePriceArrays(); > > > > GfxSelectFont( "MS Serif", CH/4,800); > > PrintTxtInCell( Ticker, 0, x+1 ,CW, CH, HA, VA,1|32|4 ); > > > > GfxSelectPen( colorBlue ); > > > > for( i = 0; (Ticker2 = StrExtract ( WLSymbols, i))!="" ; i++ ) > > { > > SetForeign(Ticker2); > > RetTick2 = ROC(C,RetLB); > > FN2 = FullName(); > > RestorePriceArrays(); > > > > if (Ticker2 == Ticker) Corr=1; > > else Corr = Correlation(RetTick, RetTick2, CorrLB); > > > > GfxSelectFont( "MS Serif",
CH/4,800); > > PrintTxtInCell( Ticker2, i+1, 0, CW, CH, HA, > > VA,1|32|4); > > GfxSelectFont( "MS Serif", CH/4); > > Kleur = IIf(Corr[ActBar]>=0, colorGreen,colorRed); > > GfxSetTextColor(Kleur); > > PrintInCell( Corr[ ActBar ], i+1, x+1, CW, CH, HA, > > VA); > > //PrintInCell( Corr[ ActBar ] , i+1, x+1); > > GfxSetTextColor(colorBlack); > > > > GfxMoveTo( 0, (i+1) * CH); > > GfxLineTo( (x+2) * CW, (i+1) * CH );// Columns > > } > > > > GfxMoveTo( 0, (x+1)*CH); // Move to end of last column > > //GfxLineTo( 6 * CW, i * CH ); > > } > > > > for( Col = 1; Col < NrSymbs+2; Col++ ) > > { > > GfxMoveTo( Col * CW, 0); > > GfxLineTo( Col * CW, (NrSymbs+1) * CH ); > > } > > > > > > Title=""; >
> >
Luggage? GPS? Comic books?
Check out fitting gifts for grads at Yahoo! Search.
__._,_.___
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
SPONSORED LINKS
__,_._,___
|