$\quad Recession \: of \: the \: economy, \: Low \: consumer \: spending, \: Wars, \: Forces \: of \: nature$
import numpy as np
import pandas as pd
from pandas_datareader import data as wb
import matplotlib.pyplot as plt
tickers = ['PG', 'BEI.DE']
sec_data = pd.DataFrame()
for t in tickers:
sec_data[t] = wb.DataReader(t, data_source='yahoo', start='2007-1-1')['Adj Close']
sec_returns = np.log(sec_data / sec_data.shift(1))
weights = np.array([0.5, 0.5])
weights[0]
weights[1]
portfolio variance = $(w・Cov)^2$
pfolio_var = np.dot(weights.T, np.dot(sec_returns.cov() * 250, weights))
pfolio_var
# double brackets (shows dtype)
PG_var_a = sec_returns[['PG']].var() * 250
PG_var_a
# double brackets (shows dtype)
BEI_var_a = sec_returns[['BEI.DE']].var() * 250
BEI_var_a
# inappropriate (shows dtype)
dr = pfolio_var - (weights[0] ** 2 * PG_var_a) - (weights[1] ** 2 * BEI_var_a)
dr
float (PG_var_a)
# single brackets (dtype disappears)
PG_var_a = sec_returns['PG'].var() * 250
PG_var_a
# single brackets (dtype disappears)
BEI_var_a = sec_returns['BEI.DE'].var() * 250
BEI_var_a
# appropriate (dtype disappears)
dr = pfolio_var - (weights[0] ** 2 * PG_var_a) - (weights[1] ** 2 * BEI_var_a)
dr
print (str(round(dr * 100, 3)) + ' %')
n_dr_1 = pfolio_var - dr
n_dr_1
n_dr_2 = (weights[0] ** 2 * PG_var_a) + (weights[1] ** 2 * BEI_var_a)
n_dr_2
n_dr_1 == n_dr_2