R:quantmod包

1、获取每日行情数据

> stock<-getSymbols("600742.ss",from="2017-01-01",to="2017-01-20",src="yahoo",auto.assign=FALSE)
> stock
           600742.SS.Open 600742.SS.High 600742.SS.Low 600742.SS.Close 600742.SS.Volume 600742.SS.Adjusted
2017-01-02          16.13          16.13         16.13           16.13                0              16.13
2017-01-03          16.15          16.56         16.13           16.52          5483400              16.52
2017-01-04          16.52          16.83         16.33           16.78         10726100              16.78
2017-01-05          16.68          16.79         16.56           16.59          5863500              16.59
2017-01-06          16.60          17.16         16.60           17.00          9846200              17.00
2017-01-09          16.90          17.79         16.86           17.65         12868900              17.65
2017-01-10          17.65          17.72         17.30           17.41          7709800              17.41
2017-01-11          17.36          17.54         16.83           16.89          7001100              16.89
2017-01-12          16.96          17.31         16.91           17.04          6430800              17.04
2017-01-13          17.04          17.14         16.56           16.58          6479300              16.58
2017-01-16          16.58          16.58         15.53           16.26          8785800              16.26
2017-01-17          16.25          16.60         16.09           16.59          5856200              16.59
2017-01-18          16.50          16.79         16.46           16.66          3769200              16.66
2017-01-19          16.70          16.79         16.56           16.59          2953600              16.59
2017-01-20          16.59          16.74         16.48           16.69          5595000              16.69

2、获取股息数据

> getDividends("600742.ss",from="2013-01-01",to="2017-01-01")
2013-06-18 0.56
2014-06-17 0.35
2015-06-09 0.48
2016-06-21 0.50

3、提取开盘价

> Op(stock)
           600742.SS.Open
2017-01-02          16.13
2017-01-03          16.15
2017-01-04          16.52
2017-01-05          16.68
2017-01-06          16.60
2017-01-09          16.90
2017-01-10          17.65
2017-01-11          17.36
2017-01-12          16.96
2017-01-13          17.04
2017-01-16          16.58
2017-01-17          16.25
2017-01-18          16.50
2017-01-19          16.70
2017-01-20          16.59

此类函数还有:Hi()、Lo()、Cl()、Vo()、OHLC(),分别提取最高价、最低价、收盘价、成交量和四种价格数据。

4、计算变化率:Delt()函数

主要是用来计算一个序列的一个阶段到另一个阶段的变化率或者计算两个序列之间的变化率。

> Delt(Op(stock))  #计算每日开盘价格变化率
           Delt.1.arithmetic
2017-01-02                NA
2017-01-03       0.001239926
2017-01-04       0.022910217
2017-01-05       0.009685230
2017-01-06      -0.004796163
2017-01-09       0.018072289
2017-01-10       0.044378698
2017-01-11      -0.016430595
2017-01-12      -0.023041475
2017-01-13       0.004716981
2017-01-16      -0.026995305
2017-01-17      -0.019903498
2017-01-18       0.015384615
2017-01-19       0.012121212
2017-01-20      -0.006586826

> Delt(Op(stock),Cl(stock))  #计算每日开盘价和收盘价之间的变化率
           Delt.0.arithmetic
2017-01-02       0.000000000
2017-01-03       0.022910217
2017-01-04       0.015738499
2017-01-05      -0.005395683
2017-01-06       0.024096386
2017-01-09       0.044378698
2017-01-10      -0.013597734
2017-01-11      -0.027073733
2017-01-12       0.004716981
2017-01-13      -0.026995305
2017-01-16      -0.019300362
2017-01-17       0.020923077
2017-01-18       0.009696970
2017-01-19      -0.006586826
2017-01-20       0.006027728

5、first()函数和last()函数

求出对象的前k个元素或者后k个元素,类似数据框的head()和tail()函数。

> first(stock,3)
           600742.SS.Open 600742.SS.High 600742.SS.Low 600742.SS.Close 600742.SS.Volume 600742.SS.Adjusted
2017-01-02          16.13          16.13         16.13           16.13                0              16.13
2017-01-03          16.15          16.56         16.13           16.52          5483400              16.52
2017-01-04          16.52          16.83         16.33           16.78         10726100              16.78

6、to.weekly()和to.monthly()函数

分别把OHLC数据转化为周数据或者月数据。

> to.weekly(stock)
           stock.Open stock.High stock.Low stock.Close stock.Volume stock.Adjusted
2017-01-06      16.13      17.16     16.13       17.00     31919200          17.00
2017-01-13      16.90      17.79     16.56       16.58     40489900          16.58
2017-01-20      16.58      16.79     15.53       16.69     26959800          16.69

> to.monthly(stock)
        stock.Open stock.High stock.Low stock.Close stock.Volume stock.Adjusted
1月 2017      16.13      17.79     15.53       16.69     99368900          16.69

7、返回整个时间序列价格的极值记录

> seriesLo(stock)    #返回序列最低价记录
           600742.SS.Open 600742.SS.High 600742.SS.Low 600742.SS.Close 600742.SS.Volume 600742.SS.Adjusted
