Introdução ao Gerenciamento de Risco de Portfólio em Python
Dakota Wixom
Quantitative Analyst | QuantCourse.com


Supondo que StockReturns seja um DataFrame do pandas com retornos de ações, você pode calcular a matriz de correlação assim:
correlation_matrix = StockReturns.corr()
print(correlation_matrix)

Desvio padrão de um portfólio com dois ativos:
$$ \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 }$$
Para calcular a matriz de covariância ($ \Sigma $) dos retornos X:

Supondo que StockReturns seja um DataFrame do pandas com retornos de ações, você pode calcular a matriz de covariância assim:
cov_mat = StockReturns.cov()
cov_mat

Para anualizar a matriz de covariância:
cov_mat_annual = cov_mat * 252
A fórmula da volatilidade do portfólio é:
$$ \sigma_{Portfolio} = \sqrt{ w_T \cdot \Sigma \cdot w } $$
Exemplos de operações de transposição de matriz:

A operação de produto escalar de dois vetores a e b:

Para calcular a volatilidade do portfólio, assuma um array de pesos e uma matriz de covariância:
import numpy as np
port_vol = np.sqrt(np.dot(weights.T, np.dot(cov_mat, weights)))
port_vol
0.035
Introdução ao Gerenciamento de Risco de Portfólio em Python