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 }$$
การคำนวณเมทริกซ์โคแวเรียนซ์ ($ \Sigma $) ของผลตอบแทน X:

สมมติว่า StockReturns คือ pandas DataFrame ของผลตอบแทนหุ้น สามารถคำนวณเมทริกซ์โคแวเรียนซ์ได้ดังนี้:
cov_mat = StockReturns.cov()
cov_mat

การแปลงเมทริกซ์โคแวเรียนซ์เป็นรายปี:
cov_mat_annual = cov_mat * 252
สูตรความผันผวนของพอร์ต:
$$ \sigma_{Portfolio} = \sqrt{ w_T \cdot \Sigma \cdot w } $$
ตัวอย่างการดำเนินการ สลับเมทริกซ์ (matrix transpose):

การดำเนินการ dot product ของเวกเตอร์ a และ b:

การคำนวณความผันผวนของพอร์ต โดยกำหนดอาร์เรย์น้ำหนักและเมทริกซ์โคแวเรียนซ์:
import numpy as np
port_vol = np.sqrt(np.dot(weights.T, np.dot(cov_mat, weights)))
port_vol
0.035
Python เบื้องต้นสำหรับการบริหารความเสี่ยงพอร์ตการลงทุน