def test_cov_ndarray(): df = get_data() prior_df = df.pct_change().mean() S = risk_models.sample_cov(df) views = pd.Series(0.1, index=S.columns) bl = BlackLittermanModel(S, pi=prior_df, Q=views) bl_nd = BlackLittermanModel(S.to_numpy(), pi=prior_df.to_numpy(), Q=views) # Compare without missing ticker index values. np.testing.assert_equal(bl_nd.bl_returns().to_numpy(), bl.bl_returns().to_numpy()) np.testing.assert_equal(bl_nd.bl_cov().to_numpy(), bl.bl_cov().to_numpy()) assert list(bl_nd.bl_weights().values()) == list(bl.bl_weights().values())
def test_bl_cov_default(): df = get_data() cov_matrix = risk_models.CovarianceShrinkage(df).ledoit_wolf() viewdict = {"AAPL": 0.20, "BBY": -0.30, "BAC": 0, "SBUX": -0.2, "T": 0.131321} bl = BlackLittermanModel(cov_matrix, absolute_views=viewdict) S = bl.bl_cov() assert S.shape == (20, 20) assert S.index.equals(df.columns) assert S.index.equals(S.columns) assert S.notnull().all().all()