拓端tecdat|Python蒙特卡羅(Monte Carlo)模擬計算投資組合的風險價值(VaR)


原文鏈接:http://tecdat.cn/?p=22862 

原文出處:拓端數據部落公眾號

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

金融和投資組合風險管理中的VaR?

VaR是 "風險價值 "的縮寫,是許多公司和銀行用來確定其公司內部金融風險水平的工具。風險值是為公司的投資而計算的,也可能是為檢查銀行或公司所管理的投資組合的風險水平。

該計算可以被認為是一種統計方法。它也可以簡化為以下語句  

風險值是在一定的概率水平(置信區間)下將產生的最小損失或在一定的概率水平下將實現的最大損失。

上圖顯示了一個公司在α%的置信水平下可能面臨的最大損失。在個人層面上,VaR可以幫助你預測或分析你的投資組合可能面臨的最大損失。

蒙特卡洛模擬

蒙特卡洛模型是Stanislaw Ulam和John Neumann的心血結晶,他們在第二次世界大戰后開發了這個模型。該模型是以摩納哥的一個賭博城市命名的,這是因為賭博中存在機會和隨機性。

蒙特卡洛模擬是一個概率模型,它使用產生的隨機變量與經濟因素(期望收益率、波動率),來預測結果。該模型經常被用來計算風險和不確定性。

我們現在將使用蒙特卡洛模擬為我們的資產組合生成一組預測收益,這將有助於我們找出我們投資的風險值。


在Python中計算VaR

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

  1.  
    #導入所有需要的庫
  2.  
    import matplotlib.pyplot as plt
  3.  
    import numpy as np
  4.  
    import pandas as pd

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

  1.  
     
  2.  
    for i in range(len): web.get_data(tickers[i]
  3.  
    stocks.tail()

 

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

  1.  
    #年化收益率
  2.  
    historical_return(stocks)
  3.  
    #投資組合的樣本方差
  4.  
    sample_cov#夏普比率
  5.  
    EffFro(mu, Sigma, weight_bounds=(0,1)) #負數的權重界限允許做空股票
  6.  
    max_sharpe() #可以使用增加目標來確保單個股票的最小零權重

最大夏普比率的資產權重

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

  1.  
    #VaR計算
  2.  
    rx2 = []#換為最大夏普比率的資產權重
  3.  
    list(sharpe.values())

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

   tick  = (tick  +1).cumprod()
 

  1.  
    #畫出所有股票的累積/HPR的圖形
  2.  
    tick[col].plot()plt

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

  1.  
    sigma = pre.std()
  2.  
    price=price.dot(sh_wt) #計算加權值

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

  1.  
    for j in range(20000): #20000次模擬運行(rtn/Time,sigma/ sqrt(Time),Time)
  2.  
    plt(np.percentile(daily_returns,5)

1440分鍾內一天的收益范圍 | 紅色 - 最小損失 | 綠色 - 最小收益

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

  1.  
    plt.hist(returns)
  2.  
    plt.show()

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

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

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

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

總結

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


最受歡迎的見解

1.R語言基於ARMA-GARCH-VaR模型擬合和預測實證研究

2.R語言時變參數VAR隨機模型

3.R語言估計時變VAR模型時間序列的實證研究

4.R語言基於ARMA-GARCH過程的VAR擬合和預測

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

6.R語言用向量自回歸(VAR)進行經濟數據脈沖響應

7.R語言實現向量自動回歸VAR模型

8.R語言隨機搜索變量選擇SSVS估計貝葉斯向量自回歸(BVAR)模型

9.R語言VAR模型的不同類型的脈沖響應分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM