My codes work.
I don't know how you copied it but the formula you have provided below is NOT 
the same as I provided.
Specifically there is a SPACE between "ra" and "nge" in Status("lastbarinra 
nge"); which is wrong.
My original formula was different.

You need to copy paste PERFECTLY, without any addition/truncation. Go to 
original post and copy-paste AGAIN.

Best regards,
Tomasz Janeczko
amibroker.com
  ----- Original Message ----- 
  From: Jason Hart 
  To: [email protected] 
  Sent: Wednesday, June 06, 2007 4:56 PM
  Subject: Re: [amibroker] Re: Corr Matrix via Gfx functions


  TJ - I don't want to beat a dead horse here but I can't get your formula to 
work, when I run it in AA I do not get any results.  Here is your formula again:

  symlist = CategoryGetSymbols( categoryWatchlist, 22 ); 
  Filter = Status("lastbarinra nge"); 
  for( i = 0; ( sym = StrExtract( symlist, i ) ) != ""; i++ ) 
  { 
  Corr = Correlation( C, Foreign( sym, "C" ), 252 ); 
  Clr = 32 + SelectedValue( Corr ) * 32; 
  AddColumn( Corr, sym, 1.2, ColorHSB( 128+Clr, 255, 255 ) , 
  ColorHSB( Clr, 255, 255 ) ); 
  } 

  _______________________________

  Here is a correlation matrix formula I use for AA which works nicely, but it 
is very different from the one you posted.  I'm curious if the results between 
the 2 formulas would be vastly different.  Here's mine:
  // Exploration to create
  //Correlation matrix
  // Be sure to set
  //"Apply to" to desired wishlist Name
  // Also, change the watchlist number under categorywatchlist to the WL you 
want.

  Buy=Sell=Short=Cover=0;

  Filter = C > .01;

  AddTextColumn(FullName(),"Ticker",1.0); 
  list =
  GetCategorySymbols(
  categoryWatchlist,
  22); 
  for(
  NumTickers=0; NumTickers < 99 AND StrExtract(
  list, NumTickers ) !=
  "";
  NumTickers++ ); 


  for(
  Col=0;
  Col<NumTickers; Col++) 
  { 
  Ticker1 =
  Name(); 
  Ticker2 =
  StrExtract( list, Col);
  Var1 = 
  ROC(Foreign(Ticker1, "C"), 1);

  Var2 =
  ROC(Foreign(Ticker2,"C"),1);

  Test =
  Correlation( Var1, Var2,
  260 ); 
  Color =
  IIf(Test>.45,
  colorBrightGreen,
  IIf(Test<0,
  colorRed,
  colorYellow)); 
  Color =
  IIf(Ticker1==Ticker2,
  1, Color); 

  AddColumn( Test,
  Ticker2, 1.3,
  1, Color); 
  } 


  vlanschot <[EMAIL PROTECTED]> wrote:
    Ouch, if that is not a slap in the face for contributing code (with 
    explanation of how NOT to use it), I don't know what is.

    Guess it was my last one.

    PS
    --- In [email protected], "Tomasz Janeczko" <[EMAIL PROTECTED]> 
    wrote:
    >
    > Frankly speaking running correlation matrix inside INDICATOR window
    > is a VERY VERY BAD idea. Gfx functions ARE NOT intended to be used
    > in areas where better and less time-consuming methods exists for 
    years.
    > 
    > It makes no sense to put this into indicator code because
    > it will be re-computed with every refresh (mouse click on chart).
    > A rule for indicator code is that IT MUST be written so it executes 
    BELOW 1 second.
    > Any formula that takes longer than 1 second to execute should NOT 
    be used
    > as indicator.
    > 
    > Correlation matrices like that are WAY better to be done inside AA 
    window.
    > 
    > Here is the formula (EXPLORATION):
    > 
    > symlist = CategoryGetSymbols( categoryWatchlist, 0 ); 
    > 
    > Filter = Status("lastbarinrange"); 
    > for( i = 0; ( sym = StrExtract( symlist, i ) ) != ""; i++ ) 
    > { 
    > Corr = Correlation( C, Foreign( sym, "C" ), 252 ); 
    > 
    > Clr = 32 + SelectedValue( Corr ) * 32; 
    > AddColumn( Corr, sym, 1.2, ColorHSB( 128+Clr, 255, 255 ) , 
    ColorHSB( Clr, 255, 255 ) ); 
    > } 
    > 
    > Best regards,
    > Tomasz Janeczko
    > amibroker.com
    > ----- Original Message ----- 
    > From: David Fitch 
    > To: [email protected] 
    > Sent: Tuesday, June 05, 2007 6:31 PM
    > Subject: Re: [amibroker] Re: Corr Matrix via Gfx functions
    > 
    > 
    > 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: [email protected] 
    > 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 [email protected], "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 [email protected], "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="";
    > > >
    > >
    >






------------------------------------------------------------------------------
  Pinpoint customers who are looking for what you sell.  

Reply via email to