Python 投資組合風險管理入門
Dakota Wixom
Quantitative Analyst | QuantCourse.com


假設 StockReturns 是股票報酬的 pandas DataFrame,可如下計算相關矩陣:
correlation_matrix = StockReturns.corr()
print(correlation_matrix)

雙資產投資組合的報酬標準差:
$$ \sigma_p = \sqrt{ w_1^2 \sigma_1^2 + w_2^2 \sigma_2^2 + 2 w_1 w_2 \rho_{1, 2} \sigma_1 \sigma_2 }$$
要計算報酬 X 的共變異數矩陣($ \Sigma $):

假設 StockReturns 是股票報酬的 pandas DataFrame,可如下計算共變異數矩陣:
cov_mat = StockReturns.cov()
cov_mat

將共變異數矩陣年化:
cov_mat_annual = cov_mat * 252
投資組合波動度的公式:
$$ \sigma_{Portfolio} = \sqrt{ w_T \cdot \Sigma \cdot w } $$
「矩陣轉置」的範例:

兩個向量 a 與 b 的「點積」運算:

計算投資組合波動度,假設已知權重陣列與共變異數矩陣:
import numpy as np
port_vol = np.sqrt(np.dot(weights.T, np.dot(cov_mat, weights)))
port_vol
0.035
Python 投資組合風險管理入門