In [2]:
import numpy as np
In [3]:
muvec = np.matrix([[.06],[.02],[.04]])
Onevec = np.matrix([[1],[1],[1]])
V = np.matrix([[8, -2, 4], [-2, 2, -2], [4, -2, 8]])/1000
rf = .01
In [4]:
Xeq = np.matrix([[1/3], [1/3], [1/3]])
In [6]:
Xeq_return = muvec.T * Xeq
Xeq_return * 100
Out[6]:
In [7]:
Xeq_vol = np.sqrt(Xeq.T * V * Xeq)
Xeq_vol * 100
Out[7]:
In [22]:
Xmin = 1/np.sum(V.I * Onevec) * V.I * Onevec
Xmin
Out[22]:
In [24]:
Xmin_return = 1/np.sum(V.I * Onevec) * muvec.T * V.I * Onevec
Xmin_return * 100
Out[24]:
In [26]:
muhat = muvec - rf
Xsh = 1/np.sum(V.I * muhat) * V.I * muhat
Xsh
Out[26]:
In [28]:
Xsh_return = 1/np.sum(V.I * muhat) * muvec.T * V.I * muhat
Xsh_return * 100
Out[28]:
In [34]:
Xsh_var = 1/np.sum(V.I * muhat)**2 * muhat.T * V.I * V * V.I * muhat
Xsh_vol = np.sqrt(Xsh_var)
Xsh_vol *100
Out[34]:
In [35]:
Sharpe_ratio = (Xsh_return - rf)/Xsh_vol
Sharpe_ratio
Out[35]:
In [38]:
opportunity_vol = .05
opportunity_return = rf + Sharpe_ratio * opportunity_vol
opportunity_return * 100
Out[38]:
In [ ]: