日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用R获取金融数据

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用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/


?

總結

以上是生活随笔為你收集整理的使用R获取金融数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。