r语言获取a股数据_r语言在金融中的应用「建议收藏」

r语言获取a股数据_r语言在金融中的应用「建议收藏」介绍获取金融数据最重要的包Quantmod及它的使用,还有获取各类金融数据的方法_getsymbols函数

quantmod包

quantmod包提供了量化投资分析的一体化解决方案,它能够帮助使用者完成提取数据、数据重整、金融建模、交易回测和模型可视化等诸多环节。

getSymbols()函数

  1. 安装和加载包
install.packages("quantmod")
library(quantmod)
  1. 查看该函数的主要参数

> args(getSymbols)
function (Symbols = NULL, env = parent.frame(), reload.Symbols = FALSE, 
    verbose = FALSE, warnings = TRUE, src = "yahoo", symbol.lookup = TRUE, 
    auto.assign = getOption("getSymbols.auto.assign", TRUE), 
    ...) 

对各项参数的解释
在这里插入图片描述

  • getSymbols()函数可以从网络上常用金融数据库中抓取金融数据,目前支持的数据库包括:yahoo、google、FRED、oanda
    从上面几个数据库中,我们可以获取上市公司的股票数据,包括股票日交易数据、股息数据、拆股数据、财务报表数据、期权列表数据;以及汇市数据、重金属交易数据以及美联储官网公布的若干经济数据(注:获取数据时可能会由于网络问题出现’服务器无响应’或’操作超时’的提示,特别是指定抓取数据的网址为’yahoo’时)。

getSymbols()函数参数的特例

getSymbols(‘AAPL’,src=’csv’) 目前尝试把csv文件放在其他目录会发生错误,虽然路径也改了

  • getSymblos.csv 会发生错误,以后再试试 – – getSymbols.FRED
  • getSymbols.google
  • getSymbols.MySQL
  • getSymbols.oanda
  • getSymbols.rda
  • getSymbols.yahoo
  • getSymbols.yahooj
  • setSymbolLookup
交易数据获取与处理函数 目的
getDividends 获取分红数据
getSplits 获取送股数据
getFinancials 获取财务报表
getQuote 获取实时股票数据
getFX 获取外汇数据
getMetals 获取金属价格数据
adjustOHLC 除权除息函数
Delt 计算两个序列对应数据差值比例
finsPeaks 找到某一序列最高值
has.OHL
OHLC.Transformations OHLC对象数据的提取与变换
options.expiry
periodReturn 计算区间的收益
adjustOHLC() 除权、出息函数
Next()、Lag() 前置、后置函数,有可选项
redenominate 改变某一instrument的基础货币
volep 生成volumebar的端点(这对包含volume的时间序列数据)

specifyModel modelData getModelData builData buildModel fittedModel
等函数是一个系列

绘图函数及其附件
chartSeries
chart_Series
chartTheme
chob-class
chobTA-class
newTA
setTA
TA
zoomChart
saveChart
建模函数
specifyModel
buildData
buildMode
tradeModel
fittedMode
modelSignal
moldeData
getModelData
is.quantmod
defaults
creat.binding
getOptionChain

获取股票数据

1. 股票日交易数据

  • 美股代码查询:美股列表
  • 上交所、深交所股票代码查询:股票代码查询一览表

代码中的’.ss’表示该公司的股票从属于上交所。类似地,可以获取上证A股指数(代码为 000002.ss)、上证B股指数(代码为000003.ss)、上证综合指数(代码为000008.ss)、沪深300指数(代码为 000300.ss)、深圳成指(代码为 399001.sz)等,需要获取深交所股票数据时,把’.ss’替换为’.sz’。

一个例子

# 查询微软公司的股票交易数据
> getSymbols("MSFT",src='yahoo')  #google失效
[1] "MSFT"
# 获取最近三天的交易数据
> tail(MSFT,3)
           MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
2019-10-30    143.52    145.00   142.79     144.61    18471700        144.61
2019-10-31    144.90    144.93   142.99     143.37  2459620000        143.37
2019-11-01    144.26    144.42   142.97     143.72    33119200        143.72
> 

getSymbols结果重命名

# 获取上交所基金科瑞(500056)的股票数据
> setSymbolLookup(JJKR=list(name="500056.SS",src="yahoo"))
> getSymbols("JJKR")

2. 各种指数的日数据

# 获取上证指数的日数据(^SSEC)
> getSymbols("^SSEC")
> tail(SSEC,3)
           SSEC.Open SSEC.High SSEC.Low SSEC.Close SSEC.Volume SSEC.Adjusted
2017-08-24  3287.959  3297.989 3266.359   3271.512      163500      3271.512
2017-08-25  3271.461  3331.915 3271.461   3331.522      205800      3331.522
2019-11-01  2924.340  2959.833 2917.146   2958.199  3105835412      2958.199
> 

3. 股息数据

# 获取微软公司的股息数据(只显示三条数据)
> getDividends("MSFT")
           MSFT.div
