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

RE: [amibroker] Re: to HERMAN: N100 Correlation table



PureBytes Links

Trading Reference Links




<FONT face=Arial color=#0000ff 
size=2>Very nice DT, thanks! I'll be using that frequently. Below is 
what the Correlation matrix, with help from the list, developed into. 


  <FONT 
  face=Arial>// Exploration to create Correlation 
  matrix
  <FONT 
  color=#0000ff><FONT 
  color=#ff0000>Buy=<FONT 
  color=#ff0000>Sell=<FONT 
  color=#ff0000>Short=<FONT 
  color=#ff0000>Cover=<FONT 
  color=#ff00ff>0<FONT 
  color=#000000>; <FONT 
  color=#ff0000>Filter = 
  Status(<FONT 
  color=#ff00ff>"LastBarInTest"<FONT 
  face=Arial>); list = <FONT 
  color=#0000ff>GetCategorySymbols( <FONT 
  color=#ff0000>categoryWatchlist, 
  2<FONT 
  face=Arial> ); <FONT 
  color=#ff0000>for( 
  NumTickers=0; 
  (StrExtract( list, 
  NumTickers )) != ""<FONT 
  size=2>; NumTickers++ ); <FONT 
  color=#0000ff>AddTextColumn(<FONT 
  color=#0000ff>Name(),<FONT 
  color=#ff00ff>"Ticker",<FONT 
  color=#ff00ff>1.0<FONT 
  color=#000000>); <FONT 
  color=#ff0000>for( 
  Col=0<FONT 
  face=Arial>; Col<NumTickers; Col++) 
     {    Ticker1 = <FONT 
  color=#0000ff>Name<FONT 
  color=#000000>();    Ticker2 = <FONT 
  color=#0000ff>StrExtract<FONT 
  face=Arial>( list, Col);    Var1 = 
  Foreign<FONT 
  color=#000000>(Ticker1,<FONT 
  color=#ff00ff>"C"<FONT 
  color=#000000>);    Var2 = <FONT 
  color=#0000ff>Foreign(Ticker2,<FONT 
  color=#ff00ff>"C"<FONT 
  color=#000000>);    Test = <FONT 
  color=#0000ff>Correlation( Var1, Var2, <FONT 
  color=#ff00ff>8<FONT 
  color=#000000> );    Color = <FONT 
  color=#0000ff>IIf(Test><FONT 
  color=#ff00ff>0, <FONT 
  color=#ff0000>colorBrightGreen, 
  IIf(Test<<FONT 
  color=#ff00ff>0, <FONT 
  color=#ff0000>colorRed, 
  <FONT 
  color=#ff0000>colorWhite<FONT 
  size=2>));    Color = 
  IIf(Ticker1==Ticker2, 
  1<FONT 
  face=Arial>, Color);    <FONT 
  color=#0000ff>AddColumn( Test, Ticker2, 
  1.3, <FONT 
  color=#ff00ff>1, 
  Color);    } 
