基于蒙特卡罗模拟的股票风险价值VaR测算

前言:如果各位观看博客的想学的,可以通过Tushare金融数据注册链接注册账号,在获得相关数据集,这是本人的分享链接注册后,我可以获得50积分,谢谢各位支持。

摘要:投资者在投资前应对目标公司的股票风险价值进行分析。为评价a和b两支股票的风险,首先对样本数据进行了详细的阐述,并进行了可视化展示,以揭示其基本规律和特征。然后,基于蒙特卡罗模拟算法建立了随机过程模型,以计算股票的平均收益率与风险。通过计算得到股票位于99%置信水平下的VAR,从而对其投资风险进行评价。通过对股票编号为000001.SZ、300231.SZ、002332.SZ、2012年01月04日-2018年12月28日时段的股票数据进行分析,证明了本模型的有效性。
     关键词:金融数据;VaR估计;股票风险;蒙特卡洛算法

1.引言

2.模型介绍

VaR (风险价值)是一种定量化描述金融机构所面临的风险的方法。VaR值的测算主要取决于两个关键的变量 :即在市场正常波动的条件下,在一定的概率水平α%下,某一金融资产或金融资产组合的VaR是在未来特定一段时间内最大的可能损失。
        使用蒙特卡罗模拟法进行风险价值估算,即运用历史数据对未来进行多次模拟,以求未来股价结果的概率分布。蒙特卡罗模拟法的公式如下:

ΔSS=μΔt+σεΔt{\Delta S \over S} ={\mu \Delta t}+{\sigma \varepsilon\sqrt{\Delta t}}SΔS​=μΔt+σεΔt​
       其中S为股票的价格,μ为期望收益率,△t为时间间隔,σ为股票风险,ε为随机变量。
       可以看出,蒙特卡罗模拟法认为股票的价格波动可以分为两部分,第一部分为drift,即股票会根据收益率波动,第二部分为shock,即随机波动。

3.实证分析

3.1数据选取

目前各大领域的金融机构及各大企业所持有的股票多样化,本文取国内各大领域的股票数据的日收益率作为风险因子,并定义日收益率为:

收益为:P=V-C
       收益率为::K=PV=(V−C)C=V(C−1)K={P \over V} = {(V-C) \over C}={V \over (C-1)}K=VP​=C(V−C)​=(C−1)V​
       其中C为投入的本金,V为经过一段时间后的市值。

3.2基本描述收益率

在正式建模分析之前,首先对国内企业股票的收益率做描述分析,北京银信科技的股票数据的收益率的基本描述如表1所示、浙江仙琚制药的股票数据的收益率的基本描述如表2所示、深圳平安银行的股票数据的收益率的基本描述如表3所示: 表1 北京银信科技股票收益率一览表

表2 浙江仙琚制药股票收益率一览表

表3深圳平安银行股票收益率一览表

通过上述的股票数据的收益率的基本描述表,可以绘制核密度图出如下图2所展示的股票的日收益率分布图。核密度估计用来估计未知的密度函数,属于非参数校验方法之一,

x1,x2,x3⋯xn{x_1,x_2,x_3 \cdots x_n}x1​,x2​,x3​⋯xn​
为独立同分布F的n个样本点,设其概率密度函数为f,核密度估计为以下:

fh^=1n∑i=0nKh(x−xi)=1nh∑i−1nK((x−xi)h){\hat{f_h}={1 \over n}{\sum_{i=0}^n}{K_h (x-x_i)} ={1 \over nh}{\sum_{i-1}^n}K({(x-x_i) \over h})}fh​^​=n1​∑i=0n​Kh​(x−xi​)=nh1​∑i−1n​K(h(x−xi​)​)
      其中K为核密度函数,h为设定的窗宽。

图2股票的日收益率分布图         从图中我们可以看出,三支股票的平均日收益率大致为0,但是000001.SZ的日收益率上下波动明显大于002332.SZ和300231.SZ。


