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