【視頻】風險價值VaR原理與Python蒙特卡羅Monte Carlo模擬計算|附代碼數據

2023-11-02     tecdat拓端

原標題:【視頻】風險價值VaR原理與Python蒙特卡羅Monte Carlo模擬計算|附代碼數據

原文連結:http://tecdat.cn/?p=22862

最近我們被客戶要求撰寫關於風險價值的研究報告,包括一些圖形和統計輸出。

風險價值 (VaR) 是一種統計數據,用於量化公司、投資組合在特定時間範圍內可能發生的財務損失程度

什麼是風險價值(VaR)?

該指標最常被投資銀行和商業銀行用來確定其機構投資組合中潛在損失的程度和機率。

視頻:風險價值VaR原理與Python蒙特卡羅Monte Carlo模擬計算投資組合實例

拓端

,贊15

風險管理人員使用 VaR 來衡量和控制風險暴露水平。人們可以將 VaR 計算應用於特定或整個投資組合,或使用它們來衡量公司範圍內的風險敞口。

關鍵要點

  • 風險價值 (VaR) 是一種量化公司或投資潛在損失風險的方法。
  • 該度量可以通過多種方式計算,包括歷史、方差-協方差和蒙特卡洛方法。
  • 儘管 VaR 作為一種風險度量在行業中很受歡迎,但它也存在不足之處。

了解風險價值 (VaR)

VaR 模型確定了被評估實體的潛在損失以及發生定義損失的機率。一種方法是通過評估潛在損失的數量、損失數量的發生機率和時間範圍來衡量 VaR。

例如,一家金融公司可能會確定一項資產的 3% 的 1 個月 VaR 為 2%,這表示資產在 1 個月的時間範圍內價值下降 2% 的可能性為 3%。將 3% 的發生幾率轉換為每日比率後,每月 1 天發生 2% 的損失幾率。

風險價值方法論

計算 VaR 的方法主要有 3 種。

第一種是歷史方法,它著眼於一個人之前的收益歷史。

第二種是方差-協方差法。這種方法假設收益和損失是正態分布的。

最後一種方法是進行蒙特卡羅模擬。該技術使用計算模型來模擬數百或數千次可能疊代的期望收益。

歷史方法

歷史方法只是重新組織實際的歷史收益,將它們從最差到最好的順序排列。然後從風險的角度假設歷史會重演。

作為一個歷史例子,讓我們看一下納斯達克 100 ETF。如果我們計算每天的收益,我們會產生豐富的數據設置超過 1,400 點。讓我們將它們放在一個直方圖中。例如,在直方圖的最高點(最高柱),有超過 250 天的日收益率在 0% 到 1% 之間。在最右邊,你幾乎看不到一個 10% 的小條;它代表了 5 年多內的一天(2000 年 1 月),每日收益率達到了驚人的 9.4%。4

請注意構成直方圖「左尾」的紅色條。這些是每日收益率最低的 5%(因為收益率是從左到右排序的,所以最差的總是「左尾」)。紅條從每日損失 4% 到 8% 不等。因為這些是所有每日收益中最差的 5%,我們可以有 95% 的信心說,最差的每日損失不會超過 4%。換句話說,我們有 95% 的信心預計我們的收益將超過 -4%。簡而言之,這就是 VaR。

方差-協方差法,也稱為參數法

該方法假設股票收益是正態分布的。換句話說,它只要求我們估計兩個因素——期望(或平均)收益和標準差——這使我們能夠繪製正態分布曲線。在這裡,我們根據相同的實際收益數據 繪製正態曲線:

方差-協方差背後的思想類似於歷史方法背後的思想——除了我們使用熟悉的曲線而不是實際數據。正態曲線的優點是我們可以自動知道最差的 5% 和 1% 在曲線上的位置。它們是我們期望的置信度和標準偏差的函數。

信心# 標準偏差 (σ)95%(高)- 1.65 x σ99%(非常高)- 2.33 x σ上面的藍色曲線是實際每日標準差,即2.64%。平均每日收益恰好接近於零,因此為了說明目的,我們將假設平均收益為零。以下是將實際標準差代入上述公式的結果:

信心 σ計算等於95%(高)- 1.65 x σ- 1.65 x (2.64%) =-4.36%99%(非常高)- 2.33 x σ- 2.33 x (2.64%) =-6.15%我們有95%的信心說,最差的每日損失不會超過-4.36%

蒙特卡洛模擬

