0%

【量化投资】贝塔系数的计算

目的

在量化分析中,经常会需要获取\(\beta\)(贝塔系数),那该如何查询或计算该系数呢?

贝塔系数的含义

贝塔系数衡量了个股或基金相对于整个股市的波动情况。

β范围 含义
β=1 股票或基金的风险收益率与市场平均风险收益率相同
β>1 股票或基金的风险相较于市场平均更大
β<1 股票或基金的风险相较于市场平均更小

查询

可以在同花顺网站中查到上市公司当日的贝塔系数。

计算

相对于沪深300指数(000300.SH)的beta系数计算方式如下:
\(\beta_i = \frac{标的资产i的收益与市场收益的协方差}{市场收益的方差} = \frac{Cov(r_i,r_m)}{\sigma_m^2}\)

例1、顺丰控股(002352.SZ)相对于沪深300指数(000300.SH)的beta系数计算,一定周期的沪深300指数(000300.SH)与顺丰控股(002352.SZ)的每日涨跌幅,如:2019年全年。

关于协方差、方差的计算方法:
【Python】Pandas之dataframe与series的协方差计算
【Python】Pandas、Numpy之方差计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import pandas as pd
import numpy as np
import QUANTAXIS as QA
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

stock = QA.QA_fetch_stock_day_adv('002352','2018-12-28','2019-12-31')
index = QA.QA_fetch_index_day_adv('000300','2018-12-28','2019-12-31')

returns_stock = stock.data.close.pct_change()
returns_index = index.data.close.pct_change()
#计算两组数据的协方差
covr = np.cov(returns_stock[1:],returns_index[1:])[0][1]
#计算沪深300指数数据的方差
var = np.var(returns_index)
#计算贝塔值
beta = covr/var
print("Covariance:{},Variance:{},Beta:{}".format(covr,var,beta))
Covariance:9.712842264272448e-05,Variance:0.00015577588074696037,Beta:0.6235138724748936

参考

1/ 贝塔系数
2/ 股票β系数(贝塔、beta)计算的具体操作
3/ Python计算贝塔系数和夏普比率