金融分析与风险管理——投资组合的绩效评估

2023-11-17

金融分析与风险管理——投资组合的绩效评估

1 夏普比率

夏普比率是指在某一时间段内,投资组合每承担一单位风险所带来的的超额收益,值越大表示收益越好,其表达式如下:

S R = E ( R p ) − R f σ p SR = \frac{E(R_p)-R_f}{\sigma_p} SR=σpE(Rp)Rf

其中, R f R_f Rf是无风险收益率, E ( R p ) E(R_p) E(Rp)是投资组合的期望收益率, σ p \sigma_p σp是投资组合收益的波动率。

本文以国内公募基金为例来说明如何计算基金产品的夏普比率,该数据集共有 4 个基金产品构成,案例中完整的数据可以通过百度网盘获取,提取码:jayy。

案例中的日收益率使用对数收益率进行计算,无风险收益率选择银行一年存款基准利率1.5%,Python程序如下:

import pandas as pd
import numpy as np

fund = pd.read_excel(r'C:\Users\Administrator\Desktop\四只开放式股票型基金的净值.xlsx',header = 0,index_col = 0)

# 夏普比率
def SR(Rp,Rf,Vp):
    return (Rp - Rf)/Vp
   
R_fund = np.log(fund/fund.shift(1)) #基金的日对数收益率
R_fund = R_fund.dropna()
R_mean = R_fund.mean()*252 #计算全部3年的平均年化收益率
sigma = R_fund.std()*np.sqrt(252) #计算全部3年的平均年化收益波动率
R_f = 0.015 #无风险利率
SR_3years = SR(R_mean,R_f,sigma)

print('2016-2018平均3年的夏普比率:\n',SR_3years)
基金名称 夏普比率
景顺长城优质成长基金 -0.492142
汇添富移动互联基金 -0.975046
华宝品质生活基金 -0.374546
中银新动力基金 -1.230769

2 索提诺比率

所提诺比率是指投资组合每承担一单位下行风险所带来的的超额收益,值越大表示收益越好,其表达式如下:

S O R = E ( R p ) − R f σ L p σ L p = 1 N L ∑ [ m i n ( R p , 0 ) 2 ] SOR = \frac{E(R_p)-R_f}{\sigma_Lp} \\[10pt] \sigma_{Lp} = \sqrt{\frac{1}{N_L}\sum[min(R_p,0)^2]} SOR=σLpE(Rp)RfσLp=NL1[min(Rp,0)2]

其中, R f R_f Rf是无风险收益率, E ( R p ) E(R_p) E(Rp)是投资组合的期望收益率, N L N_L NL是发生亏损的样本量, σ L p \sigma_Lp σLp是投资组合收益的下偏标准差,所谓下偏标准差是只考虑亏损而不考虑盈利的标准差,隐含条件就是投资组合的上涨是符合投资者的需求而不应计入风险调整。

本文仍然使用上述案例进行说明,其Python的程序如下:

#索提诺比率
def SOR(Rp,Rf,Vp):
    return (Rp - Rf)/Vp

Vp_lower = np.zeros_like(R_mean)

for i in range(len(Vp_lower)):
    #生产收益率为负的时间序列
    R_neg = R_fund.iloc[:,i][R_fund.iloc[:,i] < 0] 
    #年化下行收益标准差
    Vp_lower[i] = np.sqrt(252)*np.sqrt(np.sum(R_neg**2)/len(R_neg))
    print(R_fund.columns[i]+'收益下行标准差:',Vp_lower[i])
    
SOR_3years = SOR(R_mean,R_f,Vp_lower)

print('2016-2018平均3年的索提诺比率:\n',SOR_3years)
基金名称 索提诺比率
景顺长城优质成长基金 -0.438614
汇添富移动互联基金 -0.890215
华宝品质生活基金 -0.335250
中银新动力基金 -1.117805

3 特雷诺比率

特雷诺比率是指投资组合每承担一单位系统风险所带来的的风险溢价,值越大表示收益越好,其表达式如下:

T R = E ( R p ) − R f β p TR = \frac{E(R_p)-R_f}{\beta_p} TR=βpE(Rp)Rf

其中, R f R_f Rf是无风险收益率, E ( R p ) E(R_p) E(Rp)是投资组合的期望收益率, β p \beta_p βp是投资组合的系统性风险,当投资组合的非系统性风险已被分散,只需考虑系统性风险时,特雷诺比率相对比较合适。

本文以沪深300指数3016-2018年的数据及上述4只基金的数据为例来说明如何计算特雷诺比率,案例中沪深300指数完整的数据可以通过百度网盘获取,提取码:763e。

