2 1 Rquantmod Loading required package quantmod Loading

  • Slides: 40
Download presentation

功能简介(2. 1抓取数据) • 除了利用R语言中原生的数据导入方法之外,quantmod还可以从线上抓取金融交易 数据。比如,运行下面的代码可以获得中国移动的日交易数据: • #Loading required package: quantmod • # Loading required

功能简介(2. 1抓取数据) • 除了利用R语言中原生的数据导入方法之外,quantmod还可以从线上抓取金融交易 数据。比如,运行下面的代码可以获得中国移动的日交易数据: • #Loading required package: quantmod • # Loading required package: xts • # Loading required package: zoo • # Attaching package: ‘zoo’ • # The following objects are masked from ‘package: base’: # # as. Date, as. Date. numeric • # Loading required package: TTR • # Version 0. 4 -0 included new data defaults. See ? get. Symbols

## As of 0. 4 -0, ‘get. Symbols’ uses env=parent. frame() and ## auto.

## As of 0. 4 -0, ‘get. Symbols’ uses env=parent. frame() and ## auto. assign=TRUE by default. ## ## This behavior will be phased out in 0. 5 -0 when the call will ## default to use auto. assign=FALSE. get. Option(“get. Symbols. env”) and ## get. Options(“get. Symbols. auto. assign”) are now checked for alternate defaults ## ## This message is shown once per session and may be disabled by setting ## options(“get. Symbols. warning 4. 0″=FALSE). See ? get. Symbols for more details. ## [1] “CHL”

## [1] TRUE # GS. Open GS. High GS. Low GS. Close GS. Volume

## [1] TRUE # GS. Open GS. High GS. Low GS. Close GS. Volume GS. Adjusted## 200710 -31 240. 36 250. 7 240 247. 92 14384600 222. 9806

1. 1 获取网络开放数据 • quantmod包中的get. Symbols函数可以从网络上获取数据,用args函数看一下它的用法: • # Loading required package: quantmod • #

1. 1 获取网络开放数据 • quantmod包中的get. Symbols函数可以从网络上获取数据,用args函数看一下它的用法: • # Loading required package: quantmod • # Loading required package: xts • # Loading required package: zoo • # Attaching package: ‘zoo’ • # The following objects are masked from ‘package: base’: # # as. Date, as. Date. numeric • # Loading required package: TTR • # Version 0. 4 -0 included new data defaults. See ? get. Symbols.

# function (Symbols = NULL, env = parent. frame(), reload. Symbols = FALSE, #

# function (Symbols = NULL, env = parent. frame(), reload. Symbols = FALSE, # verbose = FALSE, warnings = TRUE, src = “yahoo”, symbol. lookup = TRUE, # auto. assign = get. Option(“get. Symbols. auto. assign”, TRUE), # …) # NULL

1. 1. 1 获取股票数据 • 获取股票日交易数据 • get. Symbols函数获取股票的日交易数据很简单。比如,想要获取中国移动通讯公司的日交 易数据,可以运行下面的代码: • # As of

1. 1. 1 获取股票数据 • 获取股票日交易数据 • get. Symbols函数获取股票的日交易数据很简单。比如,想要获取中国移动通讯公司的日交 易数据,可以运行下面的代码: • # As of 0. 4 -0, ‘get. Symbols’ uses env=parent. frame() and # auto. assign=TRUE by default. # # This behavior will be phased out in 0. 5 -0 when the call will # default to use auto. assign=FALSE. get. Option(“get. Symbols. env”) and # get. Options(“get. Symbols. auto. assign”) are now checked for alternate defaults # # This message is shown once per session and may be disabled by setting # options(“get. Symbols. warning 4. 0″=FALSE). See ? get. Symbols for more details. • # [1] “CHL”

## CHL. Open CHL. High CHL. Low CHL. Close CHL. Volume CHL. Adjusted ##

## CHL. Open CHL. High CHL. Low CHL. Close CHL. Volume CHL. Adjusted ## 2007 -01 -03 45. 45 46. 84 45. 45 46. 14 3538300 33. 32462 ## 2007 -01 -04 44. 25 45. 05 43. 62 44. 43 3210000 32. 08958 ## 2007 -01 -05 44. 99 43. 12 43. 24 2036300 31. 23010 ## 2007 -01 -08 43. 69 44. 07 43. 16 43. 90 1230200 31. 70678 ## 2007 -01 -09 42. 98 41. 56 41. 85 2566100 30. 22617 ## 2007 -01 -10 41. 41 42. 12 40. 86 41. 96 1987000 30. 30562 代码中的CHL是中国移动通讯公司在美国市场上的股票缩写 码。

同样的,可以获取苹果公司和新东方公司的日交 易数据: ## [1] “AAPL” ## AAPL. Open AAPL. High AAPL. Low AAPL. Close

