精华内容
下载资源
问答
  • Java中var是Java10版本新出的特性,用它来定义局部变量。 使用var 定义变量的语法: var 变量名 = 初始值; 如果代码: var a = 20; var a =8.9; 这样的代码会报错 显示int到double的转换; Java是强类型...

    Java中var是Java10版本新出的特性,用它来定义局部变量。
    使用var 定义变量的语法: var 变量名 = 初始值;
    如果代码:
    var a = 20;
    var a =8.9;
    这样的代码会报错 显示int到double的转换;
    Java是强类型语言,每个变量都有固定的变量类型。
    var是什么:
    var不是关键字,它相当于是一种动态类型;
    var动态类型是编译器根据变量所赋的值来推断类型;
    var 没有改变Java的本质,var只是一种简便的写法,
    就是说在定义局部变量时,任意什么类型都可以用var定义变量的类型会根据所赋的值来判断。
    用var声明变量的注意事项:
    1,var只能在方法内定义变量,不允许定义类的成员变量。
    2,var 定义变量必须赋初始值,------》以后不能在赋初始值。
    3,var每次只能定义一个变量,不能复合声明变量。
    使用var定义变量的优缺点:
    优点:使代码简洁和整齐。
    缺点:降低了程序的可读性。
    什么时候该用var定义变量:
    如果你定义变量时,给变量赋给一个直观的值,这时就可以使用var定义变量,
    最不能使用var定义变量:
    1,给var定义的变量赋给一个很复杂的表达式时,这样使表达式的返回值不直观,不能用var定义变量。
    2,var定义的变量作用域很长时,方法长和var变量影响较大时,不用var定义变量。

    展开全文
  • VaR 与 CVaR

    万次阅读 2018-12-24 17:48:24
    VaR, value at risk, 风险价值,表示金融产品给定置信水平 α\alphaα 下的最小损失。用 XXX 表示该随机波动的金融产品, FX(x)F_X(x)FX​(x) 为其累计概率分布,则 VAR 的数学表示式为: VaRα(X)=inf⁡{t∣FX(t)...

    VaR, value at risk, 风险价值,表示金融产品在给定置信水平 α \alpha α 下的最大损失。用 X X X 表示该随机波动的金融产品收益, F X ( x ) F_X(x) FX(x) 为其累计概率分布,则 VAR 的数学表示式为:

    VaR α ( X ) = − inf ⁡ { t ∣ F X ( t ) ≥ α } \text{VaR}_\alpha(X)=-\inf\{t\mid F_X(t)\geq \alpha\} VaRα(X)=inf{tFX(t)α}

    或用概率表达式:
    VaR α ( X ) = − inf ⁡ { t ∣ Pr ⁡ ( x ≤ t ) ≥ α } \text{VaR}_\alpha(X)=-\inf\{t\mid \Pr(x\leq t)\geq \alpha\} VaRα(X)=inf{tPr(xt)α}

    CVaR, conditional value at risk. 表示金融产品在既定置信水平 α \alpha α 下,损失超过 VAR 的期望损失,数学表达式为:
    C V a R α = − ∫ 0 α V a R r ( X ) d r α CVaR_\alpha=-\frac{\int_0^\alpha VaR_r(X)dr}{\alpha} CVaRα=α0αVaRr(X)dr

    对于CVAR,Rockafellar 与 Uryasev 还提出了一个等价表达式:

    C V a R α = t + 1 1 − α ∫ t ∞ ( z − t ) d z CVaR_\alpha=t+\frac{1}{1-\alpha}\int_t^\infty(z-t)dz CVaRα=t+1α1t(zt)dz

    其中, t t t 就是 V a R VaR VaR,而 z z z 为金融产品的损失函数。

    展开全文
  • 【FinE】险价值(VaR)计算

    千次阅读 2020-08-30 18:01:39
    VaR值计算

    VaR模型

    在险价值Value-at-risk的定义为,在一定时期 Δ t \Delta t Δt内,一定的置信水平 1 − α 1-\alpha 1α下某种资产组合面临的最大损失,公式为
    P ( Δ p ≤ V a R ) = 1 − α P(\Delta p\leq VaR)=1-\alpha P(ΔpVaR)=1α
    在持有组合时期 Δ t \Delta t Δt内,给定置信水平 1 − α 1-\alpha 1α下,该组合的最大损失不会超过VaR,使用VaR进行风险衡量时,需要给定持有期和置信水平,巴塞尔协会规定持有期标准为10天,置信水平为99%,商业银行可以确定各自的水平,J.P.Morgan公司在1994年年报中设置持有期为1天,置信水平为95%,VaR值为1500万元,即J.P.Morgan公司在一天内所持有的风险头寸损失小于1500万的概率为95%.

    VaR的主要性质:

    • 变换不变性: V a R ( X + a ) = V a R ( X ) + a , a ∈ R VaR(X+a)=VaR(X)+a, a\in\mathbb{R} VaR(X+a)=VaR(X)+a,aR
    • 正齐次性: V a R ( a X ) = a V a R ( X ) , a < 0 VaR(aX)=aVaR(X), a<0 VaR(aX)=aVaR(X),a<0,资产的风险与持有头寸呈反比关系
    • 协单调可加性: V a R ( X 1 + X 2 ) = V a R ( X 1 ) + V a R ( X 2 ) VaR(X_1+X_2)=VaR(X_1)+VaR(X_2) VaR(X1+X2)=VaR(X1)+VaR(X2)
    • 不满足次可加性和凸性:不满足次可加性表示资产组合的风险不一定小于各资产风险之和,这个性质导致VaR测度存在不合理性,因为组合VaR不可以通过求各个资产的VaR得出。不满足凸性表示以VaR为目标函数的规划问题一般不是凸规划,局部最优解不一定是全局最优解,由于多个局部极值的存在导致无法得到最优资产组合
    • 满足一阶随机占优
    • VaR关于概率水平 1 − α 1-\alpha 1α不是连续的

    VaR对风险的衡量具有前瞻性,将预期损失的规模和发生的概率结合,可以了解在不同置信水平上风险的大小.
    但是VaR模型是对正常市场环境中金融风险的衡量,如果整体环境出现了动荡或者发生极端情况时,VaR就会失去参考价值,一般加上压力测试(Stress Test)结合极值分析进行风险衡量,常用的极值分析方法有BMM和POT两种,极值分析就是当风险规模超过设定阈值时进行建模,处理风险尾部.
    由于金融数据的低信噪比特点,导致数据呈现尖峰后尾的分布,这种分布导致VaR模型无法产生一致性度量,针对风险度量的不一致性可以使用条件风险价值CVaR模型修正,即当资产组合损失超过给定的VaR值时,资产组合的损失期望,计算公式如下
    C V a R α = E ( − X ∣ − X ≤ V a R α ( x ) ) CVaR_\alpha=\mathbb{E}(-X\mid -X\leq VaR_\alpha(x)) CVaRα=E(XXVaRα(x))
    其中 X X X表示资产的损益,CVaR满足以下性质:

    • 一致连续性
    • 次可加性, ∀ X , Y \forall X, Y X,Y满足 ρ ( X + Y ) ≤ ρ ( X ) + ρ ( Y ) \rho(X+Y)\leq \rho(X)+\rho(Y) ρ(X+Y)ρ(X)+ρ(Y)
    • 满足二阶随机占优
    • 满足单调性, ∀ X ≤ Y \forall X\leq Y XY满足 ρ ( X ) ≤ ρ ( Y ) \rho(X)\leq \rho(Y) ρ(X)ρ(Y)

    案例:AAPL

    历史模拟法

    历史模拟法计算AAPL公司的VaR,历史模拟法使用市场历史因子的变化来估计市场因子未来的变化,对市场因子的估计采用权值估计方法,根据市场因子的未来价格水平对头寸进行重新估值,计算出头寸的价值变化,将组合损益从小到大排序,得到损益分布,通过计算给定置信度下的分位数求出VaR. 这里计算了置信水平分别为95%和99%的VaR.
    hm

    历史模拟法python代码

    import pandas_datareader.data as web
    import datetime as dt
    import pandas as pd
    import numpy as np
    from scipy.stats import norm
    import matplotlib.pyplot as plt
    
    start=dt.datetime(2012, 1, 1)
    end=dt.datetime(2018, 12, 31)
    df=web.DataReader('AAPL', 'yahoo', start, end)
    
    # 对数收益率
    df['return']=np.log(df['Adj Close']/df['Adj Close'].shift(1))
    # 计算收益率的分位数
    # 5%分位数
    VaR5=np.percentile(df['return'].dropna(), 5)
    # 1%分位数
    VaR1=np.percentile(df['return'].dropna(), 1)
    
    def hm_demo():
        grey = 0.75, 0.75, 0.75
        fig=plt.figure(figsize=(8, 6))
        plt.hist(df['return'], bins=50, alpha=0.5, color=grey)
        plt.plot([VaR5, VaR5], [0, 100], 'b:', linewidth=2, label='5% VaR')
        plt.plot([VaR1, VaR1], [0, 100], 'r:', linewidth=2, label='1% VaR')
        plt.xlim([-0.1, 0.1])
        plt.ylim([0, 250])
        plt.legend()
        # plt.savefig('hm_var.png')
        plt.show()
    
    hm_demo()
    

    参数模型分析法

    分析法利用证券组合的价值函数与市场因子之间的近似关系,推断市场因子的统计分布,简化VaR计算.
    使用参数模型分析法需要进行数据预处理工作,在Matlab(R 2012a)中常用数据预处理函数如下

    % 计算股票样本的均值,标准差,相关性与beta
    % 价格转收益率
    tick_ret=tick2Ret(stockPrices, [], 'continuous')
    mu=mean(tick_ret) % 计算均值
    std=std(tick_ret) % 计算标准差
    mdd=maxdrawdown(tick_ret) % 计算最大回撤
    coef=corrcoef(tick_ret) % 相关系数矩阵
    

    tick2ret函数说明

    [RetSeries, RetIntervals]=tick2ret(TickSeries, TickTimes, Method)
    INPUT
    TickSeries: 价格序列
    TickTimes: 时间序列
    Method: 计算方法,continuous表示对数收益率计算log(x)-log(y);simple表示简单收益率计算(x-y)/y
    OUTPUT
    RetSeries: 收益率序列
    RetIntervals: 收益率对应的时间间隔
    

    maxdrawdown函数说明

    T日组合最大回撤计算接口为
    [MaxDD, MaxDDIndex]=maxdrawdown(Data, Format)
    INPUT
    Data: 组合每日总收益序列
    Format: 类别有 return(默认,收益率序列),arithmetic(算术布朗运动),geometric(几何布朗运动)
    OUTPUT
    MaxDD:最大回撤值
    MaxDDIndex:最大回撤值位置
    

    参数模型法计算VaR使用接口portvrisk,函数说明如下

    ValueAtRisk=portvrisk(PortReturn, PortRisk, RiskThreshold, PortValue)
    INPUT
    PortReturn:组合收益率
    PortRisk: 组合标准差
    RiskThreshold:置信度阈值,默认为5%
    PortValue:组合资产价值,默认为1
    OUTPUT
    ValueAtRisk:风险价值
    

    参数模型法计算程序如下

    pVar=portvrisk(mean(ret), std(ret), [0.01, 0.05], port_value);
    confidence=pVar/port_value
    

    非参数bootstrap

    对历史数据进行有放回的采样,计算每次采样的VaR,然后对所有采样结果求期望,设置采样容量为300,进行200轮采样的结果如下
    bt

    python非参数bootstrap代码

    def bootstrap_demo():
        ret=df['return'].dropna()
        # 有放回采样
        def sample(data, size):
            sample=np.random.choice(data, size, replace=True)
            VaR5=np.percentile(sample, 5)
            VaR1=np.percentile(sample, 1)
            return (VaR5, VaR1)
    
        sz, n=300, 200
        samples=np.array([sample(ret, sz) for _ in range(n)])
        VaR5, VaR1=np.mean(samples, axis=0)
        
        grey = 0.75, 0.75, 0.75
        fig=plt.figure(figsize=(8, 6))
        plt.hist(df['return'], bins=50, alpha=0.5, color=grey)
        plt.plot([VaR5, VaR5], [0, 100], 'b:', linewidth=2, label='5% VaR')
        plt.plot([VaR1, VaR1], [0, 100], 'r:', linewidth=2, label='1% VaR')
        plt.xlim([-0.1, 0.1])
        plt.ylim([0, 250])
        plt.legend()
        plt.savefig('bootstrap_var.png')
        plt.show()
    
    bootstrap_demo()
    

    Monte-Carlo模拟计算

    Monte-Carlo计算欧式期权价格可以见这篇博客.
    Monte-Carlo模拟的基本步骤是:
    1.选择市场因子变化的随机过程和分布,估计该过程的参数的相关参数.
    2.模拟市场因子的变化路径,建立对市场因为未来的预测
    3.对市场因子每个情景,利用公式计算价值和变化
    4.根据组合价值变化分布模拟结果,计算给定置信度下的VaR.
    设置股票价格符合几何布朗运动,即
    S t + 1 = S t exp ⁡ ( ( μ − σ 2 2 ) Δ t + σ ε Δ t ) S_{t+1}=S_t\exp((\mu-\frac{\sigma^2}{2})\Delta t+\sigma\varepsilon\sqrt{\Delta t}) St+1=Stexp((μ2σ2)Δt+σεΔt )
    其中 μ \mu μ为收益率均值, σ 2 \sigma^2 σ2为收益率方差, ε \varepsilon ε为从Gaussian分布中抽样出的随机值.
    计算 Δ t = 1 \Delta t=1 Δt=1日的VaR值
    mc

    python蒙特卡洛模拟计算代码

    def monte_carlo_demo():
        ret = df['return'].dropna()
        mu, sig = np.mean(ret), np.std(ret)
        def gbm(s0, T, n):
            dt=T/n
            price=s0
            for _ in range(n):
                eps=np.random.normal()
                s=price*np.exp((mu-sig**2/2)*dt+sig*eps*np.sqrt(dt))
                price=s
            return price
    
        sp=[]
        s0=1
        for _ in range(10000):
            sp.append(gbm(s0, 1, 100))
        sret=np.array(sp)/s0-1
        VaR1=np.percentile(sret, 1)
        VaR5=np.percentile(sret, 5)
        print(VaR1, VaR5)
        grey = 0.75, 0.75, 0.75
        fig=plt.figure(figsize=(8, 6))
        plt.hist(df['return'], bins=50, alpha=0.5, color=grey)
        plt.plot([VaR5, VaR5], [0, 100], 'b:', linewidth=2, label='5% VaR')
        plt.plot([VaR1, VaR1], [0, 100], 'r:', linewidth=2, label='1% VaR')
        plt.xlim([-0.1, 0.1])
        plt.ylim([0, 250])
        plt.legend()
        plt.savefig('monte-carlo_var.png')
        plt.show()
    
    monte_carlo_demo()
    

    k k k天的VaR可以根据公式
    V a R k = V a R 1 ∗ k VaR_k=VaR_1*\sqrt{k} VaRk=VaR1k
    计算,或者令程序中gbm参数T=k进行模拟计算.

    参考资料

    DCC-Garch VaR 量化小白H
    Copula模型估计组合VaR 量化小白H
    python金融实战之计算VaR
    Risk Analysis in Python
    量化投资以Matlab为工具 中国工信出版集团 李洋 郑志勇

    展开全文
  • matlab 险价值 VaR 的计算

    千次阅读 多人点赞 2019-04-17 12:13:26
    matlab 险价值 VaR 的计算 matlab 险价值 VaR 的计算 VaR 模型 数据获取 历史模拟法 蒙特卡罗模拟法 参数模型法 代码和数据下载 VaR 模型 Value at Risk 险价值,即 VaR。是指一定时期内,一定置信...

    matlab 在险价值 VaR 的计算

    VaR 模型

    Value at Risk 在险价值,即 VaR。是指一定时期内,一定置信水平下,某种资产组合面临的最大损失。

    P r o

    展开全文
  • 风险控制之VaR

    千次阅读 2018-09-29 15:58:10
    VaR是value of risk的缩写称为风险价值,或者受险价值,指的是一定的概率下,一个金融资产未来一段时间内的最大可能损失。常用于金融机构的风险管理。它的数学定义为: 其中,的含义是金融资产持有期的...
  • /var/目录详解

    千次阅读 2018-11-20 15:16:59
    var目录 /var 包括系统运行时要改变的数据。其中包括每个系统是特定的,即不能够与其他计算机共享的目录,如/var/log,/var/lock,/...var目录存在的目的是把usr目录运行过程中需要更改的文件或者临时生成的文件及...
  • vue中let var 和const 区别

    万次阅读 2018-11-17 19:39:54
    有没有感觉到 javascript 使用var会发生变量提升,即脚本开始运行时,  变量已经存在了,但是没有值,所以会输出undefined。  而let不会发生变量提升,这表示声明它之前,变量是不存在的,这时如果用到它, ...
  • 看到结果的时候是不是再次怀疑了世界,打印变量var1之前明明重新赋值了120,为什么打印出来还是110呢?其实这是批处理脚本执行机制导致的,它会按行执行,执行之前会先预处理,当执行 set var1=110 之后,变量...
  • js中用var声明变量后并赋值(假设这个值为字符串"variable"),这个值 如果需要JSP中拿出来显示可以使用此方法: 先JSP中写一个span标签并设置ID,回到刚刚声明变量的js中下面补上一句 span_id.innerHTML=...
  • 轻松弄懂var、let、const之间的区别

    千次阅读 多人点赞 2020-01-08 14:16:01
    ES6的出现为我们前端带来了很多方便之处,以前用js几十行才实现的一个功能,ES6几行代码就能简单的实现,ES6新增的一些特性,改变了很多弊端之处,比如新出现的let、const,实现了块级作用域功能,减少了以前var的...
  • VaR如何计算?VaR计算方法

    万次阅读 2020-04-23 22:41:10
    VaR的计算方法通常有三大类:分析法、历史模拟法和蒙特卡罗模拟法,这3种方法从不同角度来分析资产的风险价值。后面的案例中将对股指期货交易中金的最大损失值进行计算,即对金的VaR值进行估计。 1、分析法 ...
  • Var与CVaR计算方法,即风险价值的计算,使用matlab编写
  • python var1, var2 = var2, var1

    千次阅读 2018-05-16 19:42:57
    1、变量一和变量二交换值可以使用var1, var2 = var2, var1。 2、变量一和变量二可以不是同种类型的变量。。 测试1: 测试2: 测试3: 测试4: 测试5 ...
  • jquery变量var的使用

    万次阅读 2018-11-11 08:24:26
    变量var的使用 js的变量没有类型 var $li = $('#' + file.id), $percent = $li.find('.progress span'); //console.log("percentage:", percentage); ...
  • matlab VAR模型应用实例,附源代码和PPT
  • R语言做面板VAR例子

    千次阅读 2018-11-23 17:19:28
    面板VAR步骤: (1)对各变量做平稳性...(3)PVAR系统中进行Wald-Granger检验 (4)面板VAR估计 (5)脉冲效应 (6)面板方差分解 R语言例子: 文件pvar.csv数据结构如下: 数据包括4个内生变量("...
  • public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5); var1:要修改的对象起始地址 如:0x00000111 var2:需要修改的具体内存地址 如100 。0x0000011+100 = 0x0000111...
  • TK-StringVar

    千次阅读 2020-03-07 23:45:09
    使用界面编程的时候,有些时候是需要跟踪变量的值的变化,以保证值的变更随时可以显示界面上。由于python无法做到这一点,所以使用了tcl的相应的对象,也就是StringVar、BooleanVar、DoubleVar、IntVar所需要起...
  • java10 var关键字浅析

    万次阅读 多人点赞 2018-07-29 11:03:36
    java10为java带来了很多新特性,其中让人眼前一亮的便是var关键字的引入。 从今以后我们可以这样写java代码了。 public class Example { public static void main(String[] args) { var eg = new Example; eg....
  • [Excel常用函数] var &var.p & var.s函数

    万次阅读 2018-05-27 12:05:30
    var函数 函数 VAR 假设其参数是样本总体中的一个样本。 公式意义见下图: 注意到图中分式的分母为n-1 var.p函数 ...单元格A13输入函数:=VAR(A1:A10) 用var.p函数求单元格区域A1:A10...
  • Go关键字--var

    千次阅读 2018-04-04 22:15:13
    var var关键字用来定义变量,不论定义什么类型的变量,都可以使用var来定义。 var 变量名 [类型] [=] [初始值] 定义变量时,如果定义的变量没有初始化,则必须指定变量类型;如果变量定义时初始化,则可以不...
  • 本文显示了如何基于潜在的ARMA-GARCH过程(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。 1从ARMA-GARCH进程模拟(log-return)数据 我们考虑使用\(t \)分布式创新的ARMA(1,1)-GARCH(1,1)...
  • VaR(value at risk)险价值

    万次阅读 2018-04-09 15:35:40
    险价值是指一定概率下,某种投资组合某段时间 内的最大损失。VaR的方法有:历史模拟方法,正态方法,蒙特卡洛方法,压力测试法。VaR方法可以有效测算出金融市场正常波动下资产组合的市场风险,但金融市场极端...
  • 1.使用var声明变量,方法内部是局部变量,方法外部是全局变量 2.没有使用var声明的变量,方法内部或外部都是全局变量,但如果是方 法内部声明,方法外部使用之前需要先调用方法,告知系统声明了全局变量后...
  • 如果var为空或者未设定,返回word,var不变 ${var:=word} 如果var为空或者未设定,返回word,且var=word ${var:+word} 如果var有值,返回word,var不变 ${var:?word} 如果变量var为空或者未设定,...
  • js中 let var const 的差异和使用场景

    千次阅读 2018-08-15 11:32:03
    微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文: ...其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。 'use strict'; if (true) { let x = '...
  • /var/spool/mail/root 中有邮件

    千次阅读 2019-07-23 14:47:00
    用 mail 命令可以查看你有多少邮件... /var/spool/mail/root 方法一:禁止系统检查邮件 echo "unset MAILCHECK" >> /etc/profile 方法二:用logWatch转发邮件 vim /usr/share/logwatch/default.conf/log...
  • 不使用var定义一个变量时是定义了全局对象window的一个属性,事实上你无论代码中的任何一个部分(全局或者某一代码块中)声明的都是一个全局变量,可以通过delete运算删除该属性(变量) 2、使用var定义一个变量...
  • Java中var类型的用法

    千次阅读 2019-10-05 14:14:17
    Java中var是Java10版本新出的特性,用它来定义局部变量。 使用var 定义变量的语法: var 变量名 = 初始值; 如果代码: var a = 20; var a =8.9; 这样的代码会报错 显示int到double的转换; Java是强类型语言,每...
  • Python金融实战之计算VaR

    千次阅读 多人点赞 2020-02-24 10:37:05
    1.VaR 定义:Value at Risk,一定概率水平(置信度)下,某一金融资产或证券组合价值未来特定时期内的最大可能损失。一日 5% VaR 可以理解为一天发生损失超过VaR的概率小于等于5%。 2.Python实现过程 先导入包 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,693,810
精华内容 1,877,524
关键字:

var在哪