100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 用R与quantmod画漂亮的股票走势图及技术指标

用R与quantmod画漂亮的股票走势图及技术指标

时间:2020-03-08 21:10:39

相关推荐

用R与quantmod画漂亮的股票走势图及技术指标

R语言的统计分析功能强大,画图方便,扩展包众多,而且开源免费。

比起Python,R一些库更专门化,例如quantmod(R中的金融分析包),可以画出漂亮的股票图,还支持众多技术指标。

R语言介绍

安装R与RStudio

下载并安装R。Revolution R Open是初被微软收购了的Revolution Analytics的R发行版。

/download/

下载并安装RStudio,目前最流行的R开发环境。

/products/rstudio/download/

安装quantmod

在安装完R与RStudio之后,打开RStudio,从Tools菜单下选择Install Packages…打开安装包的窗口,输入包的名称:quantmod,点击Install按钮,RStudio就会自动下载quantmod及其需要的包来安装,相当方便。

代码介绍

首先,在RStudio里新建一个R脚本文件,File->New File->R Script。

然后,输入以下代码:

library(quantmod) # 加载quantmodgetSymbols(c("QQQ","SPY"),src="yahoo") # 从Yahoo Finance下载QQQ与SPY这两个ETF(交易所交易基金)的数据。QQQ与SPY分别是纳斯达克100指数与标准普尔500指数。chartSeries(QQQ,subset="-08::-08",theme=chartTheme("white"),TA="addVo();addBBands();addATR();addCMF()") # 画QQQ的数据,从8月至8月,白色背景,TA是显示的技术指标。chartSeries(SPY,subset="-08::-08",theme=chartTheme("white"),TA="addVo();addBBands();addATR();addCMF()") # 画SPY的数据,其他参数同上。

getSymbols函数可以从指定的数据来源下载数据,默认的是Yahoo Finance。不过Google的数据貌似比Yahoo的更快更新,能看到当天的数据。如果Google没有被墙,也可以用Google做数据源:

getSymbols(c("QQQ","SPY"),src="google")

getSymbols函数的说明:

/documentation/getSymbols.html

chartSeries函数的TA参数指定要显示的技术指标,其中addVo是Volume(交易量),addBBands是Bollinger Bands(布林带),addATR是Average True Range(平均真实波动范围),addCMF是Chaikin Money Flow(佳庆资金流量指标)。

详细的参数说明可参考quantmod的画图示例:

/examples/charting/

运行结果

输入完代码,按编辑区域右上角的Source按钮(下图中鼠标指针处),运行当前代码文件,就可以画出来下面两个ETF走势图。

上面的走势图中,Bollinger Bands覆盖在K线上显示,K线下方的技术指标依次是Volume(成交量),ATR(Average True Range)与CMF(Chaikin Money Flow)。Bollinger Bands的上下两条线是均线加减标准差(默认参数是20日加减两倍标准差),反应价格的相对高低;ATR是一段时间内的平均价格波动范围,反应市场波动程度。CMF是资金流量指标,反应市场趋势的强弱。这几个不同类型的技术指标,反应不同类型的信息,相互对比着看也不错。

学习资料

对R感兴趣想了解更多的话,Coursera有R的在线课程:

R 语言程序开发(约翰霍普金斯大学)

/course/rprog

计算金融和金融计量学导论(华盛顿大学)

/course/compfinance

英文电子书PDF:

Quantitative Trading with R: Understanding Mathematical and Computational Tools from a Quant’s Perspective

/detail/badboy_1990/8789001

接地气的国产资料,提到如何获取A股数据:

quantmod-R中的金融分析包

/s/BV7eLOk1gfpUy

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。