日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【FinE】在险价值(VaR)计算

發(fā)布時(shí)間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【FinE】在险价值(VaR)计算 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

導(dǎo)航

  • VaR模型
  • 案例:AAPL
    • 歷史模擬法
    • 參數(shù)模型分析法
    • 非參數(shù)bootstrap
    • Monte-Carlo模擬計(jì)算
  • 參考資料

VaR模型

在險(xiǎn)價(jià)值Value-at-risk的定義為,在一定時(shí)期Δt\Delta tΔt內(nèi),一定的置信水平1?α1-\alpha1?α下某種資產(chǎn)組合面臨的最大損失,公式為
P(Δp≤VaR)=1?αP(\Delta p\leq VaR)=1-\alpha P(ΔpVaR)=1?α
在持有組合時(shí)期Δt\Delta tΔt內(nèi),給定置信水平1?α1-\alpha1?α下,該組合的最大損失不會(huì)超過(guò)VaR,使用VaR進(jìn)行風(fēng)險(xiǎn)衡量時(shí),需要給定持有期和置信水平,巴塞爾協(xié)會(huì)規(guī)定持有期標(biāo)準(zhǔn)為10天,置信水平為99%,商業(yè)銀行可以確定各自的水平,J.P.Morgan公司在1994年年報(bào)中設(shè)置持有期為1天,置信水平為95%,VaR值為1500萬(wàn)元,即J.P.Morgan公司在一天內(nèi)所持有的風(fēng)險(xiǎn)頭寸損失小于1500萬(wàn)的概率為95%.

VaR的主要性質(zhì):

  • 變換不變性:VaR(X+a)=VaR(X)+a,a∈RVaR(X+a)=VaR(X)+a, a\in\mathbb{R}VaR(X+a)=VaR(X)+a,aR
  • 正齊次性:VaR(aX)=aVaR(X),a<0VaR(aX)=aVaR(X), a<0VaR(aX)=aVaR(X),a<0,資產(chǎn)的風(fēng)險(xiǎn)與持有頭寸呈反比關(guān)系
  • 協(xié)單調(diào)可加性:VaR(X1+X2)=VaR(X1)+VaR(X2)VaR(X_1+X_2)=VaR(X_1)+VaR(X_2)VaR(X1?+X2?)=VaR(X1?)+VaR(X2?)
  • 不滿(mǎn)足次可加性和凸性:不滿(mǎn)足次可加性表示資產(chǎn)組合的風(fēng)險(xiǎn)不一定小于各資產(chǎn)風(fēng)險(xiǎn)之和,這個(gè)性質(zhì)導(dǎo)致VaR測(cè)度存在不合理性,因?yàn)榻M合VaR不可以通過(guò)求各個(gè)資產(chǎn)的VaR得出。不滿(mǎn)足凸性表示以VaR為目標(biāo)函數(shù)的規(guī)劃問(wèn)題一般不是凸規(guī)劃,局部最優(yōu)解不一定是全局最優(yōu)解,由于多個(gè)局部極值的存在導(dǎo)致無(wú)法得到最優(yōu)資產(chǎn)組合
  • 滿(mǎn)足一階隨機(jī)占優(yōu)
  • VaR關(guān)于概率水平1?α1-\alpha1?α不是連續(xù)的

