《r语言与金融大数据处理》 - quantmod 扩展包(4节课)

上传人:子 文档编号:43096033 上传时间:2018-06-04 格式:DOC 页数:13 大小:17.94KB
返回 下载 相关 举报
《r语言与金融大数据处理》 - quantmod 扩展包(4节课)_第1页
第1页 / 共13页
《r语言与金融大数据处理》 - quantmod 扩展包(4节课)_第2页
第2页 / 共13页
《r语言与金融大数据处理》 - quantmod 扩展包(4节课)_第3页
第3页 / 共13页
《r语言与金融大数据处理》 - quantmod 扩展包(4节课)_第4页
第4页 / 共13页
《r语言与金融大数据处理》 - quantmod 扩展包(4节课)_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《《r语言与金融大数据处理》 - quantmod 扩展包(4节课)》由会员分享,可在线阅读,更多相关《《r语言与金融大数据处理》 - quantmod 扩展包(4节课)(13页珍藏版)》请在金锄头文库上搜索。

1、RR 语言与金融大数据处理语言与金融大数据处理 - - quantmodquantmod 扩展包扩展包(4(4 节课节课) )# 2014-04-20(17.0)# # 2014-06-11(24.3) 已在网易博客发布此课程# quantmod 是 R 平台用于金融建模的扩展包主要功能有:从多个数据源获取历史数据、绘制金融数据图表、在金融数据图表# 中添加技术指标、计算不同时间尺度的收益率、金融时间序列分析、金融模型拟合与计算等等# 使用 R 平台做金融大数据处理几乎必用此扩展软件包library(quantmod)# quantmod 第 1 课 #getSymbols(“GSPC“,fr

2、om=“2010-1-1“,to=“2014-1-1“)save(GSPC,file=“GSPC.RDATA“)getSymbols(“MSFT“,from=“2010-1-1“,to=“2014-1-1“)save(MSFT,file=“MSFT.RDATA“)getSymbols(“ORCL“,from=“2010-1-1“,to=“2014-1-1“)save(ORCL,file=“ORCL.RDATA“)getSymbols(“BIDU“,from=“2010-1-1“,to=“2014-1-1“)save(BIDU,file=“BIDU.RDATA“)getSymbols(“AAPL

3、“,from=“2010-1-1“,to=“2014-1-1“)save(AAPL,file=“AAPL.RDATA“)load(“GSPC.RDATA“)load(“BIDU.RDATA“)load(“AAPL.RDATA“)load(“ORCL.RDATA“)load(“MSFT.RDATA“)ls()removeSymbols(“AAPL“)ls()load(“AAPL.RDATA“)# 提取时间序列中的指定部分head(Op(GSPC)head(Hi(GSPC)head(Lo(GSPC)head(Cl(GSPC)head(Vo(GSPC)head(Ad(GSPC)head(GSPC)t

4、ail(GSPC)# 返回整个时间序列中最早、最晚的一条记录seriesLo(GSPC)seriesHi(GSPC)# 获取市场上涨/下跌序列的逻辑值head(Cl(GSPC),10)tail(seriesIncr(Cl(GSPC), thresh=0, diff.=1L),10)tail(seriesDecr(Cl(GSPC), thresh=0, diff.=1L),10)# 获取市场持续上涨/下跌序列的逻辑值tail(seriesAccel(Cl(GSPC),10)tail(seriesDecel(Cl(GSPC),10)tail(OpCl(GSPC)tail(ClCl(GSPC)tai

