[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Corr Matrix via Gfx functions



PureBytes Links

Trading Reference Links

PS
 
Thanks for this...Simple presentation with new Gfx, clear.
Very nice
Thanks
Dave
 
----- Original Message -----
From: vlanschot
Sent: Monday, May 28, 2007 5:25 AM
Subject: [amibroker] Re: Corr Matrix via Gfx functions

Grant,

RetLB stands for the Return LookBack period, in this case I only want
to use the 1-period return series. CorrLB stands for the Correlation
LookBack period, in other words, how far back should the correlation
between return series 1 and 2 be calculated.

PS
--- In amibroker@xxxxxxxxxps.com, Grant Noble <gruntus@xxx> wrote:
>
> Very slick! Thanks.
> Can you give a dummies explanation of the parameters RetLB and
CorrLB ?
> GRANT
>
> 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="";
> >
> >
> >
> >
> >
> > 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
> >
> >
> >
> >
> >
>

__._,_.___

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
Investment management software Investment property software Investment software
Investment tracking software Return on investment software

Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___