Python计算贝塔系数和夏普比率

版权声明:https://blog.csdn.net/thfyshz版权所有 https://blog.csdn.net/thfyshz/article/details/83443783

1.贝塔系数

1.1理论含义

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

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

2.夏普比率

2.1理论含义

衡量股票或基金所获得的风险溢价,即如果股票或基金额外承担一单位的风险,可以获得多少单位的收益作为补偿。若为正值,代表股票或基金报酬率高过波动风险;若为负值,代表股票或基金操作风险大过于报酬率。

3.代码部分

# -*- coding: utf-8 -*-
import math
import pandas as pd
import numpy as np
import tushare as ts
ts.set_token('your token')
pro = ts.pro_api()

START_DATE = '20170101'
END_DATE = '20181025'

#提取股票每日行情
df1 = pro.daily(ts_code='000001.SZ', start_date=START_DATE, end_date=END_DATE).sort_values(by='trade_date')

#提取深市指数
df2 = pro.index_daily(ts_code='399300.SZ', start_date=START_DATE, end_date=END_DATE).sort_values(by='trade_date')

#计算贝塔系数
s1 = df1['pct_change']
s2 = df2['pct_change']
print((np.cov(s1, s2))[0][1]/np.var(s2))

#计算夏普比率
df1['ex_pct_close'] = df1['pct_change'] - 0.04/252
print((df1['ex_pct_close'].mean() * math.sqrt(252))/df1['ex_pct_close'].std())

输出:

#贝塔系数
1.2772845904286678
#夏普比率
0.6094095907213576

注:

  • 使用tushare数据接口(接口描述文档),token需要自己注册获得,致谢tushare!
  • 使用的是简单收益率。
  • 使用深证成指(399300.SZ)代替市场指数。
  • 无风险收益率使用年化利率为4%的国债利率,并化为日利率。

4.后续

  • 使用对数收益率再计算两个指数

猜你喜欢

转载自blog.csdn.net/thfyshz/article/details/83443783