Python金融分析
许多金融文献专门讨论资本资产定价模型 (CAPM)。在著名的 CAPM 中,证券的风险和收益率之间的关系描述如下:
Ri=Rf+βi(E[Rmkt]−Rf)R_{i}=R_{f}+\beta_{i}\left(E\left[R_{m k t}\right]-R_{f}\right)Ri=Rf+βi(E[Rmkt]−Rf)
对于证券 iii,它的回报被定义为 RiR_{i}Ri,它的 beta 被定义为 βi\beta_{i}βi。 CAPM 将证券的回报定义为无风险利率 RfR_{f}Rf 及其 beta 与风险溢价的乘积之和。 风险溢价可以被认为是市场投资组合不包括无风险利率的超额收益。 以下是 CAPM 的直观表示:
Beta 是衡量股票系统性风险的指标——一种无法分散的风险。 从本质上讲,它描述了股票收益对市场变动的敏感性。 例如,无论市场走向如何,贝塔系数为零的股票都不会产生超额回报。它只能以无风险的速度增长。 Beta 值为 1 的股票表示该股票与市场完美契合。
Beta 是通过将股票和市场之间的回报协方差除以市场回报的方差而在数学上推导出来的。
CAPM 模型衡量投资组合篮子中每只股票的风险与股票收益之间的关系。 通过概述这种关系的总和,我们获得了对每个投资组合回报水平产生最低投资组合风险的风险证券的组合或权重。 希望获得特定回报的投资者将拥有一个这样的最佳投资组合组合,以提供尽可能小的风险。 最优投资组合的组合位于一条称为有效前沿的线。
沿着有效边界,存在一个切点,表示可用的最佳最优投资组合,并以尽可能低的风险换取最高的回报率。 这种切点处的最优投资组合被称为市场投资组合。
从市场投资组合到无风险利率存在一条直线。 这条线称为资本市场线(CML)。 CML 可以被认为是最佳投资组合的所有其他夏普比率中可用的最高夏普比率。 夏普比率是一种风险调整后的绩效衡量标准,定义为投资组合的超额回报超过其每单位风险的无风险利率的标准差。 投资者对持有沿 CML 线的资产组合特别感兴趣。 下图说明了有效边界、市场组合和 CML:
CAPM 研究的另一条兴趣线是证券市场线 (SML)。 SML 将资产的预期回报与其 beta 作图。 对于 beta 值为 1 的证券,其收益与市场收益完全匹配。 任何定价高于 SML 的证券都被视为被低估,因为在相同的风险下,投资者期望获得更高的回报。 相反,任何定价低于 SML 的证券都被视为被高估,如下所示:
假设我们有兴趣找到证券的 beta βi\beta_{i}βi。 我们可以将公司的股票收益 RiR_{i}Ri 与市场收益 RMR_MRM 以及截距 α\alphaα 以 Ri=α+βRMR_{i}=\alpha+\beta R_{M}Ri=α+βRM 方程的形式进行回归。
考虑以下五个时间段测量的股票回报和市场回报数据:
使用 SciPy 的 stats 模块,我们将对 CAPM 模型进行最小二乘回归,并通过在 Python 中运行以下代码来导出 α\alphaα 和 βi\beta_{i}βi 的值:
"""
Linear regression with SciPy
"""
from scipy import statsstock_returns = [0.065, 0.0265, -0.0593, -0.001, 0.0346]
mkt_returns = [0.055, -0.09, -0.041, 0.045, 0.022]
beta, alpha, r_value, p_value, std_err = \stats.linregress(stock_returns, mkt_returns)
scipty.stats.linregress 函数返回五个值:回归线的斜率、回归线的截距、相关系数、零斜率零假设的假设检验的 p 值和标准误差 的估计。 我们有兴趣通过分别打印 beta 和 alpha 的值来找到直线的斜率和截距:
print(beta, alpha)0.5077431878770808 -0.008481900352462384
该股票的贝塔系数为 0.5077,阿尔法系数几乎为零。
描述 SML 的方程可以写成如下:
E[Ri]=Rf+βi(E[RM]−Rf)E\left[R_{i}\right]=R_{f}+\beta_{i}\left(E\left[R_{M}\right]-R_{f}\right)E[Ri]=Rf+βi(E[RM]−Rf)
E[RM]−RfE\left[R_{M}\right]-R_{f}E[RM]−Rf 是市场风险溢价,E[RM]E[R_M]E[RM] 是市场投资组合的预期回报。 RfR_fRf 是无风险利率的回报,E[Rj]E\left[R_{j}\right]E[Rj] 是资产 iii 的预期回报,βi\beta_{i}βi 是资产的 beta。
假设无风险利率为 5%,市场风险溢价为 8.5%。 股票的预期收益是多少? 根据 CAPM,贝塔值为 0.5077 的股票的风险溢价为 0.5077×8.5%,即 4.3%。 无风险利率为 5%,因此权益的预期收益为 9.3%。
如果在同一时期观察到该证券的收益高于预期的股票收益(例如 10.5%),则该证券可以说被低估了,因为投资者可以期望相同数量的股票获得更大的收益风险。
相反,如果观察到证券的回报比 SML 暗示的预期回报低(例如 7%),则可以说该证券被高估了。 投资者在承担相同风险的同时获得的回报减少。
详情参阅 - 亚图跨际
Python金融分析相关推荐
- python金融分析小知识(30)——比较常见的pd.set_option的使用
Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 哈喽大家好,今天我要给大家讲讲在pandas的 ...
- python金融分析小知识(22)——时间序列之Timestamp对象的处理
Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 在我的这篇文章中我有介绍到时间序列中的Tims ...
- python金融分析小知识(12)——python爬虫工具xpath使用
Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 本篇文章紧接上一篇文章,python金融分析小 ...
- 【干货书】Python金融分析,714页pdf掌握数据驱动金融
清华大数据软件团队官方微信公众号来源:专知 本文附资源,建议阅读10分钟通过Python库和用于构建金融应用和交互式金融分析的工具指导开发人员和定量分析人员. 金融行业最近以惊人的速度采用Python ...
- python金融分析小知识(34)——年化收益率、年化波动率以及夏普比率的计算
Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 大家好呀 好久不见!最近忙的事情太多了 没来得 ...
- python金融分析-基于Python的金融分析与风险管理
第 1部分 入门篇 第 1章 Python概览 2 1.1 Python的定义与比较优势 3 1.1.1 Python简介 3 1.1.2 Python的比较优势 4 1.2 Python之父-吉多· ...
- python金融分析-计算对数收益率及其波动率并画图
计算对数收益率及其波动率并画图 # -*- coding: utf-8 -*- """ Created on Wed Aug 03 10:32:08 2016@autho ...
- python金融分析小知识(19)——NLP初探之LDA话题建模
Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 让机器帮助我们在海量的文本中快速找到关键信息, ...
- python金融分析试题及答案_Python在金融中的应用-曾凡-中国大学mooc-试题题目及答案...
Python在金融中的应用-曾凡-中国大学mooc-试题题目及答案 更多相关问题 [填空题]根据发生时间的早晚及是否具有特异性,免疫应答可分为 [单选题]1041.二元溶液连续精馏计算中,物料的进料状 ...
最新文章
- n条直线相交最多有几个邻补角_【初一】 n(n1)模型在相交线中的应用
- BeanUtils入门
- 2-01基本顺序表与元素外置顺序表recv
- matlab 点云特征_基于点云的3D障碍物检测
- ubuntu列出所有磁盘_列出Ubuntu上的磁盘空间使用情况
- qt 从文件中读出数据显示在表格中_QT中有什么控件可以实现向excel的表格显示,qt数据存储到Excel表格...
- 第12章 存储器的保护
- java计算棋盘上的麦粒
- 【提交PR】如何在 GitHub 提交第一个 pull request
- 设计一个安全对外的API接口,需要考虑哪些方面?
- Prompt | 从CLIP到CoOp,Visual-Language Model新范式
- Springsecurity之UserDetails
- pyqsplitter 保持一个窗口不能拖动_Axure教程:左侧导航如何自适应浏览器窗口高度?...
- .netcore 如何获取系统中所有session_C#/.NET/.NET Core定时任务调度组件有哪些?
- css3 js 做一个旋转音乐播放开关
- python新手怎么兼职-用Python在家兼职赚钱的4个方法
- 进程间的通信方式有哪些?
- C++写入并追加内容到txt中
- 将一个文件夹下的MP4文件合并为一个
- 狄利克雷卷积_狄利克雷卷积莫比乌斯反演总结