图3股票的收盘价及其移动平均线         图3主要是绘制了00000.1.SZ、002332.SZ和300231.SZ三支股票的收盘价及其平均线,从绘制的移动平均线上可以大致看出股票的走势,逐渐趋于下跌的趋势,而000001.SZ的下跌状态慢于,另外两支股票,因此优胜于002332.SZ与300231.SZ股票。

图4股票的相关关系         通过对00000.1.SZ、002332.SZ和300231.SZ三支股票的相关性数值计算后,绘制出如图4的股票之间的相关关系图,可以观察出002332.SZ和300231.SZ与00000.1.SZ在某种程度上是具有相关性的,也就是深圳平安银行股票有波动的话,其他两支北京银信科技股票、浙江仙琚制药股票也会受到影响。

图5股票的累计收益率

对三支股票就行统一的分析,绘制出图5所示的股票的累计收益率,通过观察发现,虽然三支股票的结果都是收益率随着时间逐渐下降,但是可以在其中发现000001.SZ股票的下降趋势慢于其他的两支股票。

图6股票风险与收益率关系图         通过图6所展示的股票风险与收益率的关系图,可以看出00000.1.SZ、002332.SZ和300231.SZ三支股票每日的平均收益率大致为0,而000001.SZ股票的风险大致为0.025,远小于002332.SZ、300231.SZ两支股票。

图7 股票收盘价和开盘价对比         通过图7中 000001.SZ股票的开盘价与收盘价的对比分析,可以得出,虽然0000001.SZ的股票趋于下跌的状态的,但是还是有盈利点。

3.3.结果分析

定义完蒙特卡罗函数,我们通过对000001.SZ、002332.SZ和300231.SZ三支股票进行模拟100次的投资,得到的结果如图8所示,可以看到,每一次模拟所得到股价走势都是不同的,300231.SZ股票在下一年的价格大致在6.25-6.75之间,002332.SZ股票在下一年的价格大致在5.7-6.7 之间,000001.SZ股票在下一年的价格大致在9.2-9.6之间,000001.SZ与另两支股票相比还是处于优势。

图8股票价格走势100次模拟结果         下面我们用该模型模拟计算1000次的投资风险价值。并定义置信水平为99%,绘制股票最终价格的分布图如图9所示。

图9股票投资算风险价值1000次模拟结果         从图9中我们可以得到,即在99%的置信水平下,002332.SZ股票在一年后的价格大致为5.70,其风险价值为0.56,300231.SZ股票在一年后的价格大致为5.89,其风险价值为0.61,000001.SZ股票在一年后的价格大致为8.82,其风险价值为0.56,通过数值分析000001.SZ股票不仅价值高于另外两支股票,风险更是低于另外两支股。

3.4.对比分析

对选取的另外几支股票进行对比分析,其股票风险率收益率关系对比结果如所示:

图10 三支股票风险率与收益率关系对比图         在三支的盘平均日收益率都大致为0的情况下,000001.SZ的风险远低于其他两支股。

4.附录

部分代码如下所示: 上传的代码没有格式化,想尽多了解。 代码整理中。

代码
git后续上传
希望多多支持

想我就打给我

