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

[amibroker] Re: Corr Matrix via Gfx functions



PureBytes Links

Trading Reference Links

Dave,

It'll take about a minute or so before AB will "unlock".  Once it 
unlocks, right click on the pane and hit parameters.  From there you 
can adjust the watchlist you want.  Make sure there aren't too many 
tickers in the WL....i've found the optimal number of tickers is 
between 5-10.  Great code, today I checked out the correlations 
between Profunds' short real estate fund (SRS) with the 10 year bond 
yield, some misc homebuilders stocks, a few REITs, and a couple real 
estate indexes to make sure that the SRS was indeed negatively 
correlated.  It was, but not as much as I thought!  about -0.35 on 
avg.

Thanks again for sharing PS 



--- In amibroker@xxxxxxxxxxxxxxx, "David Fitch" <davidfitch@xxx> 
wrote:
>
> AB still locks up when I try this code. I cannot place it in a 
pane. AB just stops. I'm wondering if it has anything to do with the 
use of "CategoryGetSymbols" function. According to help, it is 
looking for watchlists 0 to 63. I have deleted the original 0 - 63 
watchlists and replaced them with new ones that are 0-75. Could not 
using the original watchlists cause this problem?
> Thanks
> Dave
> 
>   ----- Original Message ----- 
>   From: vlanschot 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Tuesday, June 05, 2007 1:31 AM
>   Subject: [amibroker] Re: Corr Matrix via Gfx functions
> 
> 
>   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@xxxxxxxxxxxxxxx, "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@xxxxxxxxxxxxxxx, "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="";
>   > >
>   >
>




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/