Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def equal_risk_contributon(weights, cov_matrix):
- marginal_risk = weights.T*np.dot(cov_matrix, weights)
- marginal_risk = np.abs(np.sum(marginal_risk)/4-marginal_risk)
- return np.sum(marginal_risk)*1000
- def min_risk_diff(mean_returns, cov_matrix):
- num_assets = mean_returns.shape[0]
- args = (cov_matrix)
- constraints = ({'type': 'eq', 'fun': lambda x: np.sum(x) - 1})
- bound = (0.0,1.0)
- bounds = tuple(bound for asset in range(num_assets))
- result = minimize(equal_risk_contributon, num_assets*[1./num_assets,], args=args,
- method='SLSQP', bounds=bounds, constraints=constraints)
- return result.x
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement