Количественное управление рисками на Python
Dr. Jamsheed Shorish
Computational Economist
Pandasprices.pct_change().dot() объекта returnsprices = pandas.read_csv("portfolio.csv")returns = prices.pct_change()weights = (weight_1, weight_2, ...)portfolio_returns = returns.dot(weights)
.cov() DataFrame объекта returns и аннуализировать
covariance = returns.cov()*252print(covariance)

.cov() DataFrame объекта returns и аннуализироватьcovariance — дисперсии отдельных активов
covariance = returns.cov()*252print(covariance)

.cov() DataFrame объекта returns и аннуализироватьcovariance — дисперсии отдельных активовcovariance — ковариации между активамиcovariance = returns.cov()*252print(covariance)

weights (весов) активов в портфеле@weights = [0.25, 0.25, 0.25, 0.25] # Assumes four assets in portfolioportfolio_variance = np.transpose(weights) @ covariance @ weightsportfolio_volatility = np.sqrt(portfolio_variance)
Series.rolling() создаёт скользящее окноwindowed = portfolio_returns.rolling(30)volatility = windowed.std()*np.sqrt(252) volatility.plot() .set_ylabel("Standard Deviation...")

Количественное управление рисками на Python