第三種方法涉及為未來股票價格收益開發一個模型,並通過該模型運行多個假設試驗。蒙特卡洛模擬是指任何隨機生成試驗的方法,但它本身並沒有告訴我們任何有關基礎方法的信息 。

對於大多數用戶來說,蒙特卡洛模擬相當於一個隨機、機率結果的「黑匣子」生成器。在不深入細節的情況下,我們根據其歷史交易模式進行了蒙特卡羅模擬。在我們的模擬中,進行了 700 次試驗。如果我們再次運行它,我們會得到不同的結果——儘管差異很可能會縮小。

總而言之,我們對月收益進行了 700 次假設試驗。其中,5個結果在-5%和-7%之間;2個在 -7% 和 -9% 之間。這意味著最差的7個結果(即最差的 1%)低於 -5%。因此,蒙特卡羅模擬得出以下 VaR 類型的結論:在 99% 的置信度下,我們預計在任何給定月份的損失不會超過 5%。

風險價值 (VaR) 的優勢

1. 易於理解

風險價值是一個數字,表示給定投資組合的風險程度。風險價值以價格單位或百分比來衡量。這使得 VaR 的解釋和理解相對簡單。

2. 適用性

風險價值適用於所有類型的資產——債券、股票、衍生品、貨幣等。因此,不同的銀行和金融機構可以很容易地使用 VaR 來評估不同投資的盈利能力和風險,並根據 VaR 分配風險.

3.通用

風險價值數字被廣泛使用,因此它是購買、出售或推薦資產的公認標準。

風險價值的限制

1. 大型投資組合

計算投資組合的風險價值不僅需要計算每種資產的風險和收益,還需要計算它們之間的相關性。因此,投資組合中資產的數量或多樣性越大,計算 VaR 的難度就越大。

2.方法不同

計算 VaR 的不同方法可能導致相同投資組合的不同結果。

3. 假設

VaR 的計算需要做出一些假設並將其用作輸入。如果假設無效,那麼 VaR 數字也無效。

如何使用Python通過蒙特卡洛模擬自動計算風險值(VaR)來管理投資組合或股票的金融風險?

我們將首先通過導入所需的庫和函數

#導入所有需要的庫

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

為了我們項目的目的,我考慮了過去兩年的 股票。

