全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版)
1611 3
2021-01-31

这是一个动量效应的程序,运行后的结果与大多数已有的研究结果有很大的不同,然而又感觉自己的程序没错,想让大神看看问题出在哪了?

附上程序与 数据。数据是若干只股票的近三年的周收益率。


#这是我自己对动量效应的研究的构思

#第一步是读取数据,数据的排列方式是以日期(时间段)为行,股票类型为列,这样的排列刚好适用于动量效应的研

#究。首先是选定一个起始点,从这一个起始点开始计算之前一段时间K内的每只股票的累计收益率,然后选取最好的10%

#与最差的10%,而这种操作在这个程序上我是先用suma这个向量存储每一只股票在过去K段时间内的累计收益率,然后

#用y<-quantile(suma,c(0.1,0.9),na.rm=T)来选取收益率排序为10%与90%的分割点,这样小于10%的就

#是最差的10%,高于90%的就是最好的10%。而用lo=suma<=y[1]来提取出股票,再用a<-data[(i+k):(i+k+j-1), lo]

#表示最差10%股票持有J期后的收益率表现,而sum(a)即是这些股票的累积收益率之和。同样lg=suma>=y[2]

#即最好的10%的股票也是类似处理的。

data=read.csv("周收益率.csv")

col=ncol(data)  #计算数据的列数

nr=nrow(data)   #计算行数

#创建一个动量函数,通过输入不同的k,j来计算动量收益与显著性t值

mom<-function(k,j){

   #用一个列表来装载各种数据

   L<-list()

   #新建几个向量,用来存储每个(k,j)组合每次计算的赢家收益率b_ret,与输家收益率a_ret,以及动量收益c_ret

   a_ret<-vector(length=nr-k-j+1)

   b_ret<-vector(length=nr-k-j+1)

   c_ret<-vector(length=nr-k-j+1)

   v=1

for(i in 1:(nr-k-j+1)){    #表示每个(k,j)组合要计算(nr-k-j+1)次动量收益

#(参考点要移动(nr-k-j+1)次)

   suma<-vector(length=(col)) #存储参考点之前K期的每支股票累计收益率

   for(x in 1:col){

    suma[x]<-sum(data[i:(i+k-1),x],na.rm=T)

   }

    y<-quantile(suma,c(0.1,0.9),na.rm=T) #计算上10%点与下10%点

    lo=suma<=y[1]   #选取(锁定)下10%的股票

    lg=suma>=y[2]   #选取(锁定)上10%的股票

    a<-data[(i+k):(i+k+j-1), lo] #下10%的股票持有期的累计收益率

    b<-data[(i+k):(i+k+j-1), lg] #上10%的股票持有期的累计收益率

    sum_a=sum(a)

    sum_b=sum(b)

    #等权重平均后的收益率

    a_ret[v]<-sum_a/(col/10)  

    b_ret[v]<-sum_b/(col/10)

    v=v+1

   }

   c_ret=b_ret-a_ret #所有参照点的动量收益向量

   meas=mean(c_ret,na.rm=T) #动量效应收益

   sds=sd(c_ret,na.rm=T) #样本方差

   t<-meas/(sds/sqrt(nr-k-j)) #计算t值

   #存储各类值

   L$t<-t

   L$m<-meas

   L$sd<-sds

   return(L)

}

若令 t<-mom(8,2) 则8 为动量效应的形成期,2为动量效应的持有期。算出的结果无论(k,j)的组合为什么总是为翻转效应,且大多数显著,很是困惑!!

希望大神来解答困惑啊!!十万火急!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-1-31 18:32:39

有这么几种情况:你选的股票在最近三年没有动量效应,或者你选的股票在最近三年在周收益率上没有动量效应。一般认为动量效应在中期比较显著,翻转效应在长期和短期比较显著。


另外,你可以在excel里面复制一些你的(k,j)动量组合,看看结果是否和R一致,用excel很容易做到的。如果一致,检查是否用了未来的数据来挑选股票。


最后,下面链接里有一些matlab和sas程序(一般都是用月收益做测试),希望对你有帮助:https://bbs.pinggu.org/thread-2986322-1-1.html。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-1-31 18:33:36

谢谢你的答复!

我现在纠结的问题就是这个R程序代码是否正确,因为我运行出来的结果是清一色的反转效应,换了其他的样本也是这样。

但是又看不出程序有什么问题,苦恼!!论文近期就要交了!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-1-31 18:34:14
非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群