金融老法师 发表于 2019-12-28 19:22:21

【量化基础】R语言获取金融数据之quantmod包

在量化交易中,第一步也是最基础的一步就是获得数据,因为只有获得数据之后我们才能对我们的策略进行回测,进而判断该策略是否有盈利空间。获得了数据之后,我们通常使用R、python等语言对数据进行处理。这其中往往会涉及格式整理、数据读取等步骤。于是我们想,如果可以直接通过R或python获取数据,就省去了很多麻烦,而R中的quantmod和python中的tushare正好可以实现这一目的,我将分两篇文章分别介绍一下这两个常用的工具吧。这篇文章我们将如何使用R获取金融数据,我们经常使用的是大名鼎鼎的quantmod包。该包功能强大且简单便捷。下面我们通过一个例子进行讲解。
简单示例我们如果想要获取苹果公司的股票数据,就可以用getSymbols()函数实现。如下所示:
getSymbols("AAPL",src="yahoo") > head(AAPL)         
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2007-01-03   86.29   86.58    81.90      83.80   309579900      10.96015
2007-01-04   84.05   85.95    83.82      85.66   211815100      11.20341
2007-01-05   85.77   86.20    84.40      85.05   208685400      11.12363
2007-01-08   85.96   86.53    85.28      85.47   199276700      11.17857
2007-01-09   86.45   92.98    85.15      92.57   837324600      12.10717
2007-01-10   94.75   97.80    93.45      97.00   738220000      12.68657
getSymbols()函数很简单,只有两个需要输入的参数,一个是"AAPL",代表apple公司,一个是src="yahoo",表示获取从雅虎金融爬取的数据(一般都是选yahoo)。接着我们可以看到苹果公司的股票数据已经被储存在AAPL这个变量里。如果我们查看着个变量的前几行,就可以看到这个data.frame里包含了OHLCPV六个变量,也就是开盘价、最高价、最低价、收盘价、交易量、调整价。此外,我们还可以通过from...to...选择股票数据的时间段:getSymbols("AAPL", src = "yahoo", from = "2016-01-01", to = "2016-10-31")> head(AAPL)         
AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2015-01-02    111.39    111.44   107.35   109.33    53204600      105.6986
2015-01-05    108.29    108.65   105.41   106.25    64285500      102.7209
2015-01-06    106.54    107.43   104.63   106.26    65797100      102.7306
2015-01-07    107.20    108.20   106.70   107.75    40105900      104.1711
2015-01-08    109.23    112.15   108.70   111.89    59364500      108.1736
2015-01-09    112.67    113.25   110.21   112.01    53699500      108.2896


是不是很简单,这个包还有其他功能,比如我们可查看Apple股票涨跌幅超过2%的天数:


zd <- Delt(Cl(get("AAPL", env = new.environment)))>length(zd)21我们还可以画出相应的K线图:barChart(AAPL)


结语事实上,quantmod不仅可以获取金融数据,还可以对金融数据进行常见的数据处理甚至进行量化策略编写等工作,其具体的功能其参照官网文档:
页: [1]
查看完整版本: 【量化基础】R语言获取金融数据之quantmod包