2017-01-16          16.58          16.58         15.53           16.26          8785800              16.26
> seriesHi(stock)    #返回序列最高价记录
           600742.SS.Open 600742.SS.High 600742.SS.Low 600742.SS.Close 600742.SS.Volume 600742.SS.Adjusted
2017-01-09           16.9          17.79         16.86           17.65         12868900              17.65

8、获取市场上涨/下跌序列的逻辑值

> seriesIncr(Cl(stock),thresh=0, diff.=1L)
           600742.SS.Close
2017-01-02              NA
2017-01-03            TRUE
2017-01-04            TRUE
2017-01-05           FALSE
2017-01-06            TRUE
2017-01-09            TRUE
2017-01-10           FALSE
2017-01-11           FALSE
2017-01-12            TRUE
2017-01-13           FALSE
2017-01-16           FALSE
2017-01-17            TRUE
2017-01-18            TRUE
2017-01-19           FALSE
2017-01-20            TRUE
> seriesDecr(Cl(stock),thresh=0, diff.=1L)
           600742.SS.Close
2017-01-02              NA
2017-01-03           FALSE
2017-01-04           FALSE
2017-01-05            TRUE
2017-01-06           FALSE
2017-01-09           FALSE
2017-01-10            TRUE
2017-01-11            TRUE
2017-01-12           FALSE
2017-01-13            TRUE
2017-01-16            TRUE
2017-01-17           FALSE
2017-01-18           FALSE
2017-01-19            TRUE
2017-01-20           FALSE

9、获取市场持续上涨/下跌序列的逻辑值

> seriesAccel(Cl(stock))
           600742.SS.Close
2017-01-02              NA
2017-01-03              NA
2017-01-04           FALSE
2017-01-05           FALSE
2017-01-06            TRUE
2017-01-09            TRUE
2017-01-10           FALSE
2017-01-11           FALSE
2017-01-12            TRUE
2017-01-13           FALSE
2017-01-16            TRUE
2017-01-17            TRUE
2017-01-18           FALSE
2017-01-19           FALSE
2017-01-20            TRUE
> seriesDecel(Cl(stock))
           600742.SS.Close
2017-01-02              NA
2017-01-03              NA
2017-01-04            TRUE
2017-01-05            TRUE
2017-01-06           FALSE
2017-01-09           FALSE
2017-01-10            TRUE
2017-01-11            TRUE
2017-01-12           FALSE
2017-01-13            TRUE
2017-01-16           FALSE
2017-01-17           FALSE
2017-01-18            TRUE
2017-01-19            TRUE
2017-01-20           FALSE

10、序列向前K个周期

> Next(stock,1)
            Next
2017-01-02 16.15
2017-01-03 16.52
2017-01-04 16.68
2017-01-05 16.60
2017-01-06 16.90
2017-01-09 17.65
2017-01-10 17.36
2017-01-11 16.96
2017-01-12 17.04
2017-01-13 16.58
2017-01-16 16.25
2017-01-17 16.50
2017-01-18 16.70
2017-01-19 16.59
2017-01-20 16.56

11、计算不同周期的收益率

> dailyReturn(stock)
           daily.returns
2017-01-02   0.000000000
2017-01-03   0.024178549
2017-01-04   0.015738499
2017-01-05  -0.011323004
2017-01-06   0.024713683
2017-01-09   0.038235294
2017-01-10  -0.013597734
2017-01-11  -0.029867892
2017-01-12   0.008880995
2017-01-13  -0.026995305
2017-01-16  -0.019300362
2017-01-17   0.020295203
2017-01-18   0.004219409
2017-01-19  -0.004201681
2017-01-20   0.006027728

类似函数还有:weeklyReturn()、monthlyReturn()和yearlyReturn()。

12、获取配股数据

> getSplits("600755.ss")
           600755.ss.spl
2004-05-17     0.5555556
2011-07-01     0.7692308

13、获取外汇数据

> getFX("USD/JPY",from=Sys.Date()-10,to=Sys.Date(),auto.assign=TRUE)
[1] "USDJPY"
> get("USDJPY")
           USD.JPY
2017-02-14 113.725
2017-02-15 114.396
2017-02-16 113.720
2017-02-17 113.101
2017-02-18 112.793
2017-02-19 112.790
2017-02-20 113.073
2017-02-21 113.530
2017-02-22 113.357
2017-02-23 113.059

13、获取道琼斯指数数据

> getSymbols("DJIA",src="yahoo",from=Sys.Date()-10,to=Sys.Date())
[1] "DJIA"
> DJIA
           DJIA.Open DJIA.High DJIA.Low DJIA.Close DJIA.Volume DJIA.Adjusted
2017-02-27  20808.71  20915.96 20706.20   20837.44  3582610000      20837.44
2017-02-28  20833.88  20921.64 20720.78   20812.24  4210140000      20812.24
2017-03-01  20957.29  21212.94 20924.14   21115.55  4345180000      21115.55
2017-03-02  21128.91  21200.31 20939.35   21002.97  3821320000      21002.97
2017-03-03  21008.75  21113.81 20898.60   21005.71  3555260000      21005.71
2017-03-06  20955.71  21041.62 20838.57   20954.34  3232700000      20954.34

(完)

转载于:https://my.oschina.net/u/3093769/blog/838490

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值