Comment on page
Diversification
If you want to diversify more or less your portfolio, there are 2 ways to do it with Empyrial:
- By using
min_weights
andmax_weights
:
Let's take this example:
from empyrial import empyrial, Engine
portfolio = Engine(
start_date = "2018-01-01",
benchmark = ["SPY"], #SPY is set by default
portfolio = ["BABA", "PDD", "KO", "AMD","^IXIC"],
optimizer = "EF"
)
empyrial(portfolio)
portfolio.weights
[0.0, 0.0, 0.02258, 0.97742, 0.0]
As you can see the allocation is very clustered around AMD and this is a problem. To solve that, we can do:
from empyrial import empyrial, Engine
portfolio = Engine(
start_date = "2018-01-01",
benchmark = ["SPY"], #SPY is set by default
portfolio = ["BABA", "PDD", "KO", "AMD","^IXIC"],
optimizer = "EF",
min_weights = 0.05, #invest at least 5% of the capital in every assets
max_weights = 0.35 #don't invest more than 35% in one asset
)
empyrial(portfolio)
portfolio.weights
[0.05, 0.05, 0.2, 0.35, 0.35]
So, we can tune these two parameters (
min_weights
and max_weights
) in order to get a better allocation.- The second way is by using
diversification
(works with every optimizer except the Efficient Frontier, "EF"):
diversification
's default value is 1. The higher is this value, the more it diversifies the portfolio and gets closer to equal weighting.
The lower is this value, the less it diversifies the portfolio.
Example:
from empyrial import empyrial, Engine
portfolio = Engine(
start_date = "2018-01-01",
benchmark = ["SPY"],
portfolio = ["BABA", "PDD", "KO", "AMD","^IXIC"],
optimizer = "MINVAR",
diversification = 1.8
)
empyrial(portfolio)