使用R获取金融数据
1.從網絡下載數據
(1)quantmod包的getSymbols()
這個是個比較好的方法。這個函數其實是個打包的函數,可以從多個來源下載股票數據,包括yahoo, google, MySQL, FRED, csv, RData和 oanda。
用法:
library(quantmod)
sse<-getSymbols("^SSEC",from = "2002-01-01",to = Sys.Date(),src = "yahoo")
tail(SSEC)
?SSEC.Open SSEC.High SSEC.Low SSEC.Close SSEC.Volume SSEC.Adjusted
2013-02-22 2322.94 2330.88 2308.76 2314.16 97000 2314.16
2013-02-25 2320.62 2338.78 2315.01 2325.82 88400 2325.82
2013-02-26 2313.74 2340.71 2289.89 2293.34 117600 2293.34
2013-02-27 2297.77 2324.63 2292.03 2313.22 97800 2313.22
2013-02-28 2322.32 2366.16 2308.92 2365.59 127000 2365.59
2013-03-01 2364.54 2369.65 2330.86 2359.51 120400 2359.51
getSymboles這個函數其實是取符號,數據是在符號“SSEC”里邊
或者
sse<-getSymbols("^SSEC",from = "2002-01-01",to = Sys.Date(),src = "yahoo",auto.assign=FALSE)
tail(sse)
這樣sse就有了股票數據
如果喜歡用代碼,也可以這樣操作,如招商銀行
sse<-getSymbols("600036.ss",from = "2002-01-01",to = Sys.Date(),src = "yahoo",auto.assign=FALSE)
如果知道代碼不知道符號,可以這樣:
setSymbolLookup(z=list(name="600036.SS", src="yahoo"))
getSymbols("z")#會輸出符號Z
tail(Z)
?
上邊這些是日數據,月數據可以用xts包的to.monthly轉換一下# to.period,轉換周,季,年類似處理
sse<-getSymbols("^SSEC",from = "2002-01-01",to = Sys.Date(),src = "yahoo")
SSEC.m<-to.monthly(SSEC)
tail(SSEC.m)
?
#這個結果里邊,2003年9月的成交量是錯誤的。
#修改之后,畫個圖看看
candleChart(SSEC.m,theme="white")
quantmod包是做金融技術分析最有用的包之一。
(2)tseries包
library(tseries)
ssec<-get.hist.quote(instrument = "^SSEC", start="2012-01-01", end="2013-03-01",quote = "AdjClose")
head(ssec)
???????????????AdjClose
2012-01-04 2169.39
2012-01-05 2148.45
2012-01-06 2163.40
2012-01-09 2225.89
2012-01-10 2285.74
2012-01-11 2276.05
quote = c("Open", "High", "Low", "Close"),?provider = c("yahoo", "oanda"),默認下載是yahoo,下載以后的默認對象是zoo,AdjClose是向前復權的價格。也可以使用股票的代碼,如招商銀行,
instrument = "600036.SS"。
?
(3)stockPortfolio包
getReturns()可以從yahoo下載數據,目的是計算對應的收益率,但是結果列表中也有對應時間區間的數據
library(stockPortfolio)
ssec<-getReturns('^SSEC', freq = "month",get = "all", start = "2008-01-01", end = NULL)
ssec#返回的是月均收益-0.009940081
ssec$full#返回的是月數據
?
當然,這里只是給出的R包的現成方法,下載金融數據的方法和渠道遠不局限與此。另外,從不同來源下載的數據可能是有差異的,有些情況也可能是有錯誤的,使用的時候要注意甄別。
?
原文:http://site.douban.com/182577/widget/notes/10568316/note/264808127/
?
總結
- 上一篇: HBO《最后生还者》真人剧确认续订第二季
- 下一篇: 数据挖掘之数据预处理