【量化金融】收益率、对数收益率、年华收益、波动率、夏普比率、索提诺比率、阿尔法和贝塔、最大回撤
【量化金融】收益率、对数收益率、年华收益、波动率、夏普比率、索提诺比率、阿尔法和贝塔、最大回撤
1 收益率
在学术界,建模一般不直接使用资产价格,而是使用资产收益率(Returns)。因为收益率比价格具有更好的统计特性,更便于建模。下经典的收益率算法如下:
假设PtP_tPt表示在时刻t时一种资产的价格,在没有利息的情况下,从时刻t-1到时刻t这一持有阶段的收益率为:
Rt=Pt−Pt−1Pt−1R_t = \frac{P_t-P_{t-1}}{P_{t-1}} Rt=Pt−1Pt−Pt−1
其中,分子Pt−Pt−1P_t-P_{t-1}Pt−Pt−1表示资产在持有期内的收人或利润,如果该值为负,则表示亏损。分母 Pt−1P_{t-1}Pt−1,表示持有资产初期的原始投资。
2 对数收益率
对数收益率(Log returas),用rtr_trt表示。定义如下:
rt=ln(1+Rt)=ln(PtPt−1)r_t =ln(1+R_t) = ln(\frac{P_t}{P_{t-1}}) rt=ln(1+Rt)=ln(Pt−1Pt)
其中lnx() 表示自然对数,即以e为底的对数。对数收益率比简单的收益率更为常见,因为对数收益率具有三个良好的数学性质,具体如下。
(1)当x比较小的时候(比如小于 10%时),In(x)和x的值是很接近的。
(2)使用对数收益率,可以简化多阶段收益。k阶段总的对数收益就是k阶段的对数收益之和。
(3)将对数收益绘制成图表,在直观上更接近真实的表现。比如股票价格从 1元涨到 10元,相当于翻了10倍,再从10元涨到100元,也是翻了 10倍。如果单纯绘制股票价格,那么从 10元涨到 100 元的这一段明显会 “看起来涨了更多”。但是如果换算成对数价格,那么就不会存在这种直观偏差了。
3 年化收益
年化收益 (Annualized Returns) 表示资产平均每年能有多少收益。我们在对比资产的收益的时候,需要有一个统一的标准。计算方式是:
(最终价值/初始价值一1)/交易日数量×252(最终价值/ 初始价值一1)/ 交易日数量 ×252 (最终价值/初始价值一1)/交易日数量×252
其中,252代表每年有252个交易日,这个数字每年都不一样,但业界为了方便,一般都将其固定为 252,即:
(Pt−Pt−1)/days×252(P_t-P_{t-1})/days × 252 (Pt−Pt−1)/days×252
年年化收益的一个直观的理解是,假设按照某种盈利能力,换算成一年的收益大概能有多少。这个概念常常会存在误导性,比如,这个月股票嫌了 5%,在随机波动的市场中,这是很正常的现象。如果据此号称年化收益为 5%×12个月=60%,这就显得不太可信了,实
际上每个月的收益不可能都这么稳定。所以在听到有人说年化收益的时候,需要特别留意一下具体的情况,否则很容易被误导。
4 波动率
波动率(Volatility)和风险,可以算是一对同义词,都是用来衡量收益率的不确定性的。波动率可以定义为收益率的标准差,即
σ=Std(r)\sigma = Std(r) σ=Std(r)
假设不同时间段的收益率没有相关性(称为没有自相关性),那么可以证明的是,收益率的方差 Var(r)具有时间累加性。时间累加性的意思是,不同时间段t1,t2,…,tn的方差,加总即可得到这段时间的方差。换向话说,随着时间的增加,方差将会成正比增加,波动率(标准差)将会按时间开根号的比例增加。举个例子,假设股票收益率的日波动率为σ\sigmaσ。那么股票每年的波动率就为252σ\sqrt{252\sigma}252σ
(假设一年有252个交易日)。这种不同周期间的波动率换算,在投资计算中非常常见。最常用的波动率是年化波动率,我们经常需要将日波动率、月波动率换算成年化波动率。
5 夏普比率
在研发策略的时候,经常会接触到各种各样的指标,这些指标代表了策略(资产、基金)的表现,比如下面将要介绍的夏普比率 (Sharpe Ratio)。关于夏普比率( Sharpe ratio),具有投资常识的人都明白,投资光看收益是不够的,还要看承受的风险,也就是收益风险比。夏普比率描述的正是这个概念,即每承受一单位的总风险,会产生多少超额的报酬。用数学公式描述就是:
SharpeRatio=E(Rp)−RfσpSharpeRatio =\frac{E(R_p)-R_f}{\sigma_p} SharpeRatio=σpE(Rp)−Rf
其中各参数说明如下。
E(Rp)E(R_p)E(Rp):表示投资组合预期收益率。
RfR_fRf:表示无风险利率
σp\sigma_pσp:表示投资组合的波动率(亦即投资组合的风险)。
上面三个值一般是指年化后的值,比如预期收益率是指预期年化收益率。需要注意的是,虽然公式看起来很简单,但是计算起来其实并不容易。原因就是预期收益率E®和波动率,其实是无法准确得知的。我们只能用统计方法来估计这两个值,然而估计方法也有很多种。估计E(Rp)E(R_p)E(Rp)和σp\sigma_pσp,最简单的方法就是计算历史年化收益率及其标准差。然而,即使是同一种方法,针对不同周期计算出来的结果也可能存在很大的差别,从而产生误导。
6 索提诺比率
素提诺比率与夏普比率相似,不一样的是,索提诺比率是使用下行风险来衡量波动率的。在夏普比率中,资产大涨与资产大跌都可视为波动风险。实际上,有时候大洪并不算风险,大跌才是风险,比如基金净值,所以索提诺比率只考虑大跌的风险,这也可以看作是对夏普比率的一种修正方式。但是在某些品种中,大涨大跌都可能是风险,比如可以做多做空的期货。美股也可以做多或者做空,这种情况下,涨或跌都是风险。索提诺比率之所以没有流行,大概是因为美股可以做空。
7 埃尔法和贝塔
阿尔法策略其实是来源于资本资产定价模型(CAPM)。这个模型将股票的收益分为了两个部分,一部分是由大盘涨跌带来的,另一部分则是由股票自身的特性带来的。大盘的那部分影响就是贝塔(Beta)值,剔除大盘的影响,剩下的股票自身就是 Alpha 值。所以在谈论 Alpha 策略的时候,其实就是在谈论股票与大盘无关的那部分收益。如果Alpha 策略做得好,对冲掉大盘风险后,可以取得相当稳定的收益。
8 最大回撤
顾名思义,是指投资一项资产,可能产生的最大亏损,即所谓的“买在最高点,抛在最低点”
计算公式如下:
max(1−当日净值/当日之前最高净值)max (1-当日净值/ 当日之前最高净值) max(1−当日净值/当日之前最高净值)
这个 max 需要对每个交易日进行循环。
9 参考
参考书籍《Python量化投资技术、模型与策略》赵志强 刘志伟
相关文章:
【量化金融】收益率、对数收益率、年华收益、波动率、夏普比率、索提诺比率、阿尔法和贝塔、最大回撤
【量化金融】收益率、对数收益率、年华收益、波动率、夏普比率、索提诺比率、阿尔法和贝塔、最大回撤 1 收益率 在学术界,建模一般不直接使用资产价格,而是使用资产收益率(Returns)。因为收益率比价格具有更好的统计特性,更便于建模。下经典…...
1_机器学习概述—全流程
文章目录1 机器学习定义2 机器学习常见应用框架(重点)3 机器学习分类3.1 监督学习(Supervised learning)3.2 无监督学习(Unsupervised learning)3.3 半监督学习(Semi-Supervised Learning&#…...
VUE中给对象添加新属性时,界面不刷新怎么办
一、直接添加属性的问题 举例: 定义一个p标签,通过v-for指令进行遍历 然后给botton标签绑定点击事件,我们预期点击按钮时,数据新增一个属性,界面也 新增一行。 <p v-for"(value,key) in item" :key&qu…...
视频号频出10w+,近期爆红的账号有哪些?
回顾2月,视频号持续放出大动作,不仅进行了16小时不间断的NBA全明星直播,还邀请国际奥委会入驻,分享奥运的最新资讯。视频号成为越来越多官方机构宣传推广的有效渠道。官方积极入驻,内容创作生态也在同步繁荣发展&#…...
企业寄件现代化管理教程
现代化企业为了跟上时代发展的步伐,在不断完善着管理制度,其中公司寄件管理,也是重要的一个模块。为了提高公司快递的寄件效率,以及节约寄件成本,实现快递寄件的规范化,越来越多的现代化企业,开…...
django 在网页显示后台进度
1、定义函数打开网页 def PeformanceIndex(request): citys{‘wuhu’: ‘芜湖’, ‘xuancheng’: ‘宣城’, ‘tongling’: ‘铜陵’, ‘suzhou’: ‘宿州’, ‘maanshan’: ‘马鞍山’, ‘liuan’: ‘六安’, ‘huainan’: ‘淮南’, ‘huabei’: ‘淮北’, ‘hefei’: ‘合肥…...
机器学习库(Numpy, Scikit-learn)
Numpy 创建数组 import numpy as npa np.array([1,2,3]) b np.array([(1.5,2,3), (4,5,6)], dtype float) c np.array([[(1.5,2,3), (4,5,6)], [(3,2,1), (4,5,6)]],dtype float)创建占位符 z1np.zeros((3,4)) z2np.ones((2,3,4),dtypenp.int16) z3d np.arange(10,25,5)…...
Linux操作系统学习(进程替换)
文章目录进程替换进程替换是什么?替换的方法进程替换简易shell模拟进程替换 进程替换是什么? 如下图所示: 进程替换就是,把进程B的代码和数据,替换正在执行的进程A的代码和数据在内存中的位置(若代码…...
【C++从入门到放弃】类和对象(中)———类的六大默认成员函数
🧑💻作者: 情话0.0 📝专栏:《C从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 类和对…...
白盒测试重点复习内容
白盒测试白盒测试之逻辑覆盖法逻辑覆盖用例设计方法1.语句覆盖2.判定覆盖(分支覆盖)3.条件覆盖4.判定条件覆盖5.条件组合覆盖6.路径覆盖白盒测试之基本路径测试法基本路径测试方法的步骤1.根据程序流程图画控制流图2.计算圈复杂度3.导出测试用例4.准备测试用例5.例题白盒测试总…...
【13】linux命令每日分享——groupadd建立组
大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…...
《第一行代码》 第十章:服务
一,在子线程中更新UI 1,新建项目,修改布局代码 <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"&g…...
简单介绍编程进制
十进制 十进制的位权为 10,比如十进制的 123,123 1 * 10 ^ 2 2 * 10 ^ 1 3 * 10 ^ 0。 二进制 二进制的位权为 2,比如十进制的 4,二进制为 100,4 1 * 2 ^ 2 0 * 2 ^ 1 0 *2 ^ 0。 Java7 之前,不支…...
windows忘记开机密码怎么办
windows忘记开机密码怎么办 清除windows登录密码 清除windows登录密码简单方法 开机到欢迎界面时,按CtrlAltDelete两次,跳出帐号窗口,输入用户名:administrator,回车, 或者启动时按F8 选“带命令行的安全…...
SpringCloud:Eureka
目录 一、eureka的作用 二、搭建Eureka服务端 三、添加客户端 四、服务发现 提供者与消费者 服务提供者:一次业务中,被其它微服务调用的服务。(提供接口给其它微服务) 服务消费者:一次业务中,调用其它微服务的服…...
如何获取或设置CANoe以太网网卡信息(SET篇)
CAPL提供了一系列函数用来操作CANoe网卡。但是,但是,首先需要明确一点,不管是获取网卡信息,还是设置网卡信息,只能访问CAPL程序所在的节点下的网卡,而不是节点所在的以太网通道下的所有网卡 关于第一张图中,Class节点下,有三个网卡:Ethernet1、VLAN 1.100、VLAN 1.200…...
【软件测试面试题】项目经验?资深测试 (分析+回答) 我不信你还拿不到offer......
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 在面试过程中&#…...
tensorflow lite简介-移动设备端机器学习
TensorFlow Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 loT 设备上运行模型,以便实现设备端机器学习。 支持多平台 支持多种平台,涵盖 Android 和 iOS 设备、嵌入式 Linux 和微控制器。 原理/流程 工作原理或者使用流程就是上面…...
Node.js常用知识
1、什么是 Node.js 【】Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。浏览器是 js 的前端运行环境,node.js 是 js 的后端运行环境。他们都有 V8 引擎,有各自的内置 API 2、fs 文件系统模块 【】fs 模块是 Node.js 官方提供的、用来操作文件…...
踩坑:maven打包失败的解决方式总结
Maven打包失败原因总结如下: 失败原因1:无法使用spring-boot-maven-plugin插件 使用spring-boot-maven-plugin插件可以创建一个可执行的JAR应用程序,前提是应用程序的parent为spring-boot-starter-parent。 需要添加parent的包spring-boot…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