同样的,可以获取苹果公司和新东方公司的日交 易数据: ## [1] “AAPL” ## AAPL. Open AAPL. High AAPL. Low AAPL. Close AAPL. Volume ## 2007 -01 -03 86. 29 86. 58 81. 90 83. 80 309579900 ## 2007 -01 -04 84. 05 85. 95 83. 82 85. 66 211815100 ## 2007 -01 -05 85. 77 86. 20 84. 40 85. 05 208685400 ## 2007 -01 -08 85. 96 86. 53 85. 28 85. 47 199276700 ## 2007 -01 -09 86. 45 92. 98 85. 15 92. 57 837324600 ## 2007 -01 -10 94. 75 97. 80 93. 45 97. 00 738220000 ## AAPL. Adjusted ## 2007 -01 -03 11. 01952 ## 2007 -01 -04 11. 26411 ## 2007 -01 -05 11. 18389 ## 2007 -01 -08 11. 23912 ## 2007 -01 -09 12. 17276 ## 2007 -01 -10 12. 75529

除了上面列举的个股日交易数据之外,还可以获取各种指数的日数据。 比如,可以获取一下上证指数的日数据。上证指数的符号是^SSEC,运 行下面的代码可以获取上证指数的日数据: ## [1] “SSEC” ## SSEC. Open SSEC. High SSEC. Low SSEC.

除了上面列举的个股日交易数据之外,还可以获取各种指数的日数据。 比如,可以获取一下上证指数的日数据。上证指数的符号是^SSEC,运 行下面的代码可以获取上证指数的日数据: ## [1] “SSEC” ## SSEC. Open SSEC. High SSEC. Low SSEC. Close SSEC. Volume ## 2007 -01 -04 2728. 188 2847. 615 2684. 818 2715. 719 120200 ## 2007 -01 -05 2668. 577 2685. 804 2617. 019 2641. 334 106200 ## 2007 -01 -08 2621. 068 2708. 444 2620. 625 2707. 199 106800 ## 2007 -01 -09 2711. 049 2809. 394 2691. 360 2807. 804 110800 ## 2007 -01 -10 2838. 113 2841. 741 2770. 988 2825. 576 111800 ## 2007 -01 -11 2819. 367 2841. 180 2763. 886 2770. 110 121600 ## SSEC. Adjusted ## 2007 -01 -04 2715. 719 ## 2007 -01 -05 2641. 334 ## 2007 -01 -08 2707. 199 ## 2007 -01 -09 2807. 804 ## 2007 -01 -10 2825. 576 ## 2007 -01 -11 2770. 110 从上面几个例子中可以看到,在获取股票日交易数据之前, 需要知道上市公司股票或者指数的缩写码。

## [1] “CSI 300” ## 000300. SS. Open 000300. SS. High 000300. SS. Low

## [1] “CSI 300” ## 000300. SS. Open 000300. SS. High 000300. SS. Low 000300. SS. Close ## 2015 -12 -11 3608. 06 ## 2015 -12 -14 3711. 32 ## 2015 -12 -15 3694. 39 ## 2015 -12 -16 3685. 44 ## 2015 -12 -17 3755. 89 ## 2015 -12 -18 3767. 91 ## 000300. SS. Volume 000300. SS. Adjusted ## 2015 -12 -11 0 3608. 06 ## 2015 -12 -14 0 3711. 32 ## 2015 -12 -15 0 3694. 39 ## 2015 -12 -16 0 3685. 44 ## 2015 -12 -17 0 3755. 89 ## 2015 -12 -18 0 3767. 91

获取股息数据 get. Dividends函数可以获取上市公司的股息数据。 ## [, 1] ## 2003 -03 -28 0. 205 ## 2003

获取股息数据 get. Dividends函数可以获取上市公司的股息数据。 ## [, 1] ## 2003 -03 -28 0. 205 ## 2003 -08 -27 0. 103 ## 2004 -06 -08 0. 128 ## 2004 -09 -01 0. 128 ## 2006 -05 -10 0. 367 ## 2006 -08 -30 0. 457 ## 2007 -05 -08 0. 533 ## 2007 -08 -29 0. 590 ## 2008 -04 -30 0. 754 ## 2008 -09 -11 0. 858 ## 2009 -05 -11 0. 906 ## 2009 -09 -10 0. 868 ## 2010 -05 -04 0. 939 ## 2010 -09 -07 0. 911 ## 2011 -05 -11 1. 024 ## 2011 -09 -06 1. 013 ## 2012 -05 -17 1. 125 ## 2012 -09 -04 1. 053 ## 2013 -05 -31 1. 145 ## 2013 -09 -04 1. 094 ## 2014 -05 -22 1. 042 ## 2014 -09 -02 0. 994 ## 2015 -06 -02 0. 889 ## 2015 -09 -02 0. 984 ## 2016 -05 -31 0. 771

根据股息调整股票价格 adjust. OHLC函数可以对股票数据进行除息调整。 ## [1] “CHL” ## CHL. Open CHL. High CHL. Low CHL.

