用 R 进行高频金融数据分析简介
作者:李洪成
摘自:http://cos.name/wp-content/uploads/2013/11/ChinaR2013SH_Nov03_04_LiHongcheng.pdf
高频数据
- 金融市场中,逐笔交易数据(transaction by transaction data) 或逐秒记录数据 (tick by tick data) 被称为高频数据。纽约股票交易所的交易行情数据库包含了综合磁带系统报告的所有证券的交易和报价记录(Trades and Quotes- NYSE TAQ), 另外WRDS TAQ, Reuters, Bloomberg等。
高频数据的特点
- 数据量大:一只股票一天中可以有几百万条交易
- 交易间的时间间隔是不规则的,不是等间隔
- 保存的数据由于多种原因会包含错误
- 不正确的交易量
- 失时效的价格
- 一秒钟的多重交易
- 不准确的时间 (innaccurate times)
- 股票买卖报价的动态性
- 市场的流动性
- 算法交易
- 收益的实际波动率
Data Structure of Trade data
- PRICE 交易价格
- SIZE 交易股数
- COND: 交易条件代码
- CORR: 修改标识, 交易为正常即没有经 过校正、修改或者被标记为取消
- G127 Combined "G", Rule 127, and stopped stock trade
Data Structure of Quote data
- BID:卖价
- BIDSIZ:卖出量,以100股为单位
- OFR:买价
- OFRSIZ:买入量
- MODE:报价条件标识
R的高频数据分析包
- R中针对高频数据的添加包:highfrequency
- 该包最新版本为0.2,基于R 2.12.0或者更高 版本,依赖于 xts, zoo两个包。
- RTAQ (Cornelissen and Boudt 2012 ) TradeAnalytics project
- realized (Payseur 2008)
highfrequency是另外两个已有R包的更新版 - 两个都被移除了
Highfrequency主要功能
- 组织高频数据
- 高频数据的清理、整理
- 高频数据的汇总
- 高频数据的相关模型:
- 波动率模型
- 流动性
三类高频数据
- NYSE TAQ数据库中的 .txt文件
- WRDS数据库中的 .csv文件
- Tickdata.com的.asc文件
- 函数convert()可以把上述三类数据转换为xts对象
convert(
from,
to,
datasource,
datadestination,
trades=TRUE,
quotes=FALSE,
ticker=c("AA","AAPL"),
dir=TRUE,
extension="txt",
header=FALSE,
tradecolnames=NULL,
quotecolnames=NULL,
format="%Y%m%d%H:%M:%S");
- 函数TAQLoad把数据载入 R 中
高频数据的处理
等间隔数据、数据同步
- aggregatets(data,on="minutes",k=1)
- refreshTime(list(stock1,stock2))
Realized volatility measures
波动率预测
- HAR-模型 Heterogeneous Autoregressive
- 它实现了三种类型的HAR模型
- HAR-RV:
- HAR-RV-J:
- HAR-RV-CJ:Jump + Continuous Sample path Component Variation
harModel(
data,
periods = c(1, 5, 22),
periodsJ = c(1,5,22),
leverage=NULL,
RVest = c("rCov", "rBPCov"),
type = "HARRV",
jumptest = "ABDJumptest",
alpha = 0.05,
h = 1,
transform = NULL, ...)
HAR-RV: Dow Jones Industrial Average in 2008
用 R 进行高频金融数据分析简介的更多相关文章
- 【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
更多精彩内容,欢迎关注公众号:数量技术宅.探讨数据分析.量化投资问题,请加技术宅微信:sljsz01 投资股票指数相比个股的优势 我们在投资股票的时候,如果持仓集中在一只或者有限几只股票上,恰好不幸遇 ...
- Python 金融数据分析库及相关框架
BackTest框架库: PyAlgoTrade ZipLine 金融数据分析库: pandas
- R语言实现金融数据的时间序列分析及建模
R语言实现金融数据的时间序列分析及建模 一 移动平均 移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动 ...
- R语言数据处理利器——dplyr简介
dplyr是由Hadley Wickham主持开发和维护的一个主要针对数据框快速计算.整合的函数包,同时提供一些常用函数的高速写法以及几个开源数据库的连接.此包是plyr包的深化功能包,其名字中的字母 ...
- Python数据分析简介
1,Python作为一门编程语言开发效率快,运行效率被人诟病,但是Python核心部分使用c/c++等更高效的语言来编写的还有强大的numpy, padnas, matplotlib,scipy库等应 ...
- R vs Python,数据分析中谁与争锋?
R和Python两者谁更适合数据分析领域?在某些特定情况下谁会更有优势?还是一个天生在各方面都比另一个更好? 当我们想要选择一种编程语言进行数据分析时,相信大多数人都会想到R和Python——但是从这 ...
- 初次用R的实际案例数据分析
这是一次教授布置的期末作业,也是书籍<商务数据分析与应用>的一个课后作业 目录 数据描述 数据预处理 描述性统计分析 模型分析(方差分析) 数据描述 非学位职业培训机构的178个学员的数据 ...
- 金融数据分析还能这样做?快试试这个BI工具小白也能学会!
说起银行.保险.股票投资等这些金融行业,大多数人都认为它们都是依靠数据驱动的企业,毕竟大数据的诞生本来就是为了金融信息流通而服务的,但是事实真的是这样吗? 事实并非如此,真正在金融行业做数据分析的人, ...
- R语言统计学习-1简介
一. 统计学习概述 统计学习是指一组用于理解数据和建模的工具集.这些工具可分为有监督或无监督.1.监督学习:用于根据一个或多个输入预测或估计输出.常用于商业.医学.天体物理学和公共政策等领域.2.无监 ...
随机推荐
- JDBC步骤
总结JDBC五步骤: 1.Class.forName 加载驱动 2.conn = (Connection) DriverManager.getConnection(url, user, passwor ...
- Vue.JS入门学习随笔
PS:先说说学习Vue的缘由吧,学习完了React之后,突然发现又出了一款叫做vue的框架,而且据说可以引领又一波新框架的潮流,我容易吗我!!! Vue.js(读音 /vjuː/, 类似于view ...
- NodeJS搭建HTTPS服务器
[NodeJS搭建HTTPS服务器] http://cnodejs.org/topic/54745ac22804a0997d38b32d
- c# NPOI 导出EXCEL
需要引入dll文件 也可以在NuGet里面管理(推荐) 比较方便 . using System; using System.Collections.Generic; using System.Linq ...
- Function类型
1.每个函数都是Function类型的,和其他引用类型一样都具有属性和方法.函数也是对象,因此函数实际上是一个指向函数对象的指针. 函数声明语法定义: 方法1: function sum(num1,n ...
- 关于 The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. 异常处理
导入Excel在本地环境没有问题,但部署到服务器上后出现异常. 经排查,是系统问题,因为本地是32位系统,而服务器上则是64位系统. 解决方法: 1.打开IIS管理器 2.右击应用程序所在的连接池 3 ...
- IT学习网站集结
IT的学习网站: 慕课网 http://www.imooc.com 51CTO http://www.51cto.com/ CSDN http://www.csdn.net/ 极客 ...
- 自定义ViewGroup
ViewGroup --->A ViewGroup is a special view that can contain other views (called children.) The v ...
- swift 之 闭包
一.闭包 格式:{ ( 参数名:类型, 参数名:类型 .. ) in 内容体 return 返回值 } 最完整的闭包 1.省略参数类型 { ( 参数名, 参数名.. ) ...
- 防止多次领取红包进行ID锁
//controller里面使用锁 ActivityRedPacket ap = customerService.getActivityRedPacket(params); if (synchr ...