<FONT face=Arial 
size=2> 
<IMG alt="" hspace=0 
src="jpg00358.jpg" align=baseline border=0>
<FONT face=Arial color=#0000ff 
size=2> 

  <FONT face=Tahoma 
  size=2>-----Original Message-----From: DIMITRIS TSOKAKIS 
  [mailto:TSOKAKIS@xxxxxxxxx]Sent: November 28, 2003 1:46 
  PMTo: amibroker@xxxxxxxxxxxxxxxSubject: [amibroker] Re: 
  to HERMAN: N100 Correlation tableHerman,There is 
  no need to write the 100 tickers. If they belong to WL10, thenlist = 
  GetCategorySymbols( categoryWatchlist, 10 );tickerlist="";for( i = 0; 
  ( sym = StrExtract( list, i ) ) != ""; i++ 
  ){tickerlist=tickerlist+sym+",";}Title=tickerlist;The 
  advantage is that you don't have to correct the code after any N100 
  change, it is done automatically as soon as you correct WL10.Note also 
  that StrExtract()  needs a "comma-separated list of items", that's 
  why the above +",". The result will have a "," at the end, but this is not 
  a problem.Dimitris Tsokakis--- In amibroker@xxxxxxxxxxxxxxx, "Dave 
  Merrill" <dmerrill@xxxx> wrote:> I've lost track of the 
  original context, but could you do this even more> easily by 
  iterating through the tickers in a known watchlist?> > 
  Dave> >   this is actually the "data" type statement I 
  have been looking for....> wanted to store individual thresholds in 
  some easy way - this is easier than> a file system :-)> 
  >   herman>     -----Original 
  Message----->     From: Tomasz Janeczko 
  [mailto:amibroker@xxxx]>     Sent: November 28, 
  2003 7:37 AM>     To: 
  amibroker@xxxxxxxxxxxxxxx>     Subject: Re: 
  [amibroker] Re: to HERMAN: N100 Correlation table> > 
  >     Hello,> 
  >     It would be shorter to write this that 
  way:> >     TickerList => 
  "AAPL,ADBE,ADCT,ALTR,AMAT,AMG,AMZ,APCC,APOL,BBBY,BEAS,BIIB,BMET,BRCD,BRCM,CD> 
  WC,CEPH,"+> > 
  "CHIR,CHKP,CHRW,CIE,CMCSA,CMVT,COST,CPWR,CSCO,CTAS,CTXS,DELL,DISH,DLTR,EBAY,> 
  ERICY,ERTS,"+> > 
  "ESRX,EXPD,FAST,FHCC,FISV,FLEX,GEZ,GILD,GTX,HGSI,HSIC,IACI,ICOS,ITC,ITU,IVG,> 
  JDSU,JPR,KLAC,"+> > 
  "LAMR,LLTC,LCR,MCHP,MEDI,MERQ,MLM,MST,MOLX,MSFT,MXIM,TAP,VDA,VLS,XTL,ORCL,PA> 
  YX,PCAR,PDCO,"+> > 
  "PETM,PIXR,PSFT,PTE,QCOM,QLGC,RFMD,ROST,RYAAY,SAM,SBUX,SEBL,SIAL,SDK,SPS,SPL> 
  S,SPOT,SSCC,"+>     
  "SUW,SYMC,TEVA,TLAB,VRS,VRTS,WFMI,XLX,XRAY,YHOO";> 
  >     Ticker = StrExtract( TickerList, n );> 
  >     Hope this helps.> 
  >     Best regards,>     
  Tomasz Janeczko>     
  amibroker.com>       ----- Original 
  Message ----->       From: dirk 
  schreiber>       To: 
  amibroker@xxxxxxxxxxxxxxx>       Sent: 
  Thursday, November 27, 2003 9:58 
  PM>       Subject: Re: [amibroker] Re: to 
  HERMAN: N100 Correlation table> > 
  >       hi nand,> 
  >       the #include file was posted by 
  herman before, it goes like this:> 
  >       // Include 
  file>       Ticker 
  =>       WriteIf(n==0 , 
  "AAPL",>       WriteIf(n==1 , 
  "ADBE",>       WriteIf(n==2 , 
  "ADCT",>       WriteIf(n==3 , 
  "ALTR",>       WriteIf(n==4 , 
  "AMAT",>       WriteIf(n==5 , 
  "AMGN",>       WriteIf(n==6 , 
  "AMZN",>       WriteIf(n==7 , 
  "APCC",>       WriteIf(n==8 , 
  "APOL",>       WriteIf(n==9 , 
  "BBBY",>       WriteIf(n==10 , 
  "BEAS",>       WriteIf(n==11 , 
  "BIIB",>       WriteIf(n==12 , 
  "BMET",>       WriteIf(n==13 , 
  "BRCD",>       WriteIf(n==14 , 
  "BRCM",>       WriteIf(n==15 , 
  "CDWC",>       WriteIf(n==16 , 
  "CEPH",>       WriteIf(n==17 , 
  "CHIR",>       WriteIf(n==18 , 
  "CHKP",>       WriteIf(n==19 , 
  "CHRW",>       WriteIf(n==20 , 
  "CIEN",>       WriteIf(n==21 , 
  "CMCSA",>       WriteIf(n==22 , 
  "CMVT",>       WriteIf(n==23 , 
  "COST",>       WriteIf(n==24 , 
  "CPWR",>       WriteIf(n==25 , 
  "CSCO",>       WriteIf(n==26 , 
  "CTAS",>       WriteIf(n==27 , 
  "CTXS",>       WriteIf(n==28 , 
  "DELL",>       WriteIf(n==29 , 
  "DISH",>       WriteIf(n==30 , 
  "DLTR",>       WriteIf(n==31 , 
  "EBAY",>       WriteIf(n==32 , 
  "ERICY",>       WriteIf(n==33 , 
  "ERTS",>       WriteIf(n==34 , 
  "ESRX",>       WriteIf(n==35 , 
  "EXPD",>       WriteIf(n==36 , 
  "FAST",>       WriteIf(n==37 , 
  "FHCC",>       WriteIf(n==38 , 
  "FISV",>       WriteIf(n==39 , 
  "FLEX",>       WriteIf(n==40 , 
  "GENZ",>       WriteIf(n==41 , 
  "GILD",>       WriteIf(n==42 , 
  "GNTX",>       WriteIf(n==43 , 
  "HGSI",>       WriteIf(n==44 , 
  "HSIC",>       WriteIf(n==45 , 
  "IACI",>       WriteIf(n==46 , 
  "ICOS",>       WriteIf(n==47 , 
  "INTC",>       WriteIf(n==48 , 
  "INTU",>       WriteIf(n==49 , 
  "IVGN",>       WriteIf(n==50 , 
  "JDSU",>       WriteIf(n==51 , 
  "JNPR",>       WriteIf(n==52 , 
  "KLAC",>       WriteIf(n==53 , 
  "LAMR",>       WriteIf(n==54 , 
  "LLTC",>       WriteIf(n==55 , 
  "LNCR",>       WriteIf(n==56 , 
  "MCHP",>       WriteIf(n==57 , 
  "MEDI",>       WriteIf(n==58 , 
  "MERQ",>       WriteIf(n==59 , 
  "MLNM",>       WriteIf(n==60 , 
  "MNST",>       WriteIf(n==61 , 
  "MOLX",>       WriteIf(n==62 , 
  "MSFT",>       WriteIf(n==63 , 
  "MXIM",>       WriteIf(n==64 , 
  "NTAP",>       WriteIf(n==65 , 
  "NVDA",>       WriteIf(n==66 , 
  "NVLS",>       WriteIf(n==67 , 
  "NXTL",>       WriteIf(n==68 , 
  "ORCL",>       WriteIf(n==69 , 
  "PAYX",>       WriteIf(n==70 , 
  "PCAR",>       WriteIf(n==71 , 
  "PDCO",>       WriteIf(n==72 , 
  "PETM",>       WriteIf(n==73 , 
  "PIXR",>       WriteIf(n==74 , 
  "PSFT",>       WriteIf(n==75 , 
  "PTEN",>       WriteIf(n==76 , 
  "QCOM",>       WriteIf(n==77 , 
  "QLGC",>       WriteIf(n==78 , 
  "RFMD",>       WriteIf(n==79 , 
  "ROST",>       WriteIf(n==80 , 
  "RYAAY",>       WriteIf(n==81 , 
  "SANM",>       WriteIf(n==82 , 
  "SBUX",>       WriteIf(n==83 , 
  "SEBL",>       WriteIf(n==84 , 
  "SIAL",>       WriteIf(n==85 , 
  "SNDK",>       WriteIf(n==86 , 
  "SNPS",>       WriteIf(n==87 , 
  "SPLS",>       WriteIf(n==88 , 
  "SPOT",>       WriteIf(n==89 , 
  "SSCC",>       WriteIf(n==90 , 
  "SUNW",>       WriteIf(n==91 , 
  "SYMC",>       WriteIf(n==92 , 
  "TEVA",>       WriteIf(n==93 , 
  "TLAB",>       WriteIf(n==94 , 
  "VRSN",>       WriteIf(n==95 , 
  "VRTS",>       WriteIf(n==96 , 
  "WFMI",>       WriteIf(n==97 , 
  "XLNX",>       WriteIf(n==98 , 
  "XRAY",>       WriteIf(n==99 , "YHOO" , 
  "">       
  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))> 
  ))))))))))))))))))))))))))))));> 
  >       
  dirk>         ----- Original 
  Message ----->         From: 
  nkis22>         To: 
  amibroker@xxxxxxxxxxxxxxx>         
  Sent: Thursday, November 27, 2003 5:16 
  PM>         Subject: 
  [amibroker] Re: to HERMAN: N100 Correlation table> > 
  >         Will appreciate very 
  much to see the #include AFL 
  please>         thanks in 
  advance>         nand> 
  > > > > > > > 
  >         --- In 
  amibroker@xxxxxxxxxxxxxxx, dirk schreiber 
  <tianatrading@xxxx>>         
  wrote:>         > hello 
  herman,>         
  >>         > after 
  playing around with your code a little bit, i realized 
  that>         it is not showing 
  a COMPLETE "heat list" of the n100. by 
  "splitting>         up" the 100 
  stocks into two groups of 50, one for the x-axis and 
  the>         other for the 
  y-axis, we can't get the whole picture. the first> 
  stock>         (AAPL) has its 
  correlation only measured against stocks 
  50-99(JDSU->         YHOO), 
  but not for example against ADBE or 
  ADCT.>         > thanks to 
  posting your code i am beginning to understand the 
  logic>         of looping 
  better, so i just changed some numbers to have the loop> 
  go>         through ALL 
  possible combinations. it takes slightly longer 
  (instead>         of 
  50*50=2500 it's 100*100=10000 calculations) and of course it 
  has>         quite a lot of 
  duplicate results, but i think it is the only way 
  to>         calculate all 
  correlations.>         > 
  also, i changed the code from absolute to relative 
  correlation,>         which 
  gives different 
  results.>         
  >>         > what do you 
  think?>         
  >>         > 
  dirk>         
  >>         
  >>         
  >>         > // 
  Exploration N100 relative Correlation 
  table>         
  >>         > 
  Buy=Sell=Short=Cover=0;>         
  >>         > StkNum = 
  Status("StockNum");>         
  >>         > Filter = 
  Status("LastBarInTest") AND StkNum < 
  100;>         
  >>         > 
  AddTextColumn(Name(),"Ticker",1.0);>         
  >>         > 
  SetOption("nodefaultcolumns",1);>         
  >>         > n = 
  StkNum;>         
  >>         > #include 
  <NtoN100Ticker.afl>>         
  >>         > Ticker1 = 
  Ticker;>         
  >>         > C1 = 
  ROC(Foreign(Ticker1,"C"),1);>         
  >>         > 
  for(m=1;m<=99;m++)>         
  >>         > 
  {>         
  >>         > 
  n=m;>         
  >>         > #include 
  <NtoN100Ticker.afl>>         
  >>         > Ticker2 = 
  Ticker;>         
  >>         > C2 = 
  ROC(Foreign(Ticker2,"C"),1);>         
  >>         > Corr = 
  Correlation(C1, C2, 8 
  );>         
  >>         > Color = 
  IIf(Corr>0.7,8,4); // Add colors to make a heat 
  map>         
  >>         > 
  AddColumn(Corr,Ticker,1.3,1,Color);>         
  >>         > 
  }>         
  >>         
  >>         >   
  ----- Original Message 
  ----->         >   
  From:   Herman 
  vandenBergen>         
  >   To: 
  amibroker@xxxxxxxxxxxxxxx>         
  >   Sent: Wednesday, November 26, 2003 11:43   
  PM>         >   
  Subject: RE: [amibroker] to TOMASZ: how   to loop through a 
  list>         of tickers 
  ?>         
  >>         
  >>         >   
  A slight oversight in my previous code, you CAN list tickers 
  by>         name (no string 
  array needed) in the left most column with   
  the>         slightly different 
  code below. Here is a fragment of the 
  table.>         Include 
  file can be found in previous 
  post.>         
  >>         
  >>         
  >>         >   
  // N100 Correlation 
  table>         > 
  Buy=Sell=Short=Cover=0;>         
  > StkNum = 
  Status("StockNum");>         
  > Filter = Status("LastBarInTest") AND StkNum < 
  50;>         > 
  AddTextColumn(Name(),"Ticker",1.0);>         
  > n = StkNum;>         > 
  #include 
  <NtoN100Ticker.afl>>         
  > Ticker1 = Ticker;>         
  > C1 = 
  Foreign(Ticker1,"C");>         
  > 
  for(m=50;m<=99;m++)>         
  >    
  {>         
  >    
  n=m;>         
  >    #include 
  <NtoN100Ticker.afl>>         
  >    Ticker2 = 
  Ticker;>         
  >    C2 =   
  Foreign(Ticker2,"C");>         
  >    Corr = Correlation(C1, C2, 8 
  );>         
  >    Color = IIf(Corr>0,8,4); //   Add colors 
  to make a heat map>         
  >    
  AddColumn(Corr,Ticker,1.3,1,Color);>         
  >    
  }>         
  >       -----Original 
  Message----->         > 
  From: dirk schreiber     
  [mailto:tianatrading@xxxx]>         
  > Sent: November 27, 2003 2:03     
  AM>         > To: 
  amibroker@xxxxxxxxxxxxxxx>         
  > Subject: [amibroker] to     TOMASZ: how to loop 
  through a list of>         
  tickers ?>         
  >>         
  >>         
  >     i'm a bit surprised to see 
  that     noone is answering my> 
  call.>         
  >     so may i ask you 
  directly,     tomasz, if what i asked 
  is>         possible and if you 
  could indicate me the right     way to 
  code>         this 
  ??>         
  >>         
  >     thank 
  you,>         
  >>         
  >     
  dirk>         
  >>         
  >           ----- 
  Original Message ----->         
  >       
  From:       
  dirk       
  schreiber>         
  >       To: 
  amibroker@xxxxxxxxxxxxxxx>         
  >       Sent: Monday, November 24, 2003 
  12:14       
  PM>         
  >       Subject: Re: [amibroker] how to 
  loop       through a list 
  of>         tickers 
  ?>         
  >>         
  >>         
  >       noone 
  ???>         
  >       i'll try again: as 
  an       example, is it possible 
  to>         calculate all 
  correlations of the stocks       constituting 
  the>         nasdaq100 in 
  one scan?>         
  >       my code below will 
  explore       the correlations of 
  IBM> with>         the 
  other 99 constituents of my       nasdaq100 
  watchlist. is there> 
  a>         way in afl to tell 
  amibroker to first       calculate 
  these>         correlations for 
  one stock, then go to the next and do the> 
  same>         there and so 
  forth, so that i could find out the 10 
  highest>         correlations 
  within the nasdaq100 for example 
  ??>         
  >       i have tried many ideas but 
  i       am stuck 
  (haven't>         mastered 
  the new loop formulas very well yet)       
  ...>         
  >>         
  >       any help would be 
  greatly       appreciated, maybe 
  this>         procedure 
  would interest other amibroker users as       
  well.>         
  >>         
  >       thanks 
  in       
  advance,>         
  >>         
  >       
  dirk>         
  >>         
  >>         > 
  pair="IBM";>         
  >>         > 
  x=Foreign(pair,"C");>         
  >>         > 
  y=C;>         
  >>         > 
  xpc=ROC(x,1);>         
  >>         > 
  ypc=ROC(y,1);>         
  >>         > 
  Graph0=Correlation(xpc,ypc,20);>         
  >>         > 
  Graph1=Correlation(xpc,ypc,200);>         
  >>         > 
  Filter=Graph0>0.7       AND 
  Graph1>0.5;>         
  >>         > 
  AddColumn(Graph0,"Cor20",1.2);>         
  >>         > 
  AddColumn(Graph1,"Cor200",1.2);>         
  >>         > 
  AddColumn(Graph0+Graph1,"total",1.2);>         
  >>         > 
  Buy=0;>         
  >>         
  >>         
  >>         
  >>         
  >>         
  >               
  ----- Original Message 
  ----->         
  >         
  From:         dirk 
  schreiber>         
  >         To: 
  amibroker@xxxxxxxxxxxxxxx>         
  >         Sent: Thursday, November 
  20, 2003         6:56 
  PM>         
  >         Subject: [amibroker] how 
  to loop         through a list 
  of>         tickers 
  ?>         
  >>         
  >>         
  >                 
  hello,>         
  >>         
  >         this is my 
  first         
  post.>         
  >         i have been working my 
  way         into the ideas 
  behind>         pair 
  trading, reading the interesting posts 
  by         yuki a 
  few>         months ago and 
  writing some code.>         
  >         here is where i'm 
  stuck:         when i 
  calculate>         correlation, 
  price ratio and other things like 
  beta         ratio 
  it>         is my understanding 
  that when scanning my database i can 
  only>         compare one 
  stock at a time with the rest of my universe. 
  --is>         
  it         possible to calculate all 
  correlations between all 
  stocks>         in one 
  scan??         i know that with big 
  groups this would 
  mean>         millions 
  of         calculations, but for a 
  group like the n100 
  this>         should be 
  possible?>         
  >         can this be done by 
  some         sort of 
  loop?>         
  >         i searched the mailing 
  list         archive and found 
  only>         one hint by DT, 
  talking about maybe using         
  something like>         
  Status("STOCKNUM") == 0   , but 
  i         could not work that 
  out> ...>         
  >>         
  >         any help 
  is         
  appreciated,>         
  >         thanks 
  in         
  advance,>         
  >>         
  >         
dirk






Yahoo! Groups Sponsor


  ADVERTISEMENT 









Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.


Attachment: Description: ""