VaR對(duì)風(fēng)險(xiǎn)的衡量具有前瞻性,將預(yù)期損失的規(guī)模和發(fā)生的概率結(jié)合,可以了解在不同置信水平上風(fēng)險(xiǎn)的大小.
但是VaR模型是對(duì)正常市場(chǎng)環(huán)境中金融風(fēng)險(xiǎn)的衡量,如果整體環(huán)境出現(xiàn)了動(dòng)蕩或者發(fā)生極端情況時(shí),VaR就會(huì)失去參考價(jià)值,一般加上壓力測(cè)試(Stress Test)結(jié)合極值分析進(jìn)行風(fēng)險(xiǎn)衡量,常用的極值分析方法有BMM和POT兩種,極值分析就是當(dāng)風(fēng)險(xiǎn)規(guī)模超過(guò)設(shè)定閾值時(shí)進(jìn)行建模,處理風(fēng)險(xiǎn)尾部.
由于金融數(shù)據(jù)的低信噪比特點(diǎn),導(dǎo)致數(shù)據(jù)呈現(xiàn)尖峰后尾的分布,這種分布導(dǎo)致VaR模型無(wú)法產(chǎn)生一致性度量,針對(duì)風(fēng)險(xiǎn)度量的不一致性可以使用條件風(fēng)險(xiǎn)價(jià)值CVaR模型修正,即當(dāng)資產(chǎn)組合損失超過(guò)給定的VaR值時(shí),資產(chǎn)組合的損失期望,計(jì)算公式如下
CVaRα=E(?X∣?X≤VaRα(x))CVaR_\alpha=\mathbb{E}(-X\mid -X\leq VaR_\alpha(x)) CVaRα?=E(?X?XVaRα?(x))
其中XXX表示資產(chǎn)的損益,CVaR滿(mǎn)足以下性質(zhì):

  • 一致連續(xù)性
  • 次可加性,?X,Y\forall X, Y?X,Y滿(mǎn)足ρ(X+Y)≤ρ(X)+ρ(Y)\rho(X+Y)\leq \rho(X)+\rho(Y)ρ(X+Y)ρ(X)+ρ(Y)
  • 滿(mǎn)足二階隨機(jī)占優(yōu)
  • 滿(mǎn)足單調(diào)性,?X≤Y\forall X\leq Y?XY滿(mǎn)足ρ(X)≤ρ(Y)\rho(X)\leq \rho(Y)ρ(X)ρ(Y)

案例:AAPL

歷史模擬法

歷史模擬法計(jì)算AAPL公司的VaR,歷史模擬法使用市場(chǎng)歷史因子的變化來(lái)估計(jì)市場(chǎng)因子未來(lái)的變化,對(duì)市場(chǎng)因子的估計(jì)采用權(quán)值估計(jì)方法,根據(jù)市場(chǎng)因子的未來(lái)價(jià)格水平對(duì)頭寸進(jìn)行重新估值,計(jì)算出頭寸的價(jià)值變化,將組合損益從小到大排序,得到損益分布,通過(guò)計(jì)算給定置信度下的分位數(shù)求出VaR. 這里計(jì)算了置信水平分別為95%和99%的VaR.

歷史模擬法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 pltstart=dt.datetime(2012, 1, 1) end=dt.datetime(2018, 12, 31) df=web.DataReader('AAPL', 'yahoo', start, end)# 對(duì)數(shù)收益率 df['return']=np.log(df['Adj Close']/df['Adj Close'].shift(1)) # 計(jì)算收益率的分位數(shù) # 5%分位數(shù) VaR5=np.percentile(df['return'].dropna(), 5) # 1%分位數(shù) VaR1=np.percentile(df['return'].dropna(), 1)def hm_demo():grey = 0.75, 0.75, 0.75fig=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()

參數(shù)模型分析法

分析法利用證券組合的價(jià)值函數(shù)與市場(chǎng)因子之間的近似關(guān)系,推斷市場(chǎng)因子的統(tǒng)計(jì)分布,簡(jiǎn)化VaR計(jì)算.
使用參數(shù)模型分析法需要進(jìn)行數(shù)據(jù)預(yù)處理工作,在Matlab(R 2012a)中常用數(shù)據(jù)預(yù)處理函數(shù)如下

% 計(jì)算股票樣本的均值,標(biāo)準(zhǔn)差,相關(guān)性與beta % 價(jià)格轉(zhuǎn)收益率 tick_ret=tick2Ret(stockPrices, [], 'continuous') mu=mean(tick_ret) % 計(jì)算均值 std=std(tick_ret) % 計(jì)算標(biāo)準(zhǔn)差 mdd=maxdrawdown(tick_ret) % 計(jì)算最大回撤 coef=corrcoef(tick_ret) % 相關(guān)系數(shù)矩陣

tick2ret函數(shù)說(shuō)明

[RetSeries, RetIntervals]=tick2ret(TickSeries, TickTimes, Method) INPUT TickSeries: 價(jià)格序列 TickTimes: 時(shí)間序列 Method: 計(jì)算方法,continuous表示對(duì)數(shù)收益率計(jì)算log(x)-log(y);simple表示簡(jiǎn)單收益率計(jì)算(x-y)/y OUTPUT RetSeries: 收益率序列 RetIntervals: 收益率對(duì)應(yīng)的時(shí)間間隔

maxdrawdown函數(shù)說(shuō)明

