当前位置:天才代写 > tutorial > 其他教程 > 用R检讨两支股票是否协整

用R检讨两支股票是否协整

2017-12-04 08:00 星期一 所属: 其他教程 浏览:1142

载入数据

把 CSV 文件转换为 zoo 工具需要几个步调:

  1. 将读入的两个文件酿成两个数据框。
  2. 把字符串名目标日期转换为Date工具。
  3. 把两个数据转换为zoo工具。
  4. 归并两个zoo工具。

代码如下:

library(zoo) # 载入 zoo 包

# 把 CSV 文件转换为数据框
#
gld <- read.csv(“http://ichart.finance.yahoo.com/table.csv?s=GLD&ignore=.csv”, stringsAsFactors=F)
gdx <- read.csv(“http://ichart.finance.yahoo.com/table.csv?s=GDX&ignore=.csv”, stringsAsFactors=F)


# 第一列包括日期,用as.Date 把字符串转换为Date工具
#
gld_dates <- as.Date(gld[,1])
gdx_dates <- as.Date(gdx[,1])

# 第七列是调解后的收盘价。用 zoo 函数成立 zoo 工具
#
gld <- zoo(gld[,7], gld_dates)
gdx <- zoo(gdx[,7], gdx_dates)

#  merge 函数归并两个 zoo 工具
#
t.zoo <- merge(gld, gdx, all=FALSE)

# 此刻 t.zoo 是 zoo 工具,而统计函数期望利用数据框
#
t <- as.data.frame(t.zoo)

# 汇报用户日期的范畴
#
cat(“日期范畴:”, format(start(t.zoo)), “到”, format(end(t.zoo)), “\n”)


as.Date 函数默认日期是国际尺度名目 yyyy-mm-dd, 假如要转换为美国常用名目 mm/dd/yy, 要做下面转换。

gld_dates <- as.Date(gld[,1], format=”%m/%d/%y”)
gdx_dates <- as.Date(gdx[,1], format=”%m/%d/%y”)

 

计较价差

 

首先结构价差, 然后对价差举办单元根检讨。假如价差在单元园内,那么可以两支股票有协整干系。

价差界说为:

S = y – (β × x )


 β 是对冲比价,利用普通最小二乘法计较。从头调解,可以用下面的方程找出最优 β 。

y = (-β) × x


这是去掉截距的最简朴线性方程。R中利用 lm 函数拟合线性模子。

# lm 函数利用OLS成立线性回归模子, m, 强迫截距为零,然后提取第一个回归系数
#
m <- lm(gld ~ gdx + 0, data=t)
beta <- coef(m)[1]

cat(“套保率:”, beta, “\n”)

# 此刻计较价差
#
sprd <- tgldbetatgdx

协整干系检讨

 

    关键字:

天才代写-代写联系方式