R语言与金融大数据处理

浏览: 2342

1、为什么选择R语言做金融大数据处理?

R语言是免费、开源、自由的计算平台使用成本低

R的基础语法简单、学习速度快、上手容易

R语言的数据可视化能力强,提供了丰富的绘图函数

扩展软件包发展速度快、更新快,目前已有数千个扩展包覆盖几乎所有的科学计算领域

虽然运行速度比C/C++等慢,但是可以快速测试各种算法,节约项目实验、研究时间。

很多时候只需一行代码就可以实行一项复杂的功能

R语言的学习、研究社区发展快、学习资料丰富

2、金融数据获取

从雅虎金融等数据网站获取:各国股票、股指、债券、ETF基金、汇率、金属、期权等交易品种历史数据和上市公司年报数据

library(quantmod)
# 不设置来源则默认从雅虎金融下载;
# 雅虎金融上大量指数品种都以"^"开头
# from,to参数设置读取历史数据的时间段
getSymbols("^GSPC",src="yahoo",from="2000-1-1",to=Sys.Date())
print(head(GSPC));print(tail(GSPC))
print(class(GSPC))
print(is.OHLC(GSPC))
print(is.OHLCV(GSPC))
# 从雅虎金融读取著名的苹果公司的全部股票数据
getSymbols("AAPL",src="yahoo",from="1900-1-1",to=Sys.Date())
print(head(AAPL));print(tail(AAPL))
# 从雅虎金融读取著名港股长江实业的股票数据
# 港股和大陆A股类似使用数字编号,雅虎金融上面有全球几十个市场的数据需要进行区分
# 美股不使用后缀而其他国家或地区的股票需要使用后缀:大陆沪市使用:".SS",深市使用:".SZ",香港使用:".HK"
setSymbolLookup(CJSY=list(name="0001.HK",src="yahoo")) # 在函数内部用列表指明股票代码和查询网站并指定一个变量名便于保存
getSymbols("CJSY",from="1900-1-1",to=Sys.Date())
print(head(CJSY));print(tail(CJSY))
# 用字符串向量保存股票代码一次下载一组股票数据
# 下载股票数量超过5种时系统会自动暂停1秒
szSymbols <- c("MSFT","ORCL","GOOG","INTL","AAPL","CSCO","SYMC","TSLA")
getSymbols(szSymbols,src="yahoo",from="2008-1-1",to=Sys.Date())
# 美国10年期债券收益率
getSymbols("^TNX",src="yahoo",from="1900-1-1",to=Sys.Date())
print(head(TNX));print(tail(TNX))
# ETF基金,伊斯兰地区ETF基金
getSymbols("ACWI",src="yahoo",from="1900-1-1",to=Sys.Date())
print(head(ACWI));print(tail(ACWI))
# 获取美元兑日元汇率数据
# 只能获取最近1年多的汇率历史数据,并且只有收盘价
getFX("USD/JPY")
print(head(USDJPY));print(tail(USDJPY))
# 获取欧元兑美元汇率数据
getSymbols("EUR/USD",src="oanda")
print(head(EURUSD));print(tail(EURUSD))
# 外汇是极其重要的交易品种,每天成交量超过5.3万亿美金,大型对冲基金都要操作
getSymbols("EUR/USD",src="oanda",from="2005-01-01")# 运行这一段代码会出现错误,该数据源每次请求只能获取500天以内的数据
# 获取交易品当前最新的详细报价数据信息
tmp <- getQuote("AAPL");print(tmp);print(class(tmp))
# 获取财报信息
getFinancials("TSLA")
viewFin(TSLA.f)
viewFin(TSLA.f,"CF","A") # 每年的现金流
# 获得股票的股息历史数据
getDividends("AAPL")
# 获得股票的拆分信息
getSplits("BIDU")
# 对股票进行除权除息调整
# 除权除息对于早期历史数据影响更明显
getSymbols("BIDU", from="2005-01-01", src="yahoo")
head(BIDU)
head(BIDU.a <- adjustOHLC(BIDU)) # 默认调整方式不使用Adjusted列的数据
head(BIDU.uA <- adjustOHLC(BIDU, use.Adjusted=T))
# 计算除权除息之后的开盘价收盘价收益率和收盘价收益率,保持不变
head(cbind(OpCl(BIDU),OpCl(BIDU.a),OpCl(BIDU.uA)))
head(cbind(ClCl(BIDU),ClCl(BIDU.a),ClCl(BIDU.uA)))
# 获取期权信息
# 期权是极为重要的交易品种
BIDU.OPT <- getOptionChain("BIDU")
print(class(BIDU.OPT)) # 获取的期权链数据保存在列表中
print(BIDU.OPT) # 显示全部期权链数据量非常大
print(BIDU.OPT$symbol) # 显示期权链列表中的symbol数据
print(BIDU.OPT$calls) # 显示期权链列表中的看涨期权数据
推荐 4
本文由 天善智能 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

老师,知道哪里可以抓取新三板所有股票的财务数据吗?
厉害

要回复文章请先登录注册