T日組合最大回撤計(jì)算接口為 [MaxDD, MaxDDIndex]=maxdrawdown(Data, Format) INPUT Data: 組合每日總收益序列 Format: 類(lèi)別有 return(默認(rèn),收益率序列),arithmetic(算術(shù)布朗運(yùn)動(dòng)),geometric(幾何布朗運(yùn)動(dòng)) OUTPUT MaxDD:最大回撤值 MaxDDIndex:最大回撤值位置

參數(shù)模型法計(jì)算VaR使用接口portvrisk,函數(shù)說(shuō)明如下

ValueAtRisk=portvrisk(PortReturn, PortRisk, RiskThreshold, PortValue) INPUT PortReturn:組合收益率 PortRisk: 組合標(biāo)準(zhǔn)差 RiskThreshold:置信度閾值,默認(rèn)為5% PortValue:組合資產(chǎn)價(jià)值,默認(rèn)為1 OUTPUT ValueAtRisk:風(fēng)險(xiǎn)價(jià)值

參數(shù)模型法計(jì)算程序如下

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

非參數(shù)bootstrap

對(duì)歷史數(shù)據(jù)進(jìn)行有放回的采樣,計(jì)算每次采樣的VaR,然后對(duì)所有采樣結(jié)果求期望,設(shè)置采樣容量為300,進(jìn)行200輪采樣的結(jié)果如下

python非參數(shù)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, 200samples=np.array([sample(ret, sz) for _ in range(n)])VaR5, VaR1=np.mean(samples, axis=0)grey = 0.75, 0.75, 0.75fig=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模擬計(jì)算

Monte-Carlo計(jì)算歐式期權(quán)價(jià)格可以見(jiàn)這篇博客.
Monte-Carlo模擬的基本步驟是:
1.選擇市場(chǎng)因子變化的隨機(jī)過(guò)程和分布,估計(jì)該過(guò)程的參數(shù)的相關(guān)參數(shù).
2.模擬市場(chǎng)因子的變化路徑,建立對(duì)市場(chǎng)因?yàn)槲磥?lái)的預(yù)測(cè)
3.對(duì)市場(chǎng)因子每個(gè)情景,利用公式計(jì)算價(jià)值和變化
4.根據(jù)組合價(jià)值變化分布模擬結(jié)果,計(jì)算給定置信度下的VaR.
設(shè)置股票價(jià)格符合幾何布朗運(yùn)動(dòng),即
St+1=Stexp?((μ?σ22)Δt+σεΔt)S_{t+1}=S_t\exp((\mu-\frac{\sigma^2}{2})\Delta t+\sigma\varepsilon\sqrt{\Delta t}) St+1?=St?exp((μ?2σ2?)Δt+σεΔt?)
其中μ\muμ為收益率均值,σ2\sigma^2σ2為收益率方差,ε\varepsilonε為從Gaussian分布中抽樣出的隨機(jī)值.
計(jì)算Δt=1\Delta t=1Δt=1日的VaR值

python蒙特卡洛模擬計(jì)算代碼

def monte_carlo_demo():ret = df['return'].dropna()mu, sig = np.mean(ret), np.std(ret)def gbm(s0, T, n):dt=T/nprice=s0for _ in range(n):eps=np.random.normal()s=price*np.exp((mu-sig**2/2)*dt+sig*eps*np.sqrt(dt))price=sreturn pricesp=[]s0=1for _ in range(10000):sp.append(gbm(s0, 1, 100))sret=np.array(sp)/s0-1VaR1=np.percentile(sret, 1)VaR5=np.percentile(sret, 5)print(VaR1, VaR5)grey = 0.75, 0.75, 0.75fig=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()

kkk天的VaR可以根據(jù)公式
VaRk=VaR1?kVaR_k=VaR_1*\sqrt{k} VaRk?=VaR1??k?
計(jì)算,或者令程序中g(shù)bm參數(shù)T=k進(jìn)行模擬計(jì)算.

參考資料

DCC-Garch VaR 量化小白H
Copula模型估計(jì)組合VaR 量化小白H
python金融實(shí)戰(zhàn)之計(jì)算VaR
Risk Analysis in Python
量化投資以Matlab為工具 中國(guó)工信出版集團(tuán) 李洋 鄭志勇

總結(jié)

以上是生活随笔為你收集整理的【FinE】在险价值(VaR)计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。