Using data from yahooImport (fBasics)
On 7 April 2006 at 11:58, Diethelm Wuertz wrote:
| Why you should definitely use Rmetrics to solve Owe Jessens problem:
[...]
| When you have downloaded the data,
| you can do it with default settings in 6 lines !!!!
|
| Note you have several alternatives to align the data, and to
| compute the returns. Check the arguments of the functions
| alignDailySeries() and returnSeries().
Ajay has point as zoo can really do this compactly:
stopifnot(require(tseries), quiet=TRUE) # also loads zoo these days
simpleBeta <- function(ysymb="F", xsymb="^GSPC", startdate="2005-01-01") {
Y <- get.hist.quote(instrument=ysymb, start=startdate, quote="Close")
X <- get.hist.quote(instrument=xsymb, start=startdate, quote="Close")
rets <- diff(log(merge(Y,X,all=FALSE)))
fit <- lm(Close.Y ~ Close.X, data=rets)
return(coef(fit)[2])
}
One command each for data retrieval [ and is there a way to not get the
verbose output from downloading ? ], the return transformation and merge
really can be as compact as one compact, fit, and then coefficient
extraction.
Obviously, this even fits in one call without really saving anything:
reallyShortSimpleBeta <- function(ysymb="F", xsymb="^GSPC",
startdate="2005-01-01") {
return( coef( lm(Close.Y ~ Close.X,
data = diff( log ( merge(
Y=get.hist.quote(instrument=ysymb,
start=startdate, quote="Close"),
X=get.hist.quote(instrument=xsymb,
start=startdate, quote="Close"),
all=FALSE)))))[2] )
}
Now, what is the deal with the Frankfurt data at data Yahoo?
For regressions of Daimler or Deutsche Bank, ie
> simpleBeta("DCX.DE", "^GDAXI")
> simpleBeta("DBK.DE", "^GDAXI")
I get only 200 datapoints whereas US data (with the same start data request
of Jan 1, 2005) gets me the full 317 points...
Anyway, hope this helps.
Cheers, Dirk
Hell, there are no rules here - we're trying to accomplish something.
-- Thomas A. Edison