## 预加载相关的R包
library(timeSeries)
library(tseries)
library(quantmod) # 加载“金融量化建模包”
### 1. 时序数据处理
## 1) 输入并合并数据
### 联网在线读取股票数据,利用quantmod包
stock.names <- c('BABA','AMZN','FB')
getSymbols(stock.names, from='2020-01-01', to='2020-12-31', src="yahoo")
start(BABA)
end(BABA)
class(BABA)
head(BABA)
dim(BABA)
dim(AMZN)
[1] "BABA" "AMZN" "FB"
> start(BABA)
[1] "2020-01-02"
> end(BABA)
[1] "2020-12-30"
> class(BABA)
[1] "xts" "zoo"
> head(BABA)
BABA.Open BABA.High BABA.Low
2020-01-02 216.60 219.980 216.54
2020-01-03 216.35 218.203 216.01
2020-01-06 214.89 217.160 214.09
2020-01-07 217.64 218.940 216.69
2020-01-08 216.60 220.650 216.32
2020-01-09 221.50 223.080 220.82
BABA.Close BABA.Volume BABA.Adjusted
2020-01-02 219.77 15873500 219.77
2020-01-03 217.00 8604500 217.00
2020-01-06 216.64 11885500 216.64
2020-01-07 217.63 9388000 217.63
2020-01-08 218.00 11959100 218.00
2020-01-09 221.78 13122500 221.78
> dim(BABA)
[1] 252 6
> dim(AMZN)
[1] 252 6
assets <- merge.xts(BABA, AMZN, FB,all=FALSE)
dim(assets)
head(assets)
class(assets)
> assets <- merge.xts(BABA, AMZN, FB,all=FALSE)
> dim(assets)
[1] 252 18
> head(assets)
BABA.Open BABA.High BABA.Low
2020-01-02 216.60 219.980 216.54
2020-01-03 216.35 218.203 216.01
2020-01-06 214.89 217.160 214.09
2020-01-07 217.64 218.940 216.69
2020-01-08 216.60 220.650 216.32
2020-01-09 221.50 223.080 220.82
BABA.Close BABA.Volume BABA.Adjusted
2020-01-02 219.77 15873500 219.77
2020-01-03 217.00 8604500 217.00
2020-01-06 216.64 11885500 216.64
2020-01-07 217.63 9388000 217.63
2020-01-08 218.00 11959100 218.00
2020-01-09 221.78 13122500 221.78
AMZN.Open AMZN.High AMZN.Low
2020-01-02 1875.00 1898.01 1864.15
2020-01-03 1864.50 1886.20 1864.50
2020-01-06 1860.00 1903.69 1860.00
2020-01-07 1904.50 1913.89 1892.04
2020-01-08 1898.04 1911.00 1886.44
2020-01-09 1909.89 1917.82 1895.80
AMZN.Close AMZN.Volume AMZN.Adjusted
2020-01-02 1898.01 4029000 1898.01
2020-01-03 1874.97 3764400 1874.97
2020-01-06 1902.88 4061800 1902.88
2020-01-07 1906.86 4044900 1906.86
2020-01-08 1891.97 3508000 1891.97
2020-01-09 1901.05 3167300 1901.05
FB.Open FB.High FB.Low FB.Close
2020-01-02 206.75 209.79 206.27 209.78
2020-01-03 207.21 210.40 206.95 208.67
2020-01-06 206.70 212.78 206.52 212.60
2020-01-07 212.82 214.58 211.75 213.06
2020-01-08 213.00 216.24 212.61 215.22
2020-01-09 217.54 218.38 216.28 218.30
FB.Volume FB.Adjusted
2020-01-02 12077100 209.78
2020-01-03 11188400 208.67
2020-01-06 17058900 212.60
2020-01-07 14912400 213.06
2020-01-08 13475000 215.22
2020-01-09 12642800 218.30
> class(assets)
[1] "xts" "zoo"
## 2) 子集选择
assets <- assets[,c('BABA.Close', 'AMZN.Close','FB.Close')]
dim(assets)
head(assets)
> assets <- assets[,c('BABA.Close', 'AMZN.Close','FB.Close')]
> dim(assets)
[1] 252 3
> head(assets)
BABA.Close AMZN.Close FB.Close
2020-01-02 219.77 1898.01 209.78
2020-01-03 217.00 1874.97 208.67
2020-01-06 216.64 1902.88 212.60
2020-01-07 217.63 1906.86 213.06
2020-01-08 218.00 1891.97 215.22
2020-01-09 221.78 1901.05 218.30
## 3) 随机抽样、按时序排序
assets.ts <- as.timeSeries(assets)
class(assets.ts)
dim(assets.ts)
assets.samp <- sample(assets.ts, size=89)
dim(assets.samp)
print(assets.samp)
sort(assets.samp)
> assets.ts <- as.timeSeries(assets)
> class(assets.ts)
[1] "timeSeries"
attr(,"package")
[1] "timeSeries"
> dim(assets.ts)
[1] 252 3
> assets.samp <- sample(assets.ts, size=89)
>
> dim(assets.samp)
[1] 89 3
> print(assets.samp)
GMT
BABA.Close AMZN.Close FB.Close
2020-03-24 185.75 1940.10 160.98
2020-12-23 256.18 3185.27 268.11
2020-04-17 209.50 2375.00 179.24
2020-02-24 206.16 2009.29 200.72
2020-09-29 276.93 3144.88 261.79
2020-07-14 248.58 3084.00 239.73
2020-09-14 274.10 3102.97 266.15
2020-08-03 257.94 3111.89 251.96
2020-11-12 264.31 3110.28 275.08
2020-02-28 208.00 1883.75 192.47
2020-01-17 227.43 1864.72 222.14
2020-01-24 213.75 1861.64 217.94
2020-08-14 253.97 3148.02 261.24
2020-01-10 223.83 1883.16 218.06
2020-05-27 201.18 2410.39 229.14
2020-01-07 217.63 1906.86 213.06
2020-03-11 198.91 1820.86 170.24
2020-09-01 298.00 3499.12 295.44
2020-12-28 222.36 3283.96 277.00
2020-01-13 230.48 1891.30 221.91
2020-01-14 226.49 1869.44 219.06
2020-05-07 196.49 2367.61 211.26
2020-09-18 272.41 2954.91 252.53
2020-01-16 223.94 1877.94 221.77
2020-12-07 264.00 3158.00 285.58
2020-10-15 299.46 3338.65 266.72
2020-12-02 261.32 3203.53 287.52
2020-02-20 218.04 2153.10 214.58
2020-08-05 264.91 3205.03 249.12
2020-02-03 213.10 2004.20 204.19
2020-05-21 212.16 2446.74 231.39
2020-04-16 212.66 2408.19 176.25
2020-05-08 201.19 2379.61 212.35
2020-10-13 308.78 3443.63 276.14
2020-08-28 289.00 3401.80 293.66
2020-08-07 252.10 3167.46 268.44
2020-07-31 251.02 3164.68 253.67
2020-06-04 218.04 2460.60 226.29
2020-06-15 217.03 2572.68 232.50
2020-11-27 276.48 3195.34 277.81
2020-09-25 271.09 3095.13 254.82
2020-06-22 221.41 2713.82 239.22
2020-09-24 269.73 3019.79 249.53
2020-10-02 288.17 3125.00 259.94
2020-08-18 259.20 3312.49 262.34
2020-04-01 187.56 1907.70 159.60
2020-04-27 203.69 2376.00 187.50
2020-12-30 238.39 3285.85 271.87
2020-04-30 202.67 2474.00 204.71
2020-08-21 265.80 3284.72 267.01
2020-05-14 201.30 2388.85 206.81
2020-01-29 212.02 1858.00 223.23
2020-12-15 255.11 3165.12 275.55
2020-03-25 188.56 1885.84 156.21
2020-06-18 223.54 2653.98 235.94
2020-10-01 290.05 3221.26 266.63
2020-04-07 198.00 2011.60 168.83
2020-12-03 266.91 3186.73 281.85
2020-05-28 199.49 2401.10 225.46
2020-09-03 282.50 3368.00 291.12
2020-08-25 286.00 3346.49 280.82
2020-05-20 216.79 2497.94 229.97
2020-12-14 256.03 3156.97 274.19
2020-03-31 194.48 1949.72 166.80
2020-07-29 252.45 3033.53 233.29
2020-02-14 219.63 2134.87 214.18
2020-01-02 219.77 1898.01 209.78
2020-02-07 216.53 2079.28 212.33
2020-01-09 221.78 1901.05 218.30
2020-08-26 291.96 3441.85 303.91
2020-11-25 277.72 3185.07 275.59
2020-01-22 222.37 1887.46 221.32
2020-07-20 254.81 3196.84 245.42
2020-03-13 194.00 1785.00 170.28
2020-05-06 195.17 2351.26 208.47
2020-06-25 222.16 2754.58 235.68
2020-01-08 218.00 1891.97 215.22
2020-10-09 299.74 3286.65 264.45
2020-02-19 222.14 2170.22 217.49
2020-02-27 205.03 1884.30 189.75
2020-01-23 219.13 1884.58 219.76
2020-04-14 204.78 2283.32 178.17
2020-11-05 287.75 3322.00 294.68
2020-09-11 271.61 3116.22 266.61
2020-09-30 293.98 3148.73 261.90
2020-12-21 260.43 3206.18 272.79
2020-12-17 264.43 3236.08 274.48
2020-04-28 201.15 2314.08 182.91
2020-02-18 220.52 2155.67 217.80
> sort(assets.samp)
GMT
BABA.Close AMZN.Close FB.Close
2020-01-02 219.77 1898.01 209.78
2020-01-07 217.63 1906.86 213.06
2020-01-08 218.00 1891.97 215.22
2020-01-09 221.78 1901.05 218.30
2020-01-10 223.83 1883.16 218.06
2020-01-13 230.48 1891.30 221.91
2020-01-14 226.49 1869.44 219.06
2020-01-16 223.94 1877.94 221.77
2020-01-17 227.43 1864.72 222.14
2020-01-22 222.37 1887.46 221.32
2020-01-23 219.13 1884.58 219.76
2020-01-24 213.75 1861.64 217.94
2020-01-29 212.02 1858.00 223.23
2020-02-03 213.10 2004.20 204.19
2020-02-07 216.53 2079.28 212.33
2020-02-14 219.63 2134.87 214.18
2020-02-18 220.52 2155.67 217.80
2020-02-19 222.14 2170.22 217.49
2020-02-20 218.04 2153.10 214.58
2020-02-24 206.16 2009.29 200.72
2020-02-27 205.03 1884.30 189.75
2020-02-28 208.00 1883.75 192.47
2020-03-11 198.91 1820.86 170.24
2020-03-13 194.00 1785.00 170.28
2020-03-24 185.75 1940.10 160.98
2020-03-25 188.56 1885.84 156.21
2020-03-31 194.48 1949.72 166.80
2020-04-01 187.56 1907.70 159.60
2020-04-07 198.00 2011.60 168.83
2020-04-14 204.78 2283.32 178.17
2020-04-16 212.66 2408.19 176.25
2020-04-17 209.50 2375.00 179.24
2020-04-27 203.69 2376.00 187.50
2020-04-28 201.15 2314.08 182.91
2020-04-30 202.67 2474.00 204.71
2020-05-06 195.17 2351.26 208.47
2020-05-07 196.49 2367.61 211.26
2020-05-08 201.19 2379.61 212.35
2020-05-14 201.30 2388.85 206.81
2020-05-20 216.79 2497.94 229.97
2020-05-21 212.16 2446.74 231.39
2020-05-27 201.18 2410.39 229.14
2020-05-28 199.49 2401.10 225.46
2020-06-04 218.04 2460.60 226.29
2020-06-15 217.03 2572.68 232.50
2020-06-18 223.54 2653.98 235.94
2020-06-22 221.41 2713.82 239.22
2020-06-25 222.16 2754.58 235.68
2020-07-14 248.58 3084.00 239.73
2020-07-20 254.81 3196.84 245.42
2020-07-29 252.45 3033.53 233.29
2020-07-31 251.02 3164.68 253.67
2020-08-03 257.94 3111.89 251.96
2020-08-05 264.91 3205.03 249.12
2020-08-07 252.10 3167.46 268.44
2020-08-14 253.97 3148.02 261.24
2020-08-18 259.20 3312.49 262.34
2020-08-21 265.80 3284.72 267.01
2020-08-25 286.00 3346.49 280.82
2020-08-26 291.96 3441.85 303.91
2020-08-28 289.00 3401.80 293.66
2020-09-01 298.00 3499.12 295.44
2020-09-03 282.50 3368.00 291.12
2020-09-11 271.61 3116.22 266.61
2020-09-14 274.10 3102.97 266.15
2020-09-18 272.41 2954.91 252.53
2020-09-24 269.73 3019.79 249.53
2020-09-25 271.09 3095.13 254.82
2020-09-29 276.93 3144.88 261.79
2020-09-30 293.98 3148.73 261.90
2020-10-01 290.05 3221.26 266.63
2020-10-02 288.17 3125.00 259.94
2020-10-09 299.74 3286.65 264.45
2020-10-13 308.78 3443.63 276.14
2020-10-15 299.46 3338.65 266.72
2020-11-05 287.75 3322.00 294.68
2020-11-12 264.31 3110.28 275.08
2020-11-25 277.72 3185.07 275.59
2020-11-27 276.48 3195.34 277.81
2020-12-02 261.32 3203.53 287.52
2020-12-03 266.91 3186.73 281.85
2020-12-07 264.00 3158.00 285.58
2020-12-14 256.03 3156.97 274.19
2020-12-15 255.11 3165.12 275.55
2020-12-17 264.43 3236.08 274.48
2020-12-21 260.43 3206.18 272.79
2020-12-23 256.18 3185.27 268.11
2020-12-28 222.36 3283.96 277.00
2020-12-30 238.39 3285.85 271.87
# (5) 数据频度转换
assets.m <- to.monthly(assets)
print(assets.m)
> assets.m <- to.monthly(assets)
> print(assets.m)
assets.Open assets.High assets.Low
1月 2020 219.77 230.48 205.47
2月 2020 213.10 224.31 205.03
3月 2020 210.98 211.96 176.34
4月 2020 187.56 212.66 187.11
5月 2020 194.48 217.20 191.15
6月 2020 206.57 228.75 206.57
7月 2020 215.95 261.58 215.95
8月 2020 257.94 291.96 248.13
9月 2020 298.00 298.00 267.55
10月 2020 290.05 317.14 288.17
11月 2020 310.84 310.84 255.83
12月 2020 264.01 267.25 222.00
assets.Close
1月 2020 206.59
2月 2020 208.00
3月 2020 194.48
4月 2020 202.67
5月 2020 207.39
6月 2020 215.70
7月 2020 251.02
8月 2020 287.03
9月 2020 293.98
10月 2020 304.69
11月 2020 263.36
12月 2020 238.39
获取阿里巴巴股票信息
chartSeries(BABA)
网友评论