2003-02-19     0.08
2003-10-15     0.16
2004-08-23     0.08
2004-11-15     3.08
2005-02-15     0.08
2005-05-16     0.08
2005-08-15     0.08
2005-11-15     0.08

接下来,我们根据股息调整股票价格,adjustOHLC函数可以对股票数据进行除息调整。

> getSymbols("MSFT", from="2010-01-01", src="yahoo")
> tail(MSFT.a <- adjustOHLC(MSFT),3)
           MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
2019-10-30    143.52    145.00   142.79     144.61    18471700        144.61
2019-10-31    144.90    144.93   142.99     143.37  2459620000        143.37
2019-11-01    144.26    144.42   142.97     143.72    33119200        143.72
> 

4. 除权除息数据

# 获取苹果公司的除权股息数据
> getSplits("AAPL")
           AAPL.spl
1987-06-16 0.5000000
2000-06-21 0.5000000
2005-02-28 0.5000000
2014-06-09 0.1428571

5. 股票分割数据

> tail(getSplits("MSFT"),3)
           MSFT.spl
1998-02-23      0.5
1999-03-29      0.5
2003-02-18      0.5

6. 期权交易数据

利用**getOptionChain()**函数可以获取上市公司的期权交易数据
新浪财经50ETF期权行情接口
四种波动率

获取汇率数据

**getFX()**函数可以帮助我们从oanda获取汇率数据

# 获取美元与日元的汇率数据
> getFX("USD/JPY",from='2016-01-01')
[1] "USDJPY"
> tail(USDJPY,3)
           USD.JPY
2016-11-06 103.126
2016-11-07 104.312
2016-11-08 104.312
# 同样我们可以使用getSymbols函数来获取
> getSymbols("USD/JPY",src="oanda",from="2016-01-01")
[1] "USDJPY"

获取重金属交易数据

**getMetals()**函数可以获取重金属的交易数据

> getMetals(c("gold","XPD"),from='2016-01-01')
[1] "XAUUSD" "XPDUSD"
> tail(c(XAUUSD,XPDUSD),3)
            XAU.USD
2016-11-07  653.402
2016-11-08 1288.540
2016-11-08  653.402

获取美联储经济数据

> getSymbols('CPIAUCNS',src='FRED')
[1] "CPIAUCNS"
> tail(CPIAUCNS,3)
           CPIAUCNS
2016-07-01  240.628
2016-08-01  240.849
2016-09-01  241.428

Delt计算差值比例

Stock.Open <- c(102.25,102.87,102.25,100.87,103.44,103.87,103.00)
Stock.Close <- c(102.12,102.62,100.12,103.00,103.87,103.12,105.12)

Delt(Stock.Open)                    #one period pct. price change
Delt(Stock.Open,k=1)                #same
Delt(Stock.Open,type='arithmetic')  #using arithmetic differences (default)
Delt(Stock.Open,type='log')         #using log differences

Delt(Stock.Open,Stock.Close)        #Open to Close pct. change
Delt(Stock.Open,Stock.Close,k=0:2)  #...for 0,1, and 2 periods

periodReturn计算期间收益

getSymbols("YHOO")
#计算自2003年以来的dailyReturn、weeklyReturn、
#monthlyReturn、quaterlyReturn、annualReturn.
allReturns(YHOO,subset = "2003::")
periodReturn(YHOO,period='yearly',subset='2003::')#计算自2003年以来的年收益
periodReturn(YHOO,period='yearly',subset='2003')  # 计算2013年收益
yearlyReturn(YHOO,subset="2003")#同上

从数据库获取数据

quantmod除了支持从网络数据库直接抓取数据外,当然也支持从本地数据库读入数据。目前,能支持的数据库类型及调用函数如下:

  • getSymbols.rda():读取以.r格式存储的数据
  • getSymbols.csv():从csv文件读取OHLC数据
  • getSymbols.SQLite():从SQLite数据库读取数据
  • getSymbols.MySQL():从MySQL数据库读取数据

获取上市公司的财务报表

getFinancials()函数和getFin()函数可以获取上市公司的财务报表数据。
通过
view.Fin
函数,我们可以查看财务报表数据。

> getFinancials("AAPL")
[1] "AAPL.f"
> head(viewFin(AAPL.f),5)
                                 2016-09-24 2015-09-26 2014-09-27 2013-09-28
Cash & Equivalents                    11883       9731       3612       5554
Short Term Investments                46671      20481      11233      26287
Cash and Short Term Investments       67155      41601      25077      40546
Accounts Receivable - Trade, Net      15754      16849      17460      13102
Receivables - Other                      NA         NA         NA         NA

上证50ETF期权隐含波动率
参考自:
Quantmod Tutorial:数据获取(一)
R量化交易工具篇—quantmod包的基本应用

今天的文章r语言获取a股数据_r语言在金融中的应用「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89466.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注