for i in range(len): web.get_data(tickers[i]

stocks.tail()

下一步,我們將計算每個資產的組合權重。可以通過實現最大夏普比率來計算資產權重。

#年化收益率

historical_return(stocks)

#投資組合的樣本方差

sample_cov#夏普比率

EffFro(mu, Sigma, weight_bounds=(0,1)) #負數的權重界限允許做空股票

max_sharpe() #可以使用增加目標來確保單個股票的最小零權重

最大夏普比率的資產權重

資產權重將被用於計算投資組合的期望收益。

#VaR計算

rx2 = []#換為最大夏普比率的資產權重

list(sharpe.values())

現在,我們將把投資組合的股票價格轉換為累計收益,這也可以被視為本項目的持有期收益(HPR)。

tick = (tick +1).cumprod()

#畫出所有股票的累積/HPR的圖形

tick[col].plot()plt

點擊標題查閱往期內容

風險價值VaR(Value at Risk)和損失期望值ES(Expected shortfall)的估計

左右滑動查看更多

01

02

03

04

現在,我們將挑選出每個資產的最新HPR,並使用.dot()函數將收益率與計算出的資產權重相乘。

sigma = pre.std()

price=price.dot(sh_wt) #計算加權值

在計算了投資組合的期望收益和波動率(期望收益的標準差)後,我們將設置並運行蒙特卡洛模擬。我使用的時間是1440(一天中的分鐘數),模擬運行20,000次。時間步長可以根據要求改變。我使用了一個95%的置信區間。

for j in range(20000): #20000次模擬運行(rtn/Time,sigma/ sqrt(Time),Time)

plt(np.percentile(daily_returns,5)

1440分鐘內一天的收益範圍 | 紅色 - 最小損失 | 黑色 - 最小收益

將收益率的分布圖可視化,我們可以看到以下圖表

plt.hist(returns)

plt.show()

輸出上限和下限的準確值,並假設我們的投資組合價值為1000元,我們將計算出應該保留的資金數額彌補我們的最低損失。

print(percentile( returns,5),percentile( returns,95)) VaR - 在5%的機率下,最小損失為5.7%,同樣,在5%的機率下,收益可以高於15%

每天的最低損失是1.29%,機率為5%。

所得金額將標誌著每天彌補你的損失所需的金額。這個結果也可以解釋為你的投資組合在5%的機率下將面臨的最低損失。

總結

上面的方法顯示了我們如何計算投資組合的風險價值(VaR)。對於使用現代投資組合理論(MPT)計算一定數量的投資組合,有助於鞏固你對投資組合分析和優化的理解。最後,VaR與蒙特卡洛模擬模型配合使用,也可用於通過股價預測損失和收益。這可以通過將產生的每日收益值與各自股票的最終價格相乘來實現。

點擊文末 「閱讀原文」

獲取全文完整資料。

本文選自《Python蒙特卡羅(Monte Carlo)模擬計算投資組合的風險價值(VaR)》。

點擊標題查閱往期內容

R語言風險價值:ARIMA,GARCH,Delta-normal法滾動估計VaR(Value at Risk)和回測分析股票數據

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型R語言中實現馬爾可夫鏈蒙特卡羅MCMC模型R語言BUGS/JAGS貝葉斯分析: 馬爾科夫鏈蒙特卡洛方法(MCMC)採樣R語言使用蒙特卡洛模擬進行正態性檢驗及可視化R語言蒙特卡洛計算和快速傅立葉變換計算矩生成函數NBA體育決策中的數據挖掘分析:線性模型和蒙特卡羅模擬Python風險價值計算投資組合VaR(Value at Risk )、期望損失ES(Expected Shortfall)GARCH(1,1),MA以及歷史模擬法的VaR比較Python計算股票投資組合的風險價值(VaR)R語言求風險價值VaR Value at RiskR語言基於ARMA-GARCH-VaR模型擬合和預測實證研究分析案例R語言風險價值VaR(Value at Risk)和損失期望值ES(Expected shortfall)的估計R語言基於ARMA-GARCH過程的VaR擬合和預測GARCH(1,1),MA以及歷史模擬法的VaR比較matlab使用Copula仿真優化市場風險數據VaR分析 R語言GARCH模型對股市sp500收益率bootstrap、滾動估計預測VaR、擬合診斷和蒙特卡羅模擬可視化

R語言單變量和多變量(多元)動態條件相關係數DCC-GARCH模型分析股票收益率金融時間序列數據波動率

R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

GARCH-DCC模型和DCC(MVT)建模估計

R語言預測期貨波動率的實現:ARCH與HAR-RV與GARCH,ARFIMA模型比較

ARIMA、GARCH 和 VAR模型估計、預測ts 和 xts格式時間序列

PYTHON用GARCH、離散隨機波動率模型DSV模擬估計股票收益時間序列與蒙特卡洛可視化

極值理論 EVT、POT超閾值、GARCH 模型分析股票指數VaR、條件CVaR:多元化投資組合預測風險測度分析

Garch波動率預測的區制轉移交易策略

金融時間序列模型ARIMA 和GARCH 在股票市場預測應用

時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

R語言風險價值:ARIMA,GARCH,Delta-normal法滾動估計VaR(Value at Risk)和回測分析股票數據

R語言GARCH建模常用軟體包比較、擬合標準普爾SP 500指數波動率時間序列和預測可視化

Python金融時間序列模型ARIMA 和GARCH 在股票市場預測應用

MATLAB用GARCH模型對股票市場收益率時間序列波動的擬合與預測

R語言極值理論 EVT、POT超閾值、GARCH 模型分析股票指數VaR、條件CVaR:多元化投資組合預測風險測度分析

Python 用ARIMA、GARCH模型預測分析股票市場收益率時間序列

R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

R語言ARIMA-GARCH波動率模型預測股票市場蘋果公司日收益率時間序列

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測

R語言時間序列GARCH模型分析股市波動率

R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測

matlab實現MCMC的馬爾可夫轉換ARMA - GARCH模型估計

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進行股價預測

使用R語言對S&P500股票指數進行ARIMA + GARCH交易策略

R語言用多元ARMA,GARCH ,EWMA, ETS,隨機波動率SV模型對金融時間序列數據建模

R語言股票市場指數:ARMA-GARCH模型和對數收益率數據探索性分析

R語言多元Copula GARCH 模型時間序列預測

R語言使用多元AR-GARCH模型衡量市場風險

R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格

R語言用Garch模型和回歸模型對股票價格分析

GARCH(1,1),MA以及歷史模擬法的VaR比較

matlab估計arma garch 條件均值和方差模型

文章來源: https://twgreatdaily.com/zh-tw/53c05ca183011c85156d77f49503b3c9.html