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)

你可能感兴趣的:(R-金融数据分析)