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类函数、分析类函数、展现类函数
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
> 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)