R-金融数据分析


1.金融行情数据

传统故事交易图表(K线图等)

量化交易(量化投资等)

统计套利(套利策略、承兑交易、主成分分析法)

算法交易(被动型算法交易--减少滑价使用成交量加权平均价格和时间加权平均价格、主动型算法交易--实时策略判断)

高频交易(服务器群组)

2.前期准备-R软件

2.1 R中的部分网址

R官方网站网址:www.r-project.org/

R商业版本:www.revolutionanalytics.com/

Quantmod扩展包:www.quantmod.com/

R中其他与金融数据分析相关的包:mirrors.tuna.tsinghua.edu.cn/CRAN/

2.2安装quantmod包

#安装并加载Defaults、xts、zoo、TTR包,以zoo包为例

install.packages("zoo")

require("zoo")

#安装完上述四个包之后安装quantmod包

install.packages("quantmod")

require("quantmod")


3.函数

3.1 quantmod包中的函数

ETL类函数、分析类函数、展现类函数


常用数据类型


ETL类函数


3.2 数据源

Google Finance historical data

Google Finance balance sheets

Yahoo Finance historical data

www.oanda.com/

fred.stlouisfed.org/


3.3 其他工具

 RCurl

 RJSON

 RJSONIO

 XML

 Scraper

 WDI

 Tseries

 参考: www.dataguru.cn/article-1466-1.html

http://f.dataguru.cn/forum.php?mod=viewthread&tid=147799(f.dataguru.cn/forum.php)


3.4 getSymbols()函数

 获取上市公司股票的日交易数

> getSymbols("EDU",src="yahoo",from="2016-12-25",to="2017-01-24")

[1] "EDU"

Warning message:

In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  :

downloaded length 1225 != reported length 200

> EDU

雅虎股票日交易数据2016-12-25-2017-1-24

> new.environment<-new.env()

> getSymbols("AAPL",env=new.environment,src="yahoo",from="2016-12-25",to="2017-01-24")

[1] "AAPL"

Warning message:

In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  :

downloaded length 1395 != reported length 200

> ls(envir=new.environment)

[1] "AAPL"

> get("AAPL",envir=new.environment)

 获取各种指数的日数据

示例:获取护身300指数的日数据,代码为000300.ss,字母表示该指数从属于哪个交易所

getSymbols("000300.ss",env=new.environment,src="yahoo",from="2013-10-01",to="2013-10-23")

ls(envir=new.environment)

get("000300.ss",envir=new.environment)

3.5 getFX()函数

 从oanda上获取汇率

>new.environment=new.env()

> getFX("HKD/USD",from="2017-01-10",env=new.environment)

[1] "HKDUSD"

> get("HKDUSD",envir=new.environment)


汇率

3.6 getFianacials()函数

 从Google Finance上下载财务报表,其中包括income statement(IS), Balance Sheet(BS)和Cash Flow Statement(CF)

getFinancials("AAPL")

viewFinancials(AAPL.f)

getFinancials("AAPL",verbose=TRUE)

viewFinancials(AAPL.f)

viewFinancials(AAPL.f,c("CF","IS","BS"),"Q")


3.6 getDividends()函数

 从Yahoo! Finance上下载股息数据

getDividends("AAPL",from="2016-12-25",to="2017-01-24",env=new.environment,verbose=TRUE)


3.7 分析类函数

3.7.1 is族函数

判断数据类型

is.OHLC()

is.OHLCV()

is.BBO()

is.TBBO()

is.HLC()

示例


3.7.4  has族函数

检查数据里面是否包含某类型的数据

has.OHLC()

has.HLC()

has.OHLCV()

has.Op()

has.Hi()

has.Lo()

has.Cl()

has.Vo()

has.Ad()

has.Ask()

has.Bid()

has.Price()

has.Qty()

has.Trade()

示例


 列名函数

提取数据类型

Op()

Hi()

Lo()

Cl()

Vo()

Ad()

HLC()

OHLC()

示例



 计算函数

 Delt() 计算变化率

 Lag() 求滞后k期

 Next() 求k个后

 first() 求前k个

 last() 求后k个

 findPeaks() 找出峰值

 findValleys() 找出谷值

 seriesIncr() 差分后大于限值的点

 seriesDecr() 差分后小于限值的点

 endpoints() 寻找节点

 to.weekly() 将OHLC数据转化为周数据

 to.monthly() 将PHLC数据转化为月数据

 periodicity() 返回数据的日期范围


参考:[1]《金融数据分析导论:基于R语言》习题答案第一章blog.csdn.net/luciaxll/article/details/47295793




附录


#安装并加载Defaults、xts、zoo、TTR包,以zoo包为例

install.packages("zoo")

require("zoo")

install.packages("xts")

require("xts")

install.packages("TTR")

require("TTR")

install.packages("Defaults")

require("Defaults")

#安装完上述四个包之后安装quantmod包

install.packages("quantmod")

require("quantmod")

#获取上市公司股票的日交易数

getSymbols("EDU",src="yahoo",from="2016-12-25",to="2017-01-24")

EDU

new.environment<-new.env()

getSymbols("AAPL",env=new.environment,src="yahoo",from="2016-12-25",to="2017-01-24")

ls(envir=new.environment)

get("AAPL",envir=new.environment)

#获取各种指数的日数据

getSymbols("000300.ss",env=new.environment,src="yahoo",from="2013-10-01",to="2013-10-23")

ls(envir=new.environment)

get("000300.ss",envir=new.environment)

#从oanda上获取汇率

new.environment=new.env()

getFX("HKD/USD",from="2017-01-10",env=new.environment)

get("HKDUSD",envir=new.environment)

#从Google Finance上下载财务报表

getFinancials("AAPL")

viewFinancials(AAPL.f)

getFinancials("AAPL",verbose=TRUE)

viewFinancials(AAPL.f)

viewFinancials(AAPL.f,c("CF","IS","BS"),"Q")

#从Yahoo! Finance上下载股息数据

getDividends("AAPL",from="2016-12-25",to="2017-01-24",env=new.environment,verbose=TRUE)

#判断数据类型

getSymbols("AAPL",env=new.environment,src="yahoo",from="2013-10-01",to="2013-10-23")

is.OHLC(AAPL)

is.OHLCV(AAPL)

is.BBO(AAPL)

is.TBBO(AAPL)

is.HLC(AAPL)

#检查数据里面包含某种数据类型

has.OHLC(AAPL)

has.OHLC(AAPL,which=FALSE)

has.OHLC(AAPL,which=TRUE)

AAPL

#提取数据类型

Op(AAPL)

OHLC(AAPL)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,067评论 19 139
  • 2017年11月2日,特邀嘉宾王淑君老师做客三小家庭教育公益讲座,给我们带来了一场育儿盛宴。 下面是这次互动实录的...
    靳志勇阅读 1,081评论 0 3
  • 并非偶然想起是我时常惦记,同学们你们还好吗? 我并不知道,好多同学都好少联系甚至断了联系。 也是不知道从何时开始,...
    墨存啊阅读 478评论 0 2
  • 那些年的青春校园电影,不知道你看过多少。 怦然心动,豆瓣评分8.9,讲述了邻家女孩对男主一见钟情,男...
    ad41af5044a9阅读 420评论 0 1