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