本文仍然使用上述案例中的无风险收益率进行计算,其中市场投资组合使用沪深300指数进行代替,通过线性回归计算4只基金产品的 β \beta β值,其Python的程序如下:

import statsmodels.api as sm

HS300 = pd.read_excel(r'C:\Users\Administrator\Desktop\沪深300指数.xlsx',header = 0,index_col = 0)

#计算日收益率
R_HS300 = np.log(HS300/HS300.shift(1))
R_HS300 = R_HS300.dropna()

# 特雷诺比率
def TR(Rp,Rf,beta):
    return (Rp - Rf)/beta

betas = np.zeros_like(R_mean)
cons = np.zeros_like(R_mean)
X = R_HS300
X_addcons = sm.add_constant(X)

for i in range(len(R_mean)):
    #获取基金产品时间序列
    Y = R_fund.iloc[:,i]
    #使用线性回归计算beta值
    model = sm.OLS(endog=Y,exog=X_addcons)
    result = model.fit()
    cons[i] = result.params[0]
    betas[i] = result.params[1]
    print(R_fund.columns[i] + 'beta = ',betas[i])
    
TR_3years = TR(R_mean,R_f,betas)
print('2016-2018平均3年的特雷诺比率:\n',TR_3years)
基金名称 特雷诺比率
景顺长城优质成长基金 -0.104878
汇添富移动互联基金 -0.247360
华宝品质生活基金 -0.079511
中银新动力基金 -0.276144

4 信息比率

跟踪误差是指投资组合的收益率与基准组合收益率之间差异的标准差,反映投资组合的主动管理风险。要计算跟踪误差,首先需要计算跟踪偏离度,跟踪偏离度是指投资组合收益率与基准组合收益率之间的差异,其计算公式如下:

T D = E ( R P ) − E ( R B ) T E = 1 N − 1 ∑ ( T D i − E ( T D ) ) 2 TD = E(R_P)-E(R_B) \\[10pt] TE = \sqrt{\frac{1}{N-1}\sum(TD_i-E(TD))^2} TD=E(RP)E(RB)TE=N11(TDiE(TD))2

其中, E ( R P ) E(R_P) E(RP)是投资组合的期望收益率, E ( R B ) E(R_B) E(RB)是基准组合的期望收益率,KaTeX parse error: Undefined control sequence: \TD at position 1: \̲T̲D̲是投资组合的跟踪偏离度,KaTeX parse error: Undefined control sequence: \TE at position 1: \̲T̲E̲是投资组合的跟踪误差。

信息比率是指投资组合每承担一单位主动管理风险所带来的的超额收益,值越大表示收益越好,其表达式如下:

I R = T D T E = E ( R P ) − E ( R B ) T E IR = \frac{TD}{TE} = \frac{E(R_P)-E(R_B)}{TE} IR=TETD=TEE(RP)E(RB)

本文仍然使用上述案例中的无风险收益率进行计算,其中基准组合使用沪深300指数进行代替,其Python的程序如下:

# 信息比率
def IR(Rp,Rb,te):
    return (Rp - Rb)/te

TE_fund = np.zeros_like(R_mean)

for i in range(len(R_mean)):
    TD = np.array(R_fund.iloc[:,i]) - np.array(R_HS300.iloc[:,0])
    TE_fund[i] = TD.std()*np.sqrt(252)
    print(R_fund.columns[i] + '跟踪误差',TE_fund[i])
    
R_mean_HS300 = np.array(R_HS300.mean()*252)
IR_3years = IR(R_mean,R_mean_HS300,TE_fund)
print('2016-2018平均3年的信息比率:\n',IR_3years)
基金名称 特雷诺比率
景顺长城优质成长基金 -0.232343
汇添富移动互联基金 -1.092476
华宝品质生活基金 -0.158805
中银新动力基金 -1.690075
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

金融分析与风险管理——投资组合的绩效评估 的相关文章

