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

[amibroker] to HERMAN: N100 Correlation table



PureBytes Links

Trading Reference Links




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=<FONT color=#ff00ff 
size=1>0; 
StkNum = Status<FONT 
size=1>("StockNum"); 

Filter = Status<FONT 
size=1>("LastBarInTest") 
AND StkNum < 100<FONT 
size=1>; 
AddTextColumn(<FONT color=#0000ff 
size=1>Name(),<FONT color=#ff00ff 
size=1>"Ticker",<FONT color=#ff00ff 
size=1>1.0); <FONT 
color=#0000ff size=1>
SetOption(<FONT color=#ff00ff 
size=1>"nodefaultcolumns",<FONT 
color=#ff00ff size=1>1);
n = StkNum; 
#include 
<NtoN100Ticker.afl> 
Ticker1 = Ticker; 
C1 = ROC(<FONT 
color=#0000ff size=1>Foreign(Ticker1,<FONT 
color=#ff00ff size=1>"C"),<FONT color=#ff00ff 
size=1>1); 
for(m=<FONT face=Verdana 
color=#ff00ff size=1>1;m<=<FONT 
face=Verdana color=#ff00ff size=1>99<FONT 
color=#000000>;m++) 
{ 
n=m; 
#include 
<NtoN100Ticker.afl> 
Ticker2 = Ticker; 
C2 = ROC(<FONT 
color=#0000ff size=1>Foreign(Ticker2,<FONT 
color=#ff00ff size=1>"C"),<FONT color=#ff00ff 
size=1>1); 
Corr = Correlation(C1, 
C2, 8 ); 
Color = IIf<FONT 
size=1>(Corr>0<FONT face=Verdana 
color=#ff00ff size=1>.7,<FONT color=#ff00ff 
size=1>8,4<FONT 
size=1>); // Add colors to make a heat map 

AddColumn<FONT 
size=1>(Corr,Ticker,1.3<FONT 
size=1>,1,Color); 
}
 
<BLOCKQUOTE 
>
  ----- Original Message ----- 
  <DIV 
  >From: 
  Herman vandenBergen 
  
  To: <A title=amibroker@xxxxxxxxxxxxxxx 
  href="">amibroker@xxxxxxxxxxxxxxx 
  Sent: Wednesday, November 26, 2003 11:43 
  PM
  Subject: RE: [amibroker] to TOMASZ: how 
  to loop through a list of tickers ?
  
  <FONT face=Arial color=#0000ff 
  size=2>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.
  <FONT face=Arial color=#0000ff 
  size=2> 
  <IMG alt="" hspace=0 
  src="" align=baseline 
  border=0>
  <FONT face=Arial color=#0000ff 
  size=2> 
  <FONT face=Arial color=#000000 
  size=2>// N100 Correlation table<FONT 
  size=2> <FONT 
  color=#ff0000>Buy=<FONT 
  color=#ff0000>Sell=<FONT 
  color=#ff0000>Short=<FONT 
  color=#ff0000>Cover=<FONT 
  color=#ff00ff>0<FONT 
  color=#000000>; StkNum = Status<FONT 
  color=#000000>("StockNum"<FONT 
  face=Arial>); <FONT 
  color=#ff0000>Filter = <FONT 
  color=#0000ff>Status(<FONT 
  color=#ff00ff>"LastBarInTest") <FONT 
  color=#ff0000>AND StkNum < <FONT 
  color=#ff00ff>50<FONT 
  color=#000000>; AddTextColumn<FONT 
  color=#000000>(Name<FONT 
  color=#000000>(),"Ticker"<FONT 
  color=#000000>,1.0<FONT 
  face=Arial>); n = StkNum; 
  #include<FONT 
  face=Arial> <NtoN100Ticker.afl> 
  Ticker1 = Ticker; C1 = Foreign<FONT 
  color=#000000>(Ticker1,<FONT 
  color=#ff00ff>"C"<FONT 
  color=#000000>);    <FONT 
  color=#ff0000>for(m=<FONT 
  color=#ff00ff>50;m<=<FONT 
  color=#ff00ff>99<FONT 
  color=#000000>;m++)    {    n=m; 
     <FONT 
  color=#ff0000>#include<FONT 
  size=2> <NtoN100Ticker.afl> 
     Ticker2 = Ticker;    C2 = 
  Foreign<FONT 
  color=#000000>(Ticker2,<FONT 
  color=#ff00ff>"C"<FONT 
  color=#000000>);       Corr = <FONT 
  color=#0000ff>Correlation(C1, C2, <FONT 
  color=#ff00ff>8<FONT 
  color=#000000> );    Color = <FONT 
  color=#0000ff>IIf(Corr><FONT 
  color=#ff00ff>0,<FONT 
  color=#ff00ff>8,<FONT 
  color=#ff00ff>4); // 
  Add colors to make a heat map<FONT 
  size=2>    <FONT 
  color=#0000ff>AddColumn(Corr,Ticker,<FONT 
  color=#ff00ff>1.3,<FONT 
  color=#ff00ff>1<FONT 
  color=#000000>,Color);    <FONT 
  color=#0000ff>}
  
    <FONT face=Tahoma 
    size=2>-----Original Message-----From: dirk schreiber 
    [mailto:tianatrading@xxxxxxxxx]Sent: November 27, 2003 2:03 
    AMTo: amibroker@xxxxxxxxxxxxxxxSubject: [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
     
    <BLOCKQUOTE 
    >
      ----- Original Message ----- 
      <DIV 
      >From: 
      dirk 
      schreiber 
      To: <A 
      title=amibroker@xxxxxxxxxxxxxxx 
      href="">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<FONT 
      size=1>(pair,"C"<FONT 
      size=1>);
      y=C;
      xpc=ROC<FONT 
      size=1>(x,1);
      ypc=ROC<FONT 
      size=1>(y,1);
      Graph0=Correlation<FONT 
      size=1>(xpc,ypc,20<FONT 
      size=1>);
      Graph1=Correlation<FONT 
      size=1>(xpc,ypc,200<FONT 
      size=1>);
      Filter=Graph0<FONT 
      size=1>>0.7 
      AND Graph1<FONT 
      size=1>>0.5<FONT face=Verdana 
      size=1>;
      AddColumn(Graph<FONT 
      face=Verdana size=1>0,<FONT 
      color=#ff00ff size=1>"Cor20"<FONT color=#000000 
      size=1>,1.2<FONT 
      color=#000000>);
      AddColumn(Graph<FONT 
      face=Verdana size=1>1,<FONT 
      color=#ff00ff size=1>"Cor200"<FONT color=#000000 
      size=1>,1.2<FONT 
      color=#000000>);
      AddColumn(Graph<FONT 
      face=Verdana size=1>0+Graph<FONT 
      face=Verdana size=1>1,<FONT 
      color=#ff00ff size=1>"total"<FONT color=#000000 
      size=1>,1.2<FONT 
      color=#000000>);
      Buy=0<FONT 
      size=1>;<FONT face=Verdana color=#000080 
      size=2>
       
       
      <BLOCKQUOTE 
      >
        ----- Original Message ----- 
        <DIV 
        >From: 
        <A title=tianatrading@xxxxxxxxx 
        href="">dirk schreiber 
        To: <A 
        title=amibroker@xxxxxxxxxxxxxxx 
        href="">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,
         
        <FONT face=Verdana color=#000080 
        size=2>dirkSend BUG REPORTS to 
        bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
        suggest@xxxxxxxxxxxxx-----------------------------------------Post 
        AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web 
        page: <A 
        href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
        group FAQ at: <A 
        href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
        Your use of Yahoo! Groups is subject to the <A 
        href="">Yahoo! Terms of 
        Service. 
        
        
        Do you Yahoo!?<A 
        href="">Protect your identity with 
        Yahoo! Mail AddressGuardSend BUG REPORTS to 
      bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
      suggest@xxxxxxxxxxxxx-----------------------------------------Post 
      AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
      <A 
      href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
      group FAQ at: <A 
      href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
      Your use of Yahoo! Groups is subject to the <A 
      href="">Yahoo! Terms of Service. 
      
      
      
      Do you Yahoo!?Protect 
      your identity with Yahoo! Mail AddressGuardSend 
    BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
    
    
    
    Do you Yahoo!?Protect 
    your identity with Yahoo! Mail AddressGuardSend 
  BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 







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.




Do you Yahoo!?

Attachment: Description: "Protect your identity with Yahoo! Mail AddressGuard"