Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

news2025/6/15 5:04:40

说明:这是一个机器学习实战项目(附带数据+代码+文档),如需数据+代码+文档可以直接到文章最后关注获取。

 

1.项目背景

在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR(Value at Risk)和ES(Expected Shortfall)作为衡量市场风险的关键指标,广泛应用于投资组合的风险评估中。然而,传统的参数化方法依赖于对收益分布的具体假设,这在实际应用中可能并不总是准确或适用。历史模拟方法作为一种非参数化手段,通过直接利用历史数据来估计潜在损失,无需对收益率分布做出严格假设,因此被认为更加稳健。

本项目旨在使用Python实现基于历史模拟方法的投资组合风险管理模型,计算VaR和ES值,并评估其在不同市场条件下的表现。通过对真实市场数据的历史回溯测试,项目不仅展示了如何构建和实施历史模拟法,还探讨了该方法在捕捉极端市场事件方面的有效性。此外,本项目为金融分析师、风险管理者以及学者提供了一个实用框架,用于理解和改进投资组合风险管理策略。通过这个实战项目,参与者能够深入理解历史模拟法的基本原理及其在现实世界中的应用。

本项目通过Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战。                   

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

共有四支股票,用其中一支进行展示。

编号 

变量名称

描述

1

ts_code

证券代码

2

trade_date

交易日期

3

open

开盘价

4

high

最高价

5

low

最低价

6

close

收盘价

7

pre_close

昨收价

8

change

涨跌额

9

pct_chg

涨跌幅

10

vol

成交量

11

amount

成交额 

数据详情如下(部分展示):

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据:

关键代码:

3.2数据缺失查看

使用Pandas工具的info()方法查看数据信息:

从上图可以看到,总共有11个变量,数据中无缺失值,共5774条数据。

关键代码:  

3.3数据描述性统计

通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。

关键代码如下:  

4.探索性数据分析

4.1 分布直方图

用Matplotlib工具的hist()方法绘制直方图:

4.2 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。  

5.特征工程

5.1 构建日收益率

关键代码如下: 

5.2 设置投资组合权重

关键代码如下: 

6.构建VaR与ES模型     

主要使用通过Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战算法。                  

6.1 构建模型

编号

模型名称

参数

1

VaR模型

confidence_level = 0.95

2

ES模型

3

7.模型评估

7.1 结果分析   

VaR和ES模型结果为:

    根据历史模拟法计算结果,在95%置信水平下,该投资组合的**VaR为-1.9504%**,表明在正常市场条件下,单日最大损失超过这一数值的概率仅为5%。而**Expected Shortfall(ES)为-2.8796%**,代表在发生极端亏损的情况下,预期平均损失约为2.88%。从数值上看,ES大于VaR,体现了其作为风险度量指标更具保守性和稳健性,考虑了尾部风险的平均水平。

整体来看,该投资组合的风险水平适中,但若投资者风险承受能力较低,可进一步优化资产配置或引入对冲机制以控制下行风险。

7.2 结果可视化 

从图表中可以看出,投资组合的日收益率呈现出近似正态分布的形态,大部分日收益率集中在0附近,表明该投资组合在大多数交易日内表现相对稳定。VaR(-1.9504%)和ES(-2.8796%)分别用红色和绿色虚线标注在直方图上,位于负收益区域的左侧。

VaR值为-1.9504%,意味着在95%的置信水平下,单个交易日的最大损失不会超过1.9504%。然而,当市场出现极端情况时,实际损失可能会超出这一范围。此时,ES指标就显得尤为重要,它衡量了在VaR阈值以下的平均损失,即-2.8796%。这说明一旦发生极端事件,投资者可能面临更大的潜在损失。

通过观察图表,我们可以发现投资组合的尾部风险较为显著,尤其是在负收益一侧。这意味着虽然大多数时间里投资组合表现稳定,但在市场剧烈波动时,仍存在较大的下行风险。因此,投资者应密切关注市场动态,适时调整资产配置或采取对冲策略,以降低潜在的极端损失风险。此外,还可以考虑引入更多样化的资产类别,以分散风险并提高整体投资组合的稳健性。        

8.结论与展望

综上所述,本文采用了Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战,最终证明了我们提出的模型效果良好。此模型可用于日常产品的分析。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2407285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…

C++:多态机制详解

目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…