随机推荐

  • 使用StarUML创建类图

    1 综述 What StarUML是一种生成类图和其他类型的UML图表的工具 本文是一个使用StarUML创建类图 Java语言描述 的简明手册 StarUML 简称SU 是一种创建UML类图 并能够自动生成Java的 stub code
  • 概说概要设计怎么做

    概说概要设计怎么做 51CMM COM原创 作者 厦门巨龙软件工程有限公司 卢琳生 2003 12 22 摘要 本文是在概要设计实践和学习中的一些心得与学习笔记 希望与大家分享 如有不妥之处欢迎指正 关键字 概要设计 结构化 OOD 正文
  • 大数据学习-3.Linux下Web服务器的搭建与配置

    文章目录 简介 一 关闭防火墙和selinux 1 关闭防火墙 1 关闭selinux 二 Web服务器与配置 1 Apache 2 Nginx 简介 本文主要介绍在CentOS下 Apache与Nginx 服务的搭建与配置 一 关闭防火墙
  • springboot redis Unsatisfied dependency expressed through method ‘redisTemplate‘ parameter 0

    pom xml中导入包更换写
  • SpringBoot RabbitMq 六大模式

    目录 依赖 配置 简单队列 模型 代码示例 工作队列 模型 代码示例 订阅模式 模型 代码示例 路由模式 模型 代码示例 主题模式 模型 代码示例 RPC 依赖 配置 依赖
  • 【华为机试在线训练】Day 10

    自动售货系统 题目描述 1 总体说明 考生需要模拟实现一个简单的自动售货系统 实现投币 购买商品 退币 查询库存商品及存钱盒信息的功能 系统初始化时自动售货机中商品为6种商品 商品的单价参见1 1规格说明 存钱盒内放置1元 2元 5元 10
  • POJ - 3259 Wormholes

    While exploring his many farms Farmer John has discovered a number of amazing wormholes A wormhole is very peculiar beca
  • linux网络全景指南

    自我介绍 腾讯云网络高级工程师 腾讯云网络核心开发人员 欢迎微信搜索 职场重生 关注公众号 职场重生 后续更多精彩内容发布 万字长文 建议收藏 引言 本期分享一个比较常见的 络问题 丢包 例如我们去ping 个 站 如果能ping通 且 站
  • python画散点图-python学习之matplotlib绘制散点图实例

    要绘制单个点 可使用函数scatter 并向其传递一对x和y坐标 它将在指定位置绘制一个点 使用scatter 绘制散点图 import matplotlib pyplot as plt plt scatter 2 4 plt show 下
  • visual studio 的各个版本下载地址,很全,从 6.0 一直 到 vs2013,要的拿去吧

    Microsoft Visual Studio 6 0 下载 英文版360云盘下载 http l11 yunpan cn lk sVeBLC3bhumrI 英文版115网盘下载 http 115 com file bew2qrau 英文版迅
  • org.springframework.transaction.UnexpectedRollbackException 解决

    1 异常 org springframework transaction UnexpectedRollbackException Transaction rolled back because it has been marked as r
  • TXT文本文件存储

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 TXT
  • 【C++】细说C++中的数组之“静态”数组

    转自博主 https blog csdn net u013921430 article details 79514972 感谢分享 以备学习
  • 【设计模式】原型模式

    原型模式 Prototype Pattern 是用于创建重复的对象 同时又能保证性能 这种类型的设计模式属于创建型模式 它提供了一种创建对象的最佳方式之一 这种模式是实现了一个原型接口 该接口用于创建当前对象的克隆 当直接创建对象的代价比较
  • C/C++排序

    目录 C排序 头文件 使用 C 排序 头文件 使用 1 自定义类型 2 自定义类型 C排序 C语言中排序函数为qsort 原理为快速排序 头文件 在使用前 要添加头文件如下 include
  • 【plotly】用绘图函数,定位坐标相关的问题

    公司的业务场景有涉及到快递配送的场景 某次有运营同学反馈某个订单划分异常 没有划分给距离最近的快递员 让调查这个问题 因为存在数据库中的数据不直观 就想到用绘图工具 把订单的配送位置和快递员当时的定位位置绘制出来 方便调查问题 要求就是能绘
  • 1746. 经过一次操作后的最大子数组和

    1746 经过一次操作后的最大子数组和 你有一个整数数组 nums 你只能将一个元素 nums i 替换为 nums i nums i 返回替换后的最大子数组和 示例 1 输入 nums 2 1 4 3 输出 17 解释 你可以把 4替换为
  • 解决Windows缺少找不到msvcp140.dll文件

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个msvcp140 dll文件进行安装 前提是找到
  • Leaflet-学习

    一 官网 英文官网 Leaflet 中文官网 Leaflet 二 介绍 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库 它大小仅仅只有39 KB 并且拥有绝大部分开发者所需要的所有地图特性 Leaflet
  • 金融分析与风险管理——投资组合的绩效评估

    金融分析与风险管理 投资组合的绩效评估 1 夏普比率 2 索提诺比率 3 特雷诺比率 4 信息比率 1 夏普比率 夏普比率是指在某一时间段内 投资组合每承担一单位风险所带来的的超额收益 值越大表示收益越好 其表达式如下 S R E