首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Python计算股票投资组合风险价值(VaR

p=17758 什么是风险价值(VaR)? 风险价值(VaR)用于尝试量化指定时间范围内公司或投资组合中财务风险水平。...简而言之,方差-协方差方法着眼于给定回溯期内给定股票或股票投资组合历史价格走势(标准差,平均价格),然后使用概率理论来计算指定置信区间内最大损失。我们将在下面使用Python逐步进行计算。...在开始之前,请注意,标准VaR计算假定以下条件: 收益正态分布 -VaR假设投资组合收益是正态分布。对于大多数资产而言,这当然是不现实,但允许我们使用更为简单计算来制定基准。...(可以对VaR进行修改来说明不同分布,但是这里我们将重点介绍标准VaR计算) 标准市场条件 -与许多金融工具一样,VaR最适合用于考虑标准市场中损失,并且不适用于极端/异常事件。...计算投资组合VaR步骤 为了计算投资组合VaR,您可以按照以下步骤操作: 计算投资组合中股票定期收益 根据收益创建协方差矩阵 计算投资组合均值和标准差 (根据投资组合中每只股票投资水平加权)

3.7K10

VaR系列(五):Copula模型估计组合VaR

资产组合VaR建模方法回顾 文章中总结了通过DCC模型估计组合向前一日VaR方法,整体思路如下: 通过Garch族模型估计各资产波动率 通过DCC模型估计各资产间相关系数,结合1得到资产组合协方差矩阵...文章中总结了通过蒙特卡洛方法估计组合向前K日VaR方法,也可以仅计算组合向前一日VaR(本文只考虑向前1日情况),文章中也对比了蒙特卡洛方法与DCC方法得到结果,差异并不大。...其中,序号1称为Gumbel Copula函数,序号2称为Clayton Copula函数,序号3称为Frank Copula函数,之所以说明这三个,是因为这三个实际应用中比较多,pythoncopulalib...VaR估计思路 从之前叙述中可以看出,通过copula函数得到组合分布函数没有非常好解析表达式,所以直接通过定义计算VaR方法行不通,一般采取与蒙特卡洛方法相结合方式,生成给定copula函数下随机数...; 蒙特卡洛模拟估计VaR 第一步:生成符合copula函数随机数; 第二步:通过随机数得到各资产收益模拟序列; 第三步:根据各资产权重得到组合收益序列,取p分位数作为VaR估计值 3.实证分析 数据

3.3K20

VaR系列(三):DCC模型估计组合VaR

1.模型推导 和单个资产类似,资产组合VaR定义依然由下式给出 ? 不同地方在于,这里波动率应换成组合波动率,分布函数应换为组合分布函数。...需要说明一点是,如果我们假设所有的单个资产收益率都服从正态分布,资产组合收益率是单个资产收益率加权和,也服从正态分布,这种情况下,计算VaR只需要对组合波动率给出估计。...DCC-RM模型,公式来自Englepaper,需要文献在后台回复"VaR3",公式中 ?...3.实证分析 软件:python3.6 数据:S&P500、US 10yr T-Note Fixed Term 区间:2001-2010 两种资产及资产组合净值曲线,组合中两种资产等权重,其中,红色线为组合净值...基于DCC-Garch模型VaR ? 其中,红色线为DCC-RM估计得到VaR,绿色线为DCC-Garch估计得到VaR,整体趋势一致。

3.3K20

var和letconst区别

let和 const是 ES6 新增命令,用于声明变量,这两个命令跟 ES5 var有许多不同,并且 let和 const也有一些细微不同,再认真阅读了阮一峰老师文档后,发现还是有一些不知道细节...本文中提到链接,因为微信限制,没有显示出来,查看文中链接,需要点击最下方阅读原文链接 博客、前端积累文档、公众号、GitHub 内容: var和 let/ const区别 块级作用域 不存在变量提升.../ 想打印外层时间作用域 if (false) { var tmp = 'hello world'; // 这里声明作用域为整个函数 } } f(); // undefined var...undefined ES5 时使用 var声明变量,经常会出现变量提升现象。...// var 情况 console.log(foo); // 输出undefined var foo = 2; // let 情况 console.log(bar); // 报错ReferenceError

36310

var、let、const区别

var 学过JavaScript都很熟悉,用来声明一个变量。 let、const 是ECMAScript 6中新增命令。...(x); // expected output: 2 作用域: 用 var 声明变量作用域是它当前执行上下文,它可以是嵌套函数,或者对于声明在任何函数外变量来说是全局。...它用法类似于var,但是所声明变量,只在 let 命令所在代码块内有效。...然后在代码块之外调用这两个变量,结果let声明变量报错,var声明变量返回了正确值。这表明,let声明变量只在它所在代码块有效。 for循环计数器,就很合适使用let命令。...// var 情况 console.log(foo); // 输出undefined var foo = 2; // let 情况 console.log(bar); // 报错ReferenceError

57021

let 与 var 区别

bug收集:专门解决与收集bug网站 网址:www.bugshouji.com 01 声明后未赋值,表现相同 let、var申明变量未赋值,都输出undefined....console.log(letTest); //输出undefined }()); 02 使用未声明变量,表现不同 使用var申明变量,会进行提升,而let申明变量,则不会提升 所以,有如下结果...'; }()); 03 重复声明同一个变量时,表现不同 var可以重复申明相同变量,后面的会覆盖前面的 let不可以重复申明相同变量,会报错,变量已经存在 'use strict'; (function...(注意要注释掉上面letTest变量重复声明才能运行) console.log(letTest); }()); 04 变量作用范围,表现不同 var只全局变量与局部变量之分,没有块级作用域 let...,内部"{}"中声明letTest和外部letTest不是同一个变量 }()); 05 经典例子 使用 var 定义变量 i ,循环体中使用 setTimeout 输出 i , 代码如下: for(

44620

VaR系列(二):CF,Garch,EVT方法估计VaR

首先对VaR定义做一回顾,上一篇提到,如果我们假设资产标准化收益率符合正态分布,那么VaR理论表达式为 ? 上式右边第一项为资产收益率波动率,第二项为正态分布分布函数逆函数在p处值。...Garch模型 garch模型不过多介绍,资料网上一大堆,或者直接调用pythonarch包,即使不懂原理也可以直接用,Garch模型实际上是对收益率波动率进行建模。 ?...python中可以利用optimize函数计算函数极值。...读入数据估计参数 import os os.chdir('F:\\python_study\\python_friday\\Aug') import pandas as pd import numpy...看起来比之前t分布结果要好很多。 5. VaR 用训练集得到参数计算VaR,结果如图,其中RM方法为上一篇中介绍过。 ?

3.4K20

var lady first

在大部分情况下使用 var 声明隐式类型变量,编译器会自动选择合适类型来处理。...例如: var s = new Student(); 从上面的代码中我们可以看出变量 s 类型是 Student ,但是这段代码还有一个问题,就是变量命名。...首先局部变量类型推断不等于动态类型检查,var 声明变量不是动态变量,c# 会根据赋值符号等号右边类型来确定等号左边变量类型。其次,编译器会自动判断类型。...首先 var 声明变量会让代码阅读起来有些困难,因为有可能我们所认为类型和编译器最终类型不一样,进而导致在代码中错误维护开发导致 bug 。...这是因为 var 声明变量编译器会自动推断其类型,但是开发人员看不到推断出来类型。其次,如果使用隐式类型变量真实类型是内置数值类型的话会产生类型转换精度下降问题。

83920

PowerBI公式-VAR

可是这样不可避免问题就是要重复写同一类函数,而且也不便于阅读。用VAR可以很好解决这个问题: ? VAR工作原理是它先录制一个变量,再配合使用Return把录制好内容拿出来反复多次利用。...这个例子中有两个小细节,注意第二个VAR引用了上一个VAR定义Sales,也就是说VAR可以引用之前定义好VAR;第二个细节是在PowerBI公式栏中输入时候,智能提示会特别提醒你使用已经定义好...VAR,极大地方便了你书写。...所以,VAR第一个好处就是使你书写更整洁,尤其在公式很臃肿时候。...现在学会了VAR,可以先把Earlier引用列用VAR来定义: ? 两个公式输出结果是一样

3.6K21

VaR系列(一):HS,WHS,RM方法估计VaR

最近参加了一个线上学习计划,一群人一起学《Elements of Financial Risk Management》这本书,主要偏向于金融时间序列和多因子模型知识,结合python编程。...也就是说,金融资产收益率有1-p概率不会小于-VaR,有p概率会小于-VaR。如果能准确估计出金融资产未来一段时间内VaR,对于企业做出投资决策有重要意义。...编程实现也很方便,pythonnp.percentile函数可以直接得到一列数据p分位数,excel中也有类似的函数。...100p%分位数表示VARpython中没有直接计算加权分位数函数,因此需要自己编程实现。...import os os.chdir('F:\\python_study\\python_friday\\July') import pandas as pd import numpy as np from

2.4K50

let const 与var区别

es6里面的一些新特性还是很好用,但是有的时候看文档会带来一些疑惑。let、const这两个东西和var到底有哪些不同呢?下面咱们结合一些小例子给大家展示一下。...首先来了解一下let与var区别,主要有一下三点: 第一点,var在javascript中是支持预解析,而let不支持预解析,代码如图: ? 执行结果如图: ?...回忆一下let和var第三点不同,let可以生成局部作用域,代码再次改造: ? 执行结果为: ? 以上便是let和var不同,如果大家还有补充欢迎留言。...下面是const与var不同,以上三点完全适用const,但是const与let或是var还有两点不同。 首先是第一点,const是用来定义常量,常量定义之后是不允许改变。看代码: ?...以上便是let const 和var区别。大家有不明白或者有补充可以给我留言。

1.9K30

变量 var const let 区别

---- theme: cyanosis 第一章 变量 var const let 区别 ---- 前言 ECMAScript变量是松散类型,变量可以保存任何类型数据,每个变量不过是一个用于保存任意值命名占位符...var 声明作用域:var操作定义符变量会成为包含它函数局部变量,如果用var在一个函数内部定义变量,该变量将在函数推出时被销毁 function test(){ var msg = 'Bear...(name); name = 'Bear'; } test() //undefined 二、let声明 let跟var作用差不多,区别就是let声明范围是块作用域,而var声明范围是函数作用域...没有定义 let age = 21; 4.let在全局作用域中声明变量不会成为window对象属性(var声明则会) var name = 'bear'; console.log(window.name...0; i < 5 ;i++){ } console.log(i); //ReferenceError i没有定义 在用var时候最常见问题就是对迭代变量声明和修改 for (var i = 0;

47610

VaR系列(四):蒙特卡洛方法估计VaR

之前几篇总结方法都是对于向前一日VaR建模,都以是以VaR=波动率乘以分布函数逆函数为基础。...但如果要计算向前k日VaR,如果还使用上述公式,波动率和分布函数应该换成k日滚动窗口,好像还没见过这样Garch模型。 所以本文总结一种可以对向前k日VaR进行估计方法,蒙特卡洛方法。...组合VaR估计与单资产VaR估计不同在于组合不仅需要估计资产波动率,还需要估计资产之间相关性,换句话说,需要估计资产协方差阵。...02 实证分析 软件:python3.6 数据:S&P500、US 10yr T-Note Fixed Term(同上一篇) 区间:2001-2010 蒙特卡洛模拟次数:10000次 数据和代码在后台回复...“VaR4”获取 单资产VaR估计均在数据序列最后一天向前估计,估计K=500天 波动率初始值使用当天波动率,波动率建模用之前文章中Ngarch(1,1)模型,两资产组合VaR估计类似 Monte-Garch

5.2K40
领券