基于蒙特卡罗模拟的股票风险价值VaR测算相关推荐

  1. Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 SP500时间序列...

    原文链接:http://tecdat.cn/?p=24480 此示例说明如何使用三种方法估计风险价值 (VaR) 并执行 VaR 回测分析.这三种方法是:(点击文末"阅读原文"获取 ...

  2. 风险价值VaR(Value at Risk)和损失期望值ES(Expected shortfall)的估计

    原文链接: http://tecdat.cn/?p=15929 风险价值VaR和损失期望值ES是常见的风险度量. 首先明确: 时间范围-我们展望多少天? 概率水平-我们怎么看尾部分布? 在给定时间范围 ...

  3. R语言求风险价值VaR Value at Risk

    风险价值是衡量与投资组合相关的风险水平的统计方法.风险价值在指定的时间范围内和给定的置信水平下测量最大损失量.最近我们被客户要求撰写关于风险价值VaR Value at Risk的研究报告. 视频:风 ...

  4. R语言风险价值VaR(Value at Risk)和ES 的估计

    R语言中可以使用多种方法对风险价值VaR和损失期望值ES进行估计.下面介绍一些常用的方法: 历史模拟法(Historical simulation) 历史模拟法是一种基于历史数据的方法,它假设未来的风 ...

  5. 风险管理及风险价值VaR分析

    介绍 估算量化交易策略或策略组合的损失风险对于长期资金增长至关重要,现代机构已经开发了许多风险管理技术,特别是一种被称为风险价值或在险价值(VaR)的技术是其核心,一般将VaR的概念应用于单一策略或一 ...

  6. 蒙特卡洛模拟计算风险价值VAR之R语言实现

    一.解析VAR 当在分析方法中计算风险价值(VAR)时,我们需要假设金融工具的返回遵循一定的概率分布.最常用的是正态分布,这也是为什么我们通常称它为delta normal方法.要计算VAR,我们需要 ...

  7. python分位数回归模型_如何理解分位数回归风险价值 (VaR) 模型?

    风险价值(下称VaR)的计算方法主要有历史模拟法(非参数法).分析方法.蒙特-卡罗模拟法三类.不同的计算方法.计算参数下所得的VaR都是不同的.若某机构宣称其产品的VaR较低即投资风险较低,投资者还需 ...

  8. 基于蒙特卡罗模拟的金融风险评估-函数调用关系图

  9. Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)

    最近我们被客户要求撰写关于风险价值(VaR)的研究报告,包括一些图形和统计输出. 如何使用Python通过蒙特卡洛模拟自动计算风险值(VaR)来管理投资组合或股票的金融风险. 金融和投资组合风险管理中 ...

最新文章

  1. Spring Cloud Alibaba 高级特性 分布式事务:Alibaba Seata 如何实现分布式事务
  2. Getting Started with OpenCV
  3. java set和get原理_Java线程池的实现原理和使用
  4. kotlin集合操作符——生产操作符
  5. linux之类似Windows的资源管理器gnome-system-monitor(可用这个杀死进程)
  6. 安卓最新系统_成纺移动校园(移动办公系统)V3.2.1 安卓最新版
  7. python绘图库seaborn_python绘图库——Matplotlib及Seaborn使用(入门篇2)
  8. mysql tb_Mysql数据库分库和分表方式
  9. testVC.modalPresentationStyle = UIModalPresentationFormSheet; 更改 VC大小
  10. freebsd mysql tmp_FREEBSD MYSQL数据库备份
  11. MSDN最新的2007年6月的中文版本发布了
  12. 如何在Mac上使用听写进行语音到文本的键入
  13. JAVA中的继承和覆盖
  14. WiFi 扫描处理过程
  15. python 获取文件大小_Python解决女朋友看电影没字幕的需求
  16. qq2012beta2java_Wine QQ 最新解决方案:WineQQ2012 Beta2
  17. 根据经纬度获取地理位置 和 根据地址获取经纬度
  18. ubuntu下安装anjuta
  19. [杂题]「FJOI2018」所罗门王的宝藏
  20. 附加支付和统筹支付_上海市医疗保险,请问账户支付和统筹支付是什...

热门文章

  1. CFNetwork初步
  2. 工作流系统理解(1)
  3. 员工管理系统Android版
  4. 视频教程-spring-cloud分布式实战-Java
  5. GA6-BGSM/GPRS模块介绍
  6. 出现Deprecated: Function ereg_replace() is deprecated in 的原因及解决方法
  7. TPM分析笔记(十二)TPM PCR操作
  8. 理解离散傅立叶变换(一)——傅立叶变换的由来
  9. QToolButton的Checked问题及解决方法
  10. OpenCV肤色检测