Q:以证券ETF512880为例,计算初至底的夏普比率、特雷诺比例。其中无风险利率假定选择银行一年期存款基准利率1.5%。
import tushare as tsimport pandas as pdimport numpy as np
先计算股票的对数收益率,并去除空行
df_F=ts.get_k_data('512880',start='-01-01',end='-12-30')log_F=np.log(df_F.close/df_F.close.shift(1))log_F=log_F.dropna()df_G=ts.get_k_data('399300',start='-01-01',end='-12-30')log_G=np.log(df_G.close/df_G.close.shift(1))log_G=log_G.dropna()
夏普比率
xp=(np.mean(log_F)-0.015)/df_F.close.std()
先计算β
#计算相关系数X=np.corrcoef(log_G,log_F)#计算标准差std_G = np.std(log_G)std_F = np.std(log_F)#计算β值beta = X*std_F/std_Gbeta = np.linalg.det(beta)print(beta)
特雷诺比率
tln=(np.mean(log_F)-0.015)/beta