Using data from yahooImport (fBasics)
Owe Jessen wrote:
Thanks to the help from this list, I'm on my way learning how to handle R. There are two things that bugger me: 1. Using yahooImport I can easily get financial data. But how do I handle the data from there on? For example, I wanted to calculate the beta of DaimlerChrysler vs. the DAX. So I imported both datasets. How do I have to manipulate the objects so I can have a linear regression of the returns of DCX to the DAX? 2. Using different data-sources, one usually gets timeseries of differing length. Whats the most economical way to make shure that one feeds the appropiate pieces to lm, plot and so on? Thanks in advance, Owe
_______________________________________________ R-sig-finance at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance
# DCX.DE
# ^GDAXI
require(fMultivar)
myFinCenter = "GMT"
# Download -> Data Slot -> As Time Series -> Close
# GET Closing Prices: 2005-06-01 until now - see help(yahooImport)
query = "s=^GDAXI&a=5&b=1&c=2005&d=0&q=31&f=2009&z=^GDAXI&x=.csv"
DAX.CLOSE = as.timeSeries(yahooImport(query)@data)[,"Close"]
query = "s=DCX.DE&a=5&b=1&c=2005&d=0&q=31&f=2009&z=DCX.DE&x=.csv"
DCX.CLOSE = as.timeSeries(yahooImport(query)@data)[,"Close"]
# Align to daily dates: --- So both time series will have afterwards the
same time stamps
# Consult help(timeSeries)
DAX.ALIGNED = alignDailySeries(DAX.CLOSE, method = "interp")
DCX.ALIGNED = alignDailySeries(DCX.CLOSE, method = "interp")
# Cut Common Piece from each: --- help(timeDate)
START = modify(c(start(DAX.ALIGNED), start(DCX.ALIGNED)), "sort")[2]
END = modify(c(end(DAX.ALIGNED), end(DCX.ALIGNED)), "sort")[1]
DAX.CUTTED = cutSeries(DAX.ALIGNED, from = START, to = END)
DCX.CUTTED = cutSeries(DCX.ALIGNED, from = START, to = END)
# Merge the two Series:
DCXDAX = mergeSeries(DCX.CUTTED, DAX.CUTTED at Data, units = c("DCX", "DAX"))
# Compute Return Series:
DCXDAX.RET = as.data.frame(returnSeries(DCXDAX))
# Compute Beta: --- linear Modelling:
c(Beta = lm(formula = DCX ~ DAX, data = DCXDAX.RET)$coef[2])
Beta.DAX
1.320997
Is that what you wanted ? Read my Paper about timeDate and timeSeries
objects under Rmetrics!
Regards Diethelm