| 
 PureBytes Links 
Trading Reference Links 
 | 
Ken, 
I suspect that this relates to the following articles:
TAS&C Dec. 2000, "Market Topology" by Nicolas Vanderwalle,
PhD., with further explanation in Feb. 2001 "Letters to
S&C".
TAS&C Mar. 2001, "Pairs Trading" by Stephane Reverre.
There is a Market Topology website at:
http://www.market-topology.com/
HHP
============================
At 11:25 AM 28/11/2003, you wrote:
OK,
very nice code, which produces a nice output.
 
How do you use it (profitably)?  I see waaaay down at the bottom of
this message string (what a long message) that it is useful for pair
trading.  How? (Without going blind, that is.)
 
Changing the red to grey lets me see the negative correlations.  I
guess an eyeball scan for large negative values lets you know which pairs
might be “pair traded”, is that the idea?  Has anyone explained how
to set up pair trading to see if this is profitable?
 
Thanks for any added insights.
 
Ken
 
-----Original Message-----
From: Chuck Rademacher
[mailto:chuck_rademacher@xxxxxxxxxx]
Sent: Friday, November 28, 2003 1:36 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Re: to HERMAN: N100 Correlation
table
 
After much frustration
trying to get the code to work without crashing, I made an
"enhancement" to Herman's code to prevent crashes if a
watchlist contains more than 99 tickers.   I do not take credit
for any of this work... only a trivial change:
 
 
// Exploration to create
Correlation matrix
// Be sure to set
"Apply to" to desired wishlist name
// Also, change the
watchlist number ("2" in example below) to the correct number
(zero based).
Buy=Sell=Short=Cover=0;
Filter =
Status("LastBarInTest");
list =
GetCategorySymbols(
categoryWatchlist,
2 ); 
for(
NumTickers=0; NumTickers
< 99 and 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); 
   } 
Thanks, Herman and others,
for a handy graphical tool.
 
 
-----Original
Message-----
From: Chuck Rademacher
[mailto:chuck_rademacher@xxxxxxxxxx]
Sent: Friday, November 28, 2003 4:52 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: RE: [amibroker] Re: to HERMAN: N100 Correlation
table
I was extremely intrigued
by your matrix, so I tried to run it against my N100 watchlist containing
100 tickers (of course).
 
It crashes with an access
violation.   It will run a handful of tickers with no problems,
but sure doesn't like 100.
 
Has anyone else tried it
with 100 tickers or more?
-----Original
Message-----
From: Herman vandenBergen
[mailto:psytek@xxxxxxxx]
Sent: Friday, November 28, 2003 4:24 AM
To: amibroker@xxxxxxxxxxxxxxx
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@xxxxxxxxx]
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@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,DL
TR,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
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. 
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. 
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. 
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. 
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.
 |