R:quantmod包

一、獲取每日行情數據ide

> 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

二、獲取股息數據函數

> 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

三、提取開盤價code

> 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(),分別提取最高價、最低價、收盤價、成交量和四種價格數據。對象

四、計算變化率:Delt()函數get

主要是用來計算一個序列的一個階段到另外一個階段的變化率或者計算兩個序列之間的變化率。it

> 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

五、first()函數和last()函數ast

求出對象的前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

六、to.weekly()和to.monthly()函數di

分別把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

七、返回整個時間序列價格的極值記錄

> 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

八、獲取市場上漲/下跌序列的邏輯值

> 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

九、獲取市場持續上漲/下跌序列的邏輯值

> 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

十、序列向前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

十一、計算不一樣週期的收益率

> 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()。

十二、獲取配股數據

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

1三、獲取外匯數據

> 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

1三、獲取道瓊斯指數數據

> 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

(完)

相關文章
相關標籤/搜索