根据股息调整股票价格 adjust. OHLC函数可以对股票数据进行除息调整。 ## [1] “CHL” ## CHL. Open CHL. High CHL. Low CHL. Close CHL. Volume CHL. Adjusted ## 1997 -10 -22 28. 50000 28. 93752 27. 25000 28. 00000 48774000 4. 708569 ## 1997 -10 -23 26. 75000 27. 62500 26. 37500 27. 62500 12589600 4. 645508 ## 1997 -10 -24 32. 50000 28. 50000 29. 06248 13516800 4. 887240 ## 1997 -10 -27 29. 56248 30. 87500 27. 81248 8522400 4. 677036 ## 1997 -10 -28 27. 12500 33. 50000 27. 00000 33. 50000 8966400 5. 633467 ## 1997 -10 -29 31. 06248 31. 75000 30. 06248 30. 50000 5478400 5. 128977

## CHL. Open CHL. High CHL. Low CHL. Close CHL. Volume CHL. Adjusted ##

## CHL. Open CHL. High CHL. Low CHL. Close CHL. Volume CHL. Adjusted ## 1997 -10 -22 4. 792651 4. 866226 4. 582447 4. 708570 48774000 4. 708569 ## 1997 -10 -23 4. 498366 4. 645508 4. 435304 4. 645508 12589600 4. 645508 ## 1997 -10 -24 5. 465304 4. 792651 4. 887240 13516800 4. 887240 ## 1997 -10 -27 4. 971321 5. 192039 4. 677036 8522400 4. 677036 ## 1997 -10 -28 4. 561427 5. 633467 4. 540406 5. 633467 8966400 5. 633467 ## 1997 -10 -29 5. 223566 5. 339182 5. 055403 5. 128978 5478400 5. 128977 ## CHL. Open CHL. High CHL. Low CHL. Close CHL. Volume CHL. Adjusted ## 1997 -10 -22 4. 792651 4. 866225 4. 582447 4. 708569 48774000 4. 708569 ## 1997 -10 -23 4. 498365 4. 645508 4. 435304 4. 645508 12589600 4. 645508 ## 1997 -10 -24 5. 465304 4. 792651 4. 887240 13516800 4. 887240 ## 1997 -10 -27 4. 971322 5. 192039 4. 677036 8522400 4. 677036 ## 1997 -10 -28 4. 561427 5. 633467 4. 540406 5. 633467 8966400 5. 633467 ## 1997 -10 -29 5. 223566 5. 339181 5. 055402 5. 128977 5478400 5. 128977

获取除权除息数据 使用get. Splits函数获取上市公司的除权除息数据: ## MSFT. spl ## 1987 -09 -21 0. 5000000 ## 1990

获取除权除息数据 使用get. Splits函数获取上市公司的除权除息数据: ## MSFT. spl ## 1987 -09 -21 0. 5000000 ## 1990 -04 -16 0. 5000000 ## 1991 -06 -27 0. 6666667 ## 1992 -06 -15 0. 6666667 ## 1994 -05 -23 0. 5000000 ## 1996 -12 -09 0. 5000000 ## 1998 -02 -23 0. 5000000 ## 1999 -03 -29 0. 5000000 ## 2003 -02 -18 0. 5000000

1. 1. 3获取重金属交易数据 get. Metals函数可以获取重金属的交易数据。 ## Warning in get. Symbols. oanda(Symbols = Currencies, from

1. 1. 3获取重金属交易数据 get. Metals函数可以获取重金属的交易数据。 ## Warning in get. Symbols. oanda(Symbols = Currencies, from = from, to = to, : ## incorrectly specified currency pair gold ## Warning in get. Symbols. oanda(Symbols = Currencies, from = from, to = to, : ## incorrectly specified currency pair XPD ## [1] “gold” “XPD” ## Warning in get. Symbols. oanda(Symbols = Currencies, from = from, to = to, : ## incorrectly specified currency pair plat ## [1] “plat”

查看数据 ## [1] “CHL” ## CHL CPIAUCNS AAPL CSI 300 A. SHARE. INDEX ##

查看数据 ## [1] “CHL” ## CHL CPIAUCNS AAPL CSI 300 A. SHARE. INDEX ## “yahoo” “FRED” “yahoo” ## 000002. SZ 399001. SZ 000001. SS 600635. SS SSEC ## “yahoo” “yahoo” ## EDU ## “yahoo”

移除数据 ## CPIAUCNS AAPL CSI 300 A. SHARE. INDEX 000002. SZ ## “FRED” “yahoo”

移除数据 ## CPIAUCNS AAPL CSI 300 A. SHARE. INDEX 000002. SZ ## “FRED” “yahoo” ## 399001. SZ 000001. SS 600635. SS SSEC EDU ## “yahoo” “yahoo” ## Trade Time Last Change % Change Open High Low Volume ## AAPL 2016 -06 -01 04: 00 98. 46 -1. 40% 98. 98 99. 54 98. 33 29173285 ## Trade Time Bid Ask ## QQQQ <NA> N/A ## SPY 2016 -06 -01 04: 00 210. 35 210. 36 ## ^VXN 2016 -06 -01 04: 14: 00 N/A

## [[1]] ## [1] “l 1 c 1 p 2 ohgv” ## ## [[2]]

## [[1]] ## [1] “l 1 c 1 p 2 ohgv” ## ## [[2]] ## [1] “Last” “Change” “% Change” “Open” “High” “Low” ## [7] “Volume” ## ## attr(, ”class”) ## [1] “quote. Format” # yahoo. QF()