PureBytes Links
Trading Reference Links
|
Thank you, Herman, for your reply.
It would work if the matrix was 100 x 100.
But I'm thinking more like a 1000 x 1000 matrix.
It's beyond max columns of AmiBroker and Excel.
ysk
--- In amibroker@xxxxxxxxxxxxxxx, "Herman vandenBergen" <psytek@xxxx>
wrote:
> It would be a very long column...about 100x100 combinations. It is
easier to
> copy-n-past the results to Excel and use an Excel formula to find
the max,
> like Max(...xy data range ...) and/or use Excel Conditional
formating to
> color cells according to the limits.
>
> DT recently posted a nice solution to extract the highest values
from the
> table... I think that might do exactly what you want.
>
> herman
> -----Original Message-----
> From: qqqqq_99999_qqqqq [mailto:qqqqq_99999_qqqqq@x...]
> Sent: December 30, 2003 8:14 AM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: to HERMAN: N100 Correlation table
>
>
> Hi,
>
> Is there any way to create a correlation table in a columnal form
(
> security1, security2 and correaltion columns ) for easy sorting?
>
> ysk
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko"
<amibroker@xxxx>
> wrote:
> > Hello,
> >
> > The code is written in ineffective way because it calls Foreign
for
> CURRENT security while it is not necessary at all.
> > Also it performs two loops when only one is needed.
> >
> > More efficient version is here:
> >
> > Filter = Status("LastBarInTest");
> > list = GetCategorySymbols( categoryWatchlist, 0 );
> >
> > AddTextColumn(Name(),"Correlation",1.0);
> > Ticker1= Name();
> >
> > for( Col=0; (Ticker2=StrExtract( List, Col))!= ""; Col++)
> > {
> > Var2 = Foreign(Ticker2,"C");
> > Corr = Correlation( C, Var2, 8 );
> > Color = IIf(Corr>0, colorBrightGreen, IIf(Corr<0,
> colorRed,colorWhite));
> > Color = IIf(Ticker1==Ticker2, 1, Color);
> > AddColumn( Corr, Ticker2, 1.3, 1, Color);
> > }
> >
> > Hope this helps.
> >
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> > ----- Original Message -----
> > From: Herman vandenBergen
> > To: amibroker@xxxxxxxxxxxxxxx
> > Sent: Friday, November 28, 2003 10:24 AM
> > Subject: RE: [amibroker] Re: to HERMAN: N100 Correlation table
> >
> >
> > Very nice DT, thanks! I'll be using that frequently. Below is
what
> the Correlation matrix, with help from the list, developed into.
> > // Exploration to create Correlation matrix
> > Buy=Sell=Short=Cover=0;
> > Filter = Status("LastBarInTest");
> > list = GetCategorySymbols( categoryWatchlist, 2 );
> > for( NumTickers=0; (StrExtract( list, NumTickers )) != "";
> NumTickers++ );
> > AddTextColumn(Name(),"Ticker",1.0);
> > for( Col=0; Col<NumTickers; Col++)
> > {
> > Ticker1 = Name();
> > Ticker2 = StrExtract( list, Col);
> > Var1 = Foreign(Ticker1,"C");
> > Var2 = Foreign(Ticker2,"C");
> > Test = Correlation( Var1, Var2, 8 );
> > Color = IIf(Test>0, colorBrightGreen, IIf(Test<0,
colorRed,
> colorWhite));
> > Color = IIf(Ticker1==Ticker2, 1, Color);
> > AddColumn( Test, Ticker2, 1.3, 1, Color);
> > }
> >
> >
> >
> > -----Original Message-----
> > From: DIMITRIS TSOKAKIS [mailto:TSOKAKIS@x...]
> > Sent: November 28, 2003 1:46 PM
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: [amibroker] Re: to HERMAN: N100 Correlation table
> >
> >
> > Herman,
> > There is no need to write the 100 tickers. If they belong to
> WL10,
> > then
> > list = 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@x...]
> > > 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,BB
BY,BEAS,BIIB,BMET,BRCD
> > ,BRCM,CD
> > > WC,CEPH,"+
> > >
> > >
> "CHIR,CHKP,CHRW,CIE,CMCSA,CMVT,COST,CPWR,CSCO,
CTAS,CTXS,DELL,DISH,DL
> > TR,EBAY,
> > > ERICY,ERTS,"+
> > >
> > >
> "ESRX,EXPD,FAST,FHCC,FISV,FLEX,GEZ,GILD,GTX,HG
SI,HSIC,IACI,ICOS,ITC,
> > ITU,IVG,
> > > JDSU,JPR,KLAC,"+
> > >
> > >
> "LAMR,LLTC,LCR,MCHP,MEDI,MERQ,MLM,MST,MOLX,MSF
T,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 [ma
ilto: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@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > Post AmiQuote-related messages ONLY to: am
iquote@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.
>
>
>
> Send BUG REPORTS to bugs@xxxx
> Send SUGGESTIONS to suggest@xxxx
> -----------------------------------------
> 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
>
>
>
>
--------------------------------------------------
--------------------------
> --
> Yahoo! Groups Links
>
> a.. To visit your group on the web, go to:
> http://groups.yahoo.com/group/amibroker/
>
> b.. To unsubscribe from this group, send an email to:
> amibroker-unsubscribe@xxxxxxxxxxxxxxx
>
> c.. Your use of Yahoo! Groups is subject to the Yahoo! Terms of
Service.
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
Yahoo! Groups Links
To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|