def test_cla_max_sharpe_short(): cla = CLA(*setup_cla(data_only=True), weight_bounds=(-1, 1)) w = cla.max_sharpe() assert isinstance(w, dict) assert set(w.keys()) == set(cla.tickers) np.testing.assert_almost_equal(cla.weights.sum(), 1) np.testing.assert_allclose( cla.portfolio_performance(), (0.44859872371106785, 0.26762066559448255, 1.601515797589826), ) sharpe = cla.portfolio_performance()[2] cla_long_only = setup_cla() cla_long_only.max_sharpe() long_only_sharpe = cla_long_only.portfolio_performance()[2] assert sharpe > long_only_sharpe
def test_cla_max_sharpe_short(): cla = CLA(*setup_cla(data_only=True), weight_bounds=(-1, 1)) w = cla.max_sharpe() assert isinstance(w, dict) assert set(w.keys()) == set(cla.tickers) np.testing.assert_almost_equal(cla.weights.sum(), 1) np.testing.assert_allclose( cla.portfolio_performance(), (0.3799273115521356, 0.23115368271125736, 1.5570909679242886), ) sharpe = cla.portfolio_performance()[2] cla_long_only = setup_cla() cla_long_only.max_sharpe() long_only_sharpe = cla_long_only.portfolio_performance()[2] assert sharpe > long_only_sharpe
def test_cla_min_volatility_exp_cov_short(): cla = CLA(*setup_cla(data_only=True), weight_bounds=(-1, 1)) df = get_data() cla.cov_matrix = risk_models.exp_cov(df).values w = cla.min_volatility() assert isinstance(w, dict) assert set(w.keys()) == set(cla.tickers) np.testing.assert_almost_equal(cla.weights.sum(), 1) np.testing.assert_allclose( cla.portfolio_performance(), (0.23215576461823062, 0.1325959061825329, 1.6000174569958052), )
def test_cla_min_volatility_exp_cov_short(): cla = CLA(*setup_cla(data_only=True), weight_bounds=(-1, 1)) df = get_data() cla.cov_matrix = risk_models.exp_cov(df).values w = cla.min_volatility() assert isinstance(w, dict) assert set(w.keys()) == set(cla.tickers) np.testing.assert_almost_equal(cla.weights.sum(), 1) np.testing.assert_allclose( cla.portfolio_performance(), (0.2634735528776959, 0.13259590618253303, 1.8362071642131053), )
'JPM': 0.017675709092515708, 'MA': 0.03812737349732021, 'PFE': 0.07786528342813454, 'RRC': 0.03161528695094597, 'SBUX': 0.039844436656239136, 'SHLD': 0.027113184241298865, 'T': 0.11138956508836476, 'UAA': 0.02711590957075009, 'WMT': 0.10569551148587905, 'XOM': 0.11175337115721229} """ # Crticial Line Algorithm cla = CLA(mu, S) print(cla.max_sharpe()) cla.portfolio_performance(verbose=True) """ {'GOOG': 0.020889868669945022, 'AAPL': 0.08867994115132602, 'FB': 0.19417572932251745, 'BABA': 0.10492386821217001, 'AMZN': 0.0644908140418782, 'GE': 0.0, 'AMD': 0.0, 'WMT': 0.0034898157701416382, 'BAC': 0.0, 'GM': 0.0, 'T': 2.4138966206946562e-19, 'UAA': 0.0, 'SHLD': 0.0, 'XOM': 0.0005100736411646903,