I had same problem after deleting a number of watchlists. I asked on this forum 
and also sent request for help to support.
Nada
Dave

  ----- Original Message ----- 
  From: jayhart_1972 
  To: [email protected] 
  Sent: Monday, June 04, 2007 10:14 AM
  Subject: [amibroker] Re: Corr Matrix via Gfx functions


  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 [email protected], "vlanschot" <[EMAIL PROTECTED]> 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="";
  >



   

Reply via email to