5、l(HiCl(GSPC)tail(LoCl(GSPC)tail(LoHi(GSPC)tail(OpHi(GSPC)tail(OpLo(GSPC)tail(OpOp(GSPC)# 提取 OHLCVA 数据中的指定部分tail(HLC(GSPC)tail(OHLC(GSPC)tail(OHLCV(GSPC)# quantmod 第 2 课 #Stock.Close - c(102.12,102.62,100.12,103.00,103.87,103.12,105.12)Close.Dates - as.Date(c(10660,10661,10662,10665,10666,10667,10668

6、),origin=“1970-01-01“)Stock.Close - zoo(Stock.Close,Close.Dates);Stock.CloseNext(Stock.Close) # 向前 1 个时间周期Next(Stock.Close,k=1) # 同上# k 必须为非负数Next(Stock.Close,k=-1)# 合并两个时间序列的数据# 实战中可以将一些经济指标、技术指标、其他交易品种数据和待分析数据做个合并merge(Stock.Close,Next(Stock.Close)# addTA()在现有图形上加入指标、成交量、函数运算结果等信息# on:绘制图形的窗口windo

7、ws()chartSeries(GSPC,TA=NULL) # 绘制完全干净的数据图addTA(SMA(Cl(GSPC),n=20), on=1, col=“red“)# 将均线绘制在第二个窗口失败# 关键是 TA=NULL 测试windows()chartSeries(GSPC,TA=NULL) addTA(SMA(Cl(GSPC),n=20), on=2, col=“red“)# 把均线绘制在第二个成交量窗口# on 参数只能设置在已经存在的窗口绘制图形,并不能增加一个新的窗口windows()chartSeries(GSPC) addTA(SMA(Cl(GSPC),n=20), on=2

8、, col=“blue“)# 不指定窗口则自动增加一个新窗口并在新窗口绘制图形windows()chartSeries(GSPC) addTA(SMA(Cl(GSPC),n=20),col=“blue“)# 绘制 2012-2013 年历史数据的走势图并加入双均线# 时间序列的中同样可以使用 ISO 时间序列字符串形式获取数据tmp - GSPC“2012/2013“,windows()chartSeries(tmp,TA=NULL)addTA(SMA(Cl(tmp),n=5), on=1, col=“red“)Sys.sleep(5)addTA(SMA(Cl(tmp),n=20), on=1

9、, col=“blue“)# 不只是现有指标其他函数或自定义函数也可以windows()chartSeries(GSPC)addTA(OpCl(GSPC), col=“blue“, type=“l“, lwd=1)# 成交量数据占用一个窗口较为不便,可以只抽取 OHLC 数据绘图windows()chartSeries(OHLC(GSPC)addTA(OpCl(GSPC), col=“blue“, type=“l“, lwd=1)# 自定义函数myfun - function(x) return(log(Cl(x) windows();chartSeries(GSPC,TA=NULL)# ad

10、dTA()可以调用自定义函数计算计算数据并绘制图形addTA(myfun(GSPC), col=“white“, type=“l“, lwd=1)# quantmod 第 3 课 # 加入波动率曲线windows()chartSeries(GSPC,TA=NULL)addVolatility()# 计算不同时间周期计算出的收益率tail(dailyReturn(GSPC)tail(dailyReturn(Cl(GSPC)tail(weeklyReturn(GSPC)tail(yearlyReturn(GSPC)# 计算百分比变化# 不能直接使用 OHLC 数据tail(Delt(GSPC)#

11、只计算收盘价的百分比变化,默认第二个参数为 NULL,k=0# 只取收盘价的结算结果和 dailyReturn()的结算结果一致tail(Delt(Cl(GSPC)# 只计算收盘价的百分比变化,默认第二个参数为 NULL,k=0xts01 - tail(Cl(GSPC),10)xts02 - tail(Cl(AAPL),10)Delt(xts01,xts02)Delt(xts01,xts02,k=5)Delt(xts01,xts02,type=“log“) # 判断数据类型is.OHLC(GSPC)is.OHLCV(GSPC)# findPeaks()/findValleys 查找时间序列的波

12、峰、波谷# 特别注意:函数返回的是上涨或下跌趋势出现改变后的第一个时间周期的位置tmp - tail(Cl(GSPC),100)# 获得的结果是数据峰值之后一个数值在原向量中的索引值findPeaks(tmp)# windows();plot(1:100,tmp,type=“l“)points(findPeaks(tmp),tmpfindPeaks(tmp),col=“red“,lwd=2)# 获得的结果是数据谷值之后一个数值在原向量中的索引值findValleys(tmp)points(findValleys(tmp),tmpfindValleys(tmp),col=“blue“,lwd=2

13、)# 获取期权或期货的到期数据信息options.expiry(AAPL)futures.expiry(AAPL)AAPLoptions.expiry(AAPL)# 第 4 课 quantmod 拟合模型做模拟交易 # # Recursive Partitioning and Regression Trees# 递归分割与回归树library(rpart)# rpart 扩展包是一个极端重要的使用决策树作分析的工具。在数据挖掘、机器学习领域有广泛用途。该扩展包有专门课程做详细介绍# 生成单个可以复用的模型用于后期的 buildModel()函数调用# 第 1 个参数为:formula# 这是公

14、式对象。该对象包含交易品名称和待拟合模型的公式# 模型是通过标准的公式机制来指定# 一个金融模型可能会包含多个金融/经济指标。每种指标的数据源、频率、类型可能不同# 调用 specifyModel()函数来设定他们的关系# 现在:quantmod.OHLC,zoo,ts,its 等数据类型都可以被支持# 交易品数据默认会从全局环境中获取# 如果交易品数据不存在函数会调用 getSymbols()函数并使用默认的数据源配置下载# 第 2 个参数为:na.rm=TRUEm - specifyModel(Next(OpCl(SPY) Lag(OpHi(SPY)class(m)mode(m)str(m)# 从 quantmod 对象中提取用于建模的函数# specifyModel()函数正常运行之后就会生成一个 S4 类型的对象。该对象包含一组 model.data 数据modelData(m)# 再举个生成模型,建立数据集合并提取数据的例子m1 - specifyModel(Next(OpCl(SPY) Cl(SPY) + OpHi(SPY) + Lag(Cl(SPY)modelData(m1) # 输入参数为 specifyModel()函数生成的对象# 返回对象的描述信息getModelData(m)# buildMo

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号