[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




I was 
extremely intrigued by your matrix, so I tried to run it against my N100 
watchlist containing 100 tickers (of course).
<FONT face=Arial color=#0000ff 
size=2> 
It 
crashes with an access violation.   It will run a handful of tickers 
with no problems, but sure doesn't like 100.
<FONT face=Arial color=#0000ff 
size=2> 
Has 
anyone else tried it with 100 tickers or more?
<BLOCKQUOTE 
>
  <FONT face="Times New Roman" 
  size=2>-----Original Message-----From: Herman vandenBergen 
  [mailto:psytek@xxxxxxxx]Sent: Friday, November 28, 2003 4:24 
  AMTo: amibroker@xxxxxxxxxxxxxxxSubject: RE: [amibroker] 
  Re: to HERMAN: N100 Correlation table
  <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++ ); 
    AddTextColumn<FONT 
    color=#000000>(Name<FONT 
    color=#000000>(),"Ticker"<FONT 
    color=#000000>,1.0<FONT 
    size=2>); <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, 
    8<FONT 
    face=Arial> );    Color = 
    IIf<FONT 
    color=#000000>(Test>0<FONT 
    color=#000000>, <FONT 
    color=#ff0000>colorBrightGreen, 
    IIf<FONT 
    color=#000000>(Test<0<FONT 
    color=#000000>, <FONT 
    color=#ff0000>colorRed, 
    <FONT 
    color=#ff0000>colorWhite<FONT 
    size=2>));    Color 
    = IIf<FONT 
    color=#000000>(Ticker1==Ticker2, <FONT 
    color=#ff00ff>1<FONT 
    color=#000000>, Color);    <FONT 
    color=#0000ff>AddColumn( Test, Ticker2, 
    1.3, <FONT 
    color=#ff00ff>1, 
    Color);    } 

  <FONT face=Arial 
  size=2> 
  <IMG alt="" hspace=0 
  src="jpg00359.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,>         
    >>         
    >         
  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. 







Yahoo! Groups Sponsor












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: ""