利用python计算股票的预期收益率(原创)

金融 kingmo888 2170℃ 0评论

在衡量市场风险和收益模型中,使用最久,也是至今大多数公司采用的是资本资产定价模型(CAPM),其假设是尽管分散投资对降低公司的特有风险有好处,但大部分投资者仍然将他们的资产集中在有限的几项资产上。

比较流行的还有后来兴起的套利定价模型(APT),它的假设是投资者会利用套利的机会获利,既如果两个投资组合面临同样的风险但提供不同的预期收益率,投资者会选择拥有较高预期收益率的投资组合,并不会调整收益至均衡。

<!-more->

博主从通达信了简单下载了几个股票的数据,字段格式为:

[‘date’,’open’,’high’,’low’,’close’,’vol’,’volmoney’]

使用pandas读取进来看一下:

path = 'data/SH.600000.txt'
cols = [‘date’,’open’,’high’,’low’,’close’,’vol’,’volmoney’]
data = pd.read_csv(path, sep='t', names=cols,encoding='gbk')

20161008170503

 

其实只需要一个价格字段就可以了(这里选用收盘价),接下来将所有股票以及上证指数的时间对齐。

data = pd.DataFrame(index=indexdata.index)
for stock in stocks:
    path = 'data/{filename}.txt'.format(filename=stock)
    tmpdata = pd.read_csv(path, sep='t', index_col=0, names=cols,encoding='gbk',skip_footer=1)
    data[stock] = tmpdata['close']

data['index'] = indexdata['close']

删除空值不合理,我们引用前值

data.ffill(inplace=True)

factor_alldata

计算对数收益率 对数收益率比简单收益率更加合理

log_return = np.log(data) - np.log(data.shift(1))

计算每支股票的方差、与指数的协方差以及β:

mycov = log_return.cov()['index']
myvar = log_return.var()
mybeta = mycov/myvar

资产i的预期收益率

E(Ri)=Rf+βi[E(Rm)-Rf]

其中: Rf:无风险收益率

E(Rm):市场投资组合的预期收益率

βi: 投资i的β值。

E(Rm)-Rf为投资组合的风险溢酬。

expected_return = 0.0325 + mybeta*(log_return.ix[-1]['index'] -  0.0325)

源码地址:stock_expected_return

转载请注明:Python量化投资 » 利用python计算股票的预期收益率(原创)

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址