# Portfolio Construction using Black-Litterman Model and Factors

Fanyu Zhao
Website: fanyuzhao.com
E-mail<EMAIL_ADDRESS>
###### Abstract

This paper presents a portfolio construction process, including mainly two
parts, Factors Selection and Weight Allocations. For the factors selection
part, We have chosen 20 factors by considering three aspects, the global
market, different assets class, and stock idiosyncratic characteristics. Each
factor is proxied by a corresponding ETF. Then, we would apply several weight
allocation methods to those factors, including two fixed weight allocation
methods, three optimisation methods, and a Black-Litterman model. In addition,
we would also fit a Deep Learning model for generating views periodically and
incorporating views with the prior to achieve dynamically updated weights by
using the Black-Litterman model. In the end, the robustness checking shows how
weights change with respect to time evolving and variance increasing. Results
using shrinkage variance are provided to alleviate the impacts of
representativeness of historical data, but there sadly has little impact.
Overall, the model by using the Deep Learning plus Black-Litterman model
results outperform the portfolio by other weight allocation schemes, even
though further improvement and robustness checking should be performed.

_K_ eywords Portfolio Management $\cdot$ Factor Selection $\cdot$ Quantitative
Finance

##  1 Introduction

In this paper, we would present a portfolio construction process by
implementing mainly two steps. These are (1) Factor Selection, in which we
would introduce the rationale of selecting factors building up our portfolio,
and (2) Weight Allocation, in which we would assign weights to each factor.

Appealingly, there are various methods of selecting factors and constructing a
portfolio. Investors or fund managers may pick assets and assign weights
through main three categories of ways, including (1) Heuristic Multi-factor
Construction, (2) Optimised Multi-factor Construction, and (3) Risk-Based
Multi-factor Construction (Lin,, 2020). The first method, Heuristic Multi-
factor Construction, is commonly used and easily to be used. Investors can
simply choose assets they want and throw corresponding parameters and
construct a linear model.

$\alpha_{i}=0.2F_{1,i}+0.3F_{2,i}+0.5F_{3,i}$ (1)

, where $F_{j,i}$ represents asset, with $i$ be the number in the sample, and
$j$ be the number of chosen factor. Those $0.2$, $0.3$, and $0.5$ are just the
arbitrary parameters, which are defined by investors, and those are measuring
how $alpha$ is affected by factors $F_{j,i}$. However, there are potential
drawbacks, such as high parameter bias, high factor selection bias, and lack
of statistical evidence.

We would not implement the heuristic multi-factor construction method in our
portfolio construction due to those above-mentioned drawbacks. However, we
would learn from the Heuristic Model, selecting desired factors or assets to
build our portfolio. My idea is to construct a factor-bearing portfolio, and
we would use different ETFs or funds to proxy various factors. For example,
the US growth equity could be captured by Vanguard Growth Index Fund. The
rationale of choosing factors would be introduced in detail in the following
sections.

Then, a combination of optimised multi-factor construction and risk-based
multi-factor construction would be used to build up the portfolio.
Specifically, we would use the minimum variance method, Markowitz mean-
variance method, and reverse Sharpe ratio methods to construct the
optimisation portfolio. Additionally, two fixed weight-allocation ways, namely
equal weights and market cap weights, are also presented. Also, the Black-
Litterman Model has been used to dynamically adjust views on those select
assets.

In this paper, we would go through a step-by-step work on portfolio
construction. I would first introduce my logic of factor selection in Section
2.1. We would apply several weight allocation methods to those factors,
including two fixed weight allocation methods, three optimisation methods, and
a Black-Litterman model. The methodology is introduced in Section 2.2 and
Section 2.3. In addition, we would also fit a Deep Learning model for
generating views periodically and incorporating views prior to achieving
dynamically updated weights by using the Black-Litterman model, as Section
2.4. Data, data source, and some statistics are shown in Section 3. Results
showing how weights are affected by different risk aversion scenarios and
results showing the back-testing combining Deep Learning and the Black-
Litterman model are presented in Section 4. Later, the robustness checking
shows how weights change with respect to time evolving and variance
increasing. Results using shrinkage variance are provided in Section 5. We at
the end present also some discussions and improvements in Section 6 and a
conclusion section 7.

##  2 Methodology

Before introducing the methodology and formula, let us introduce some the
notations in our paper.

We aim to include 20 factors in our portfolio construction, each one is
represented by a ETF or a fund. Plus, there is one benchmark, S&P500 ETF and
one risk-free return which is captured by the Treasury Bill rate. So, there
are 22 assets being introduced, and each is a time series. We would use those
20 factors, 1 benchmark, and 1 risk-free rate to construct our portfolio.

  * •

$w$: a vector of weights.

  * •

$\mu$: a vector of the expected return for each factors

  * •

$\Sigma$: a variance-covariance matrix for factors.

  * •

$\mathbb{1}$: an one vector, with all elements being 1.

  * •

The superscript $\\{T\\}$ means the transport of a vector or a matrix. The
superscript $\\{-1\\}$ means the inverse of a matrix.

  * •

Matrix are mostly $N\times N$, where $N$ is the number of factors ($N=20$ in
our case). However, views of the Black-Litterman model is a $K\times N$
matrix, where $K$ is the number of views, and $N$ is the number of factors,
$N=20$ in our paper as there are 20 factors. Views are one-hot encoding.

###  2.1 Factor Selection

As I have introduced before, we are trying to construct a portfolio with
different factors capturing different characteristics of the market. Three
main rationales are considered to achieve the goal.

The first rationale is to consider the global market, including both the US
and the emerging market. Our portfolio would include assets from the largest
financial market, the US, and an emerging market where I would simply use the
Chinese market, in order to diversify the risks in a global scope. Note that I
would use China to represent the emerging market due to the fact that the
Chinese financial market contains also a large volume of assets and
personally, I am more familiar with the market in China and can easily get
access to the Chinese market. There are definitely disadvantages that we could
not overcome, such as financial markets in China sometimes lack liquidity due
to political implementations and China might not be that representative to all
of other emerging markets. However, we would just follow our rationale. Also,
to cope with the disadvantage, any other factor could be easily replaced in my
portfolio construction framework.

The second rationale is to include different asset classes. Bonds, equities,
and commodities are all considered in our portfolio because we are trying to
capture most of the movements of the financial markets. Ideally, risks from
different asset classes could be compensated, by combining and hedging. As the
whole global market has been split into the US market and China market by our
first rationale, we would now split further the market to be US bond, US
equity, China bond, China Equity, and commodity. As the commodities are
globally traded and globally priced, we cannot give a geographical separation
to commodities. In addition, as suggested by the Reading Q&A, a VIX factor
would be also included.

Thirdly, factors, such as growth factor, value factor, quality factor,
small/large market cap factors, high-dividend factors, and factors that
represent a specific industry are included for both the US and Chinese
equities. There is much empirical financial evidence illustrating how those
factors help capture the market movement. For instance, Fama and French,
(1993) were pioneers who found the impacts of three well-known factors on
financial assets, which are size effects, value effects, and the excess
market. Then, Fama and French, (2012) stated that value, size, and momentum
effects are largely existing in the global market. Inspired by findings from
those scholars, we add those ETFs that mimic the above-mentioned factors into
our consideration. In addition, both US technology and China technology ETFs
are also added to my portfolio. We found the facts that the technology
industry is one of the most iconic and high-growth industries for the US and
Chinese markets, so we expect that the industry has certain representative
characteristics that cannot be replaced by other factors, and we also assume
there is no perfect co-linearity between tech ETF and others. (Actually,
certain factors are highly correlated but there are not perfect col-linearity
as Figure 3 shows.)

Therefore, we pick the following 20 factors, as the #1 to #20 in Table 1.
There are two more factors, #0 and #21 that are treated as the benchmark and
the risk-free rate, respectively.

One common debate of factor selection is that there should be less correlation
among those factors because factors could be better diversified. However,
since we are considering different asset classes, we need a bit of active
exposure to certain factors to a certain degree (see Reading Q&A).

Table 1: List of All Factors (22 Time Series, including 20 Factors 1 Benchmark
and 1 Risk-free Rate

# | Type | yfinance Quote | Index Meaning | Variable Name | Factor
---|---|---|---|---|---
0 | Equity US | SPY | SPDR S&P 500 ETF Trust | sp500 | Benchmark
1 | Equity US | VUG | Vanguard Growth Index Fund | us_growth | US Growth
2 | Equity US | VTV | Vanguard Value Index Fund | us_value | US Value
3 | Equity US | SPHQ | Invesco S&P 500 Quality ETF | us_quality | US Quality
4 | Equity US | SPHD | Invesco S&P 500 High Dividend Low Volatility ETF | us_dividend | US Dividend
5 | Equity US | IYW | iShares U.S. Technology ETF | us_tech | US High Tech
6 | Equity US | VB | Vanguard Small Cap Index Fund | us_small | US Small Cap
7 | Equity US | MTUM | iShares MSCI USA Momentum Factor ETF | us_momentum | US Momentum
8 | Equity China | MCHI | iShares MSCI China ETF | china_benchmark | China Benchmark Index
9 | Equity China | ECNS | iShares MSCI China Small-Cap ETF | china_growth | China Growth
10 | Equity China | FXI | iShares China Large-Cap ETF | china_value | China Value
11 | Equity China | CQQQ | Invesco China Technology ETF | china_tech | China High Tech
12 | Equity China | PGJ | Invesco Golden Dragon China ETF | china_quality | China Quality
13 | Bond US | SCHO | Schwab Short-Term U.S. Treasury ETF | us_bond_shortterm | Short-term US Bond
14 | Bond US | TLT | iShares 20+ Year Treasury Bond ETF | us_bond_longterm | Long-term US Bond
15 | Bond China | CBON | VanEck China Bond ETF | china_bond | China Bond
16 | Commodity | IEO | iShares U.S. Oil & Gas Exploration & Production ETF | commodity_oil | Oil and Gas
17 | Commodity | IAU | iShares Gold Trust | commodity_gold | Gold
18 | Commodity | DBA | Invesco DB Agriculture Fund | commodity_agriculture | Agriculture
19 | Real Estate | VNQ | Vanguard Real Estate Index Fund | house_us | US Real Estate
20 | Volatility | VIXY | ProShares VIX Short-Term Futures ETF (VIXY) | vix | VIX Short-term
21 | Rate | ^IRX | 13 Week Treasury Bill | tbill | 3-Month Treasury Bill Rate

  * •

Note: Table shows 22 Time Series that are used in this paper. There 20
Factors, each is represented by a ETFs, and there are two more factors, Number
0 and Number 21. Those two are treated as the benchmark and the risk-free
rate, respectively. Data would all retrieve from Yahoo!Finance.

###  2.2 Weight Allocation

####  2.2.1 Fixed Weight Allocation Scheme

Two different schemes of fixed weight allocation methods are used in this
paper. The first method is the equally-weighted method. That means we assign
equal weights to each factor. For example, each factor out of a total of 20 in
total would be given weights $=1/20=0.05$ equally. The equal-weighted
portfolio is easy to be constructed, but is hard to tackle the problem when
investors have their own desire on certain factors, or when investors have
different risk tolerance levels.

The other method is the market capitalisation weighted method, in which we
assign weights by using the percentage of market cap for each factor. As all
factors have their corresponding ETFs, the market capitalisation data could be
retrieved from data providers such as Yahoo! Finance. However, there are some
problems we are encountering while using the percentage of market cap to
allocate weights to each factor. The first problem is ETFs, as the proxies of
those factors are produced by different fund providers, investors have
different desires for those ETF providers. Meanwhile, there are many ETF
providers that provide similar ETFs that proxy the same factor, such as small-
cap ETFs. In this case, using ETFs market cap to calculate the market
capitalisation weighted portfolio would give a distorted result. Another
problem is that using the market cap to weight factors is based on the
assumption that the market is already in equilibrium. Although the "efficient
market" assumption is generally used, there is also empirical evidence against
the assumption.

The third problem is that there are some technical issues we are undertaking
while doing this assignment. The main database we are using, Yahoo!Finance, is
under maintenance, so that market cap data are unavailable at that time. We
would program an algorithm retrieving historical time series data of market
caps for each factor, once Yahoo!Finance is fixed. Also, in real practice, I
definitely would switch to other data providers or exchanges.

####  2.2.2 Weights from Optimisation

Four optimisation methods are employed to establish the portfolio in our
paper, namely (1) the global minimum variance portfolio, (2) the maximum
Sharpe ratio portfolio, (3) the Markowitz mean-variance portfolio, and finally
(4) the reverse-beta portfolio. They all employ certain optimisation functions
given by different constraints to calculate weights, and we would introduce
them in detail as follows.

####  2.2.3 Global Minimum Variance Portfolio

The global minimum variance portfolio has the objective function of minimising
the portfolio variance. As Equation 2 shows, the portfolio variance is
calculated as $w^{T}\Sigma w$.

$w_{GMV}=arg\min_{w}w^{T}\Sigma w$ (2)

$s.t.\quad\mathbb{1}^{T}w=1$

Solve it by taking the first order condition (F.O.C.) to the Lagrangian
equation.

$w_{GMV}=\frac{\Sigma^{-1}\mathbb{1}}{\mathbb{1}^{T}\Sigma^{-1}\mathbb{1}}$
(3)

, where $w_{GMV}$ is the Global Minimum Variance Portfolio Weights.

We do apply constraint on weights to restrict them sum to be one, and in a
range of $[0,1]$.

####  2.2.4 Maximum Sharpe Ratio Portfolio

$w_{s}=arg\max_{w}\frac{w^{T}(\mu-rf)}{\sqrt{w^{T}\Sigma w}}$ (4)

$s.t.\mathbb{1}^{T}w=1$

By solving Equation 4, we would obtain the solution, as the following.

$w_{s}=\frac{\Sigma^{-1}\mu}{\mathbb{1}^{T}\Sigma^{-1}\mu}$ (5)

We do apply constraint on weights to restrict them sum to be one, and in a
range of $[0,1]$.

####  2.2.5 Markowitz Mean-Variance Portfolio

$w_{m}=arg\max_{w}\big{\\{}w^{T}\mu-\lambda w^{T}\Sigma w\big{\\}}$ (6)

$s.t.\quad\mathbb{1}^{T}w=1$

The Lagrangian would thus be,

$\mathcal{L}=w^{T}\mu-\lambda w^{T}\Sigma w+v(1-w^{T}\mu)$ (7)

Solve by taking the F.O.C. on the Lagrangian equation, again.

$\frac{\partial\mathcal{L}}{\partial w}=\mu-2\lambda\Sigma w-v\mathbb{1}\equiv
0$

$w=\frac{1}{2\lambda}\Sigma^{-1}\big{[}\mu-v\mathbb{1}\big{]}$

, by substituting that $w$ into the constraint $\mathbb{1}^{T}w=1$

$v=\frac{\mathbb{1}^{T}\Sigma^{-1}\mu-2\lambda}{\mathbb{1}^{T}\Sigma^{-1}\mathbb{1}}$

Substitute into $w$

$\begin{split}w&=\frac{1}{2\lambda}\Sigma^{-1}\big{[}\mu-v\mathbb{1}\big{]}\\\
&=\frac{1}{2\lambda}\Sigma^{-1}\big{[}\mu-\frac{\mathbb{1}^{T}\Sigma^{-1}\mu-2\lambda}{\mathbb{1}^{T}\Sigma^{-1}\mathbb{1}}\mathbb{1}\big{]}\end{split}$
(8)

We do apply constraint on weights to restrict them sum to be one, and in a
range of $[0,1]$.

####  2.2.6 Implied Beta Weighted Portfolio

The Implied Beta Method is proposed by Kahn and Grinold, (1999), and then
applied by Idzorek, (2007). Idzorek, (2007) employ the implied beta method to
calculate the implied betas. Then, Idzorek apply the implied betas, instead of
regression base betas, to obtain the implied equilibrium return of the market.

In our paper, as the time-series data of market capitalisation are not
available, we made a bit modification of the implied betas method, in order to
provide an alternative way to find weights for each factor. We firstly get the
time-series data of each factor, and calculate the regression base beta by
using the benchmark, S&P500. Then, using the vector of beta to reversely
obtain the vector of weights for each factor. Here below is the derivation.

Firstly, we apply the CAPM way to calculate the $\beta_{i}$, $i$ is the
factor. $\beta$ in the CAPM is expressed as,

$R_{i}-r_{f}=\beta_{i}\times(R_{m}-r_{f})$

$\beta_{i}=\frac{Covariance(R_{i},R_{m})}{Variance(R_{m})}$

Secondly, we reverse the formula provided by Idzorek, (2007) and Kahn and
Grinold, (1999) to get the "implied beta weights",

$\beta=\frac{\Sigma w_{\beta}}{w_{\beta}^{T}\Sigma w_{\beta}}=\frac{\Sigma
w_{\beta}}{\sigma^{2}}$

$w_{\beta}=\sigma^{2}\Sigma^{-1}\beta$ (9)

, where

  * •

$\beta$: is the vector of implied betas; $\beta_{i}$ is the scalar of beta for
a certain factor;

  * •

$\Sigma_{rf}$: is the covariance matrix of excess returns, excess to the risk-
free rate;

  * •

$w_{\beta}$: is the implied beta weights we have just illustrated;

  * •

$\sigma^{2}=w_{\beta}^{T}\Sigma w_{\beta}=\frac{1}{\beta^{T}\Sigma^{-1}\beta}$
is the variance of the market (or benchmark) excess returns.

Finally, we can get the $w_{\beta}$,

We do not apply constraints here.

###  2.3 Black-Litterman Model

By using the Black-Litterman, we could incorporate the view with the prior,
and then get the posterior. Let’s now formulate the Black-Litterman Model.

####  2.3.1 The Prior

We first define the prior distribution. We assume the excess return as a
random variable follows a normal distribution, with mean $\mu$ and variance
$\Sigma$ as the following,

$r\sim N(\mu,\Sigma)$

We denote $\mu$ here as an unknown "actual" mean return in this section, and
$\mu$ is our prior.

$\mu\sim N\Bigg{(}\mathbb{E}(\mu),\Sigma_{\pi}\Bigg{)}$

, where $\pi=\mathbb{E}(\mu)$, and $\mu=\pi+\epsilon$. $\epsilon\sim
N(0,\Sigma_{\pi})$. So the distribution of the prior could be rewritten as,

$\mu\sim N\bigg{(}\pi,\Sigma_{\pi}\bigg{)}$

  * •

$\pi$ is our estimate of the mean, or in other words, it is the expected
excess equilibrium return.

  * •

$\Sigma_{\pi}$ is the variance of the estimate.

  * •

The $\pi$ here is what we can estimate from the market.

##### The Equilibrium Return

As inspired by Walters and Smith, (2014), we would calculate the risk-aversion
first.

##### The Risk Aversion in the Mean-Variance Optimisation

Let’s consider a situation investing in either the ready-picked risky
portfolio or a risk-free asset.

We denote,

  * •

$\mu_{B}$ as the benchmark excess return, excess to the risk-free rate.

  * •

$\sigma_{B}$ as the benchmark risk.

  * •

$w_{B}$ be the weights investing risky assets.

  * •

$1-w_{B}$ the rest would be investing in risk-free assets.

  * •

$\lambda_{mkt}$ denotes the risk aversion of the market, with is the trade-off
between risky and risk-free assets.

  * •

P.S. the excess return and excess risk for the risk-free asset are both zero.

$w_{B}=arg\max_{w}\bigg{\\{}w_{B}\cdot\mu_{B}-\lambda_{mkt}(w_{B}\sigma_{B})^{2}\bigg{\\}}$

By F.O.C. w.r.t. $w_{B}$, we will get,

$\mu_{B}-2\lambda_{mkt}w_{B}\sigma^{2}_{B}=0$

As we suppose the benchmark portfolio is the optimal portfolio, we move all
our weights to the risky asset, let $w_{B}\equiv 1$.

$\lambda_{mkt}=\frac{\mu_{B}}{2\sigma^{2}_{B}}$ (10)

Therefore, we would get $\lambda_{mkt}=\frac{\mu_{B}}{2\sigma^{2}_{B}}$ as our
Risk Aversion.

We would proxy the market benchmark by the S&P500 index, and proxy the risk-
free return by the 3-month Treasury Bond rate, which is one of the most risk-
free assets in the market.

##### Solve the Equilibrium Return by Reverse Optimisation

Consider Markowitz’s Optimisation problem. Since we are dealing with a market
portfolio that has only positive weights and those weights are summing to be
1, we would not implement constraint on that. The objective function is as the
following.

$arg\max_{w}\big{\\{}w^{T}\pi-\lambda_{mkt}w^{T}\Sigma w\big{\\}}$

by F.O.C.

$\frac{\partial.}{\partial w}=\pi-2\lambda_{mkt}\Sigma w\equiv 0$

$w=\frac{1}{2\lambda_{mkt}}\Sigma^{-1}\pi$

, or the reverse,

$\pi=2\lambda_{mkt}\Sigma w$ (11)

, where

  * •

$\pi$ is a vector of the equilibrium excess return;

  * •

$\lambda_{mkt}$ is the empirical risk aversion derived from the benchmark (in
our case is S&P500)

Equation 11 provides us with a way to calculate "returns" through weights
(Inputting a vector of weights and outputting a vector of returns). For
example, if we assume the market cap weights could represent the equilibrium
situation of the market, then passing the market cap weights into Equation 11
would give us the implied equilibrium return.

####  2.3.2 Posterior - The Black Litterman Formula

As noted by Da Silva et al., (2009), we are now focusing on the excess return
over the benchmark, $\pi$ instead of the risk-free return, $r_{f}$. Let’s now
implement the active assets management that maximises the expected excess
return, $\mu_{BL}$.

The Black Litterman model could be expressed as,

$\mathbb{E}[R]=\mu_{BL}=\bigg{[}(\tau\Sigma)^{-1}+P^{\prime}\Omega^{-1}P\bigg{]}^{-1}\bigg{[}(\tau\Sigma)^{-1}\pi+P^{\prime}\Omega^{-1}Q\bigg{]}$

, where

  * •

$\mathbb{E}[R]=\mu_{BL}$ is an $N\times 1$ vector of Black-Litterman expected
excess returns, and it is also the Posterior.

  * •

$\pi$ is the equilibrium excess return;

  * •

$\tau$ is the scaling factor representing the uncertainty in the market
equilibrium;

  * •

$\Sigma$ is an $N\times N$ variance-covariance matrix of assets’ excess
returns,

  * •

$P$ is a $K\times N$ matrix that has $K$ views on $N$ assets;

  * •

$\Omega$ is the matrix that represents the confidence in each view, and

  * •

$Q$ is a $K\times 1$ vector of expected returns of those K views.

A view portfolio may include one or more assets through nonzero elements in
the corresponding elements in the P matrix.

####  2.3.3 Views

A core concept and an important application of the Black-Litterman Model is
that the model can update Views. In other words, Views are incorporated with
the Prior, and then we can deduce the Posterior.

Views reflect investors’ information and belief about the further movement of
the market (Maggiar,, 2009). Views can be categorised as either Absolute or
Relative views, and either Asset Specific or Global views.

####  2.3.4 Types of the Views

##### Absolute v.s. Relative views

An absolute view states the absolute level of expected excess return for an
asset. For example, the expected excess return of asset A is 2%.

In contrast, the relative view states the expected excess return outperforms
or under-performs the other. In the case of relative views, all elements in a
row are summed to 0. For instance, the expected excess return of asset A will
outperform asset B by1 1%.

##### Asset Specific v.s. Global views

The Asset Specific view states the view for only one asset. However, the
global view expresses views on a set of assets. For example, a portfolio
consisting of asset A and asset B would outperform the portfolio consisting of
asset C and asset D.

We denote $P$ as a $K\times N$ matrix, where $K$ is the number of views and
$N$ is the number of assets. Each raw represents a view. Based on the example
of Satchell and Scowcroft, (2000), we raise an example in our case,

$P=\bigg{(}\begin{array}[]{*{20}{c}}0&0&0&0&0&0&1&0&0&0&0&0&0&0&0&0&0&0&0&0\\\
1&-1&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0&0\\\
0&0&0&0&0&0&0&\frac{1}{5}&\frac{1}{5}&\frac{1}{5}&\frac{1}{5}&\frac{1}{5}&0&1&0&0&0&0&0&0\\\
\end{array}\bigg{)}$ (12)

Also, $q$ as a $K\times 1$ vector represents the view results.

$q=\begin{pmatrix}0.01\\\ 0.01\\\ 0.02\end{pmatrix}$

There are three views in our example.

  * •

The first row of matrix $P$ is an example of the absolute view and also a
specific view. Only the ‘us_momentum‘ would be expected to generate a 1%
excess return.

  * •

The second row of matrix $P$ represents the relative view and is specific to
‘us_growth‘ and ‘us_value‘. The view states the return of holding ‘US Growth
Stocks‘ would outperform using the ‘US Value Stocks‘ index by 1%.

  * •

The third row of matrix $P$ is a relative and global view, stating all US
stocks would together outperform Chinese Stocks, by overall 2%.

####  2.3.5 Uncertainty of the Views

We use $\Omega$ to denote the uncertainty matrix of views. By assuming views
are independent to each other, the variance-covariance and correlation between
views are all zero, so that $\Omega$ is a diagonal matrix. The off-diagonal
elements of $\Omega$ are all zero because the model assumes that views are
independent to others.

Although the assumption that views are independent might not be realistic
because sometimes investors’ views have logistic induction from one view to
the other. However, we would not discuss correlated views in this paper.
Correlated views are easy to be implemented by changing values in the off-
diagonal matrix, $\Omega$.

There are two types of $\Omega$ matrix used by scholars and practitioners. The
first type of matrix is the following. Diagonal elements $\omega_{i}^{2}$
imply the uncertainty level of the $i$’s view.

$\Omega_{K\times K}=\begin{pmatrix}\omega^{2}_{1}&0&\cdots&0\\\
0&\omega_{2}^{2}&\cdots&0\\\ 0&0&\ddots&0\\\
\vdots&0&0&\omega^{2}_{k}\end{pmatrix}$

The second type of view is the following equation. In this case, we assume a
linear relationship between the variance for all factors ($\Sigma$) and the
variance for the views ($\Omega$).

$\Omega=P\tau\Sigma P^{T}$

###  2.4 Deep Learning Algorithm - LSTM

The main purpose of the Black-Litterman model is to incorporate views with the
prior, and then generate the posterior. We would program a deep learning
algorithm to periodically update views.

In our model, data would be rolled and split into several time spans, because
we set our task to generate views periodically. We aim to create a classifier
that uses previous data to predict a view instructing investors which factor
could generate excess returns over the following period. In that case, we
would train a new neural network for each time span, in order to make our
views periodically updated.

Figure 1: Time Spans Split

Figure 1 shows how the time spans are split.

##### Here is what the left-subplot shows.

The left sub-plot shows how each model is trained and how the loop is
performed. Each horizontal line is a single round in the loop. We split each
horizontal line into three parts.

  * •

The light-pink part is used to train an LSTM model. Every single light-pink
bar includes $126\times 4=504$ days. Those parts of the data are employed to
train a LSTM model in that round of the loop.

  * •

The darker part from each bar is a sub-sample used to calculate weights under
different weight allocation schemes. The darker part would also be an input
into the pre-trained model using light-pink part.

  * •

The darkest part contains 10 days. That part is the output of view, after
inputting the darker part into the pre-model. Also, that part is the duration
we invest our re-balanced weights.

##### Here is what the right-subplot shows.

The right-subplot shows how a single light-pink part in the left-subplot could
be sub-decomposed. a light-pink bar in the left-subplot is decomposed into
several sub-samples, rolling each 10 days. Then those decomposed data become
the inputs of an LSTM model. In the right-subplot, the feature is pink part
includes $126$ days of data, and the target is calculated from the darker-pink
part. Note that we do not perform a train-validation split for each pink bar.
We do not care too much about how reliable the LSTM model is, because it is
too subtle and is just a tool to generate views. That is for the paper writing
purpose only, a more consolidated model would be replaced in real practice.

Each time span has $126$ days, as the market regimes could switch so we
sometimes do not want to incorporate all the historical data. We would like to
choose one factor that can generate the highest cumulative return over the
next 10 days. The time span would be rolled each 10 days as well. Thus, the
LSTM model is trained by using $N\times 126\times 20$ (N sub-samples, 126 days
and 20 factors) as the input features, and use the argmax label of the next
following 10-day cumulative return of each factor as the output target. We re-
balance all weights every 10 days.

The view would be transformed into one-hot encoding, which is exactly the same
as the format of $P$ matrix, while only one view is generated for each round
of the loop. We manually set the $Q=0.01$ as a hyper-parameter, and
$\tau=1/252$ denoting the one-day level certainty.

We perform the loop in this way can ensure the train-set of each LSTM never
overlap with its predicted view.

Hyper-Parameters of our model are:

  * •

windows = $10$ days

  * •

sequence_length = $126$ days (, which is the size to a sub-sample)

  * •

the number of data input to train an LSTM model = $4\times 126=504$ days. So
the shape of data input would be $504/10\times 126\times 20=50\times 126\times
20$.

  * •

$Q=0.01$

##  3 Data

All the data we use in this paper are extracted from Yahoo!Finance. As we have
mentioned in the weight allocation part, market capitalisation data is
currently not available, so we manually scrap those data from Yahoo!Finance.
Algorithm could be easily performed once Yahoo!Finance is fixed, and data from
any other data providers could be easily applied to my algorithm once
transforming data into "list", "pandas.Dataframe", "numpy.arrary" and
"pandas.Series".

The whole list of factors is shown as Table 1. The sample space includes panel
data of 22 time series (20 factors, 1 benchmark, and 1 risk-free rate) from
the 1st of April 2020 to the 1st of August 2023, daily. The summary statistics
are shown in Table 3 below. Figure 2 shows the cumulative returns for each
factor.

Figure 3 shows the correlation between each factor. The warmer the colour, the
more correlated that pair of factors is. The cooler the colour, the less
correlated the pair is. From Figure 3, we could find the US Stocks (,
including us_growth, us_value, us_quality, us_dividend, us_tech) are highly
correlated with each other. Chinese Stocks are also highly correlated. Bonds
have a negative correlation with Equity from each market. Oil is positively
correlated with US Stocks. Gold Price is surprisingly uncorrelated with
majorities. VIX shows a negative relationship with others.

Figure 2: Cumulative Returns for Each Factor Figure 3: Correlation

All the time series data are retrieved from Yahoo!Finance. Due to the
availability of data (The API is under maintenance during my paper writing),
the market cap data are manually collected from Yahoo!Finance, as Table 2.

Table 2: Market Cap Weights Asset Class | Market Cap Weight (Billion US Dollars)
---|---
us_growth | 0.279375
us_value | 0.230441
us_quality | 0.008476
us_dividend | 0.005083
us_tech | 0.019940
us_small | 0.192782
us_momentum | 0.014388
china_benchmark | 0.011964
china_growth | 0.000094
china_value | 0.007976
china_tech | 0.001290
china_quality | 0.000277
us_bond_shortterm | 0.022551
us_bond_longterm | 0.062102
china_bond | 0.000062
commodity_oil | 0.000963
commodity_gold | 0.043132
commodity_agriculture | 0.001313
house_us | 0.097431
vix | 0.000360

Table 3: Summary Statistics

| count | mean | std | min | 25% | 50% | 75% | max
---|---|---|---|---|---|---|---|---
sp500 | $838.000\,000$ | $0.000\,819$ | $0.012\,185$ | $-0.057\,649$ | $-0.005\,953$ | $0.000\,906$ | $0.008\,093$ | $0.067\,166$
us_growth | $838.000\,000$ | $0.000\,890$ | $0.015\,485$ | $-0.052\,854$ | $-0.007\,666$ | $0.001\,342$ | $0.010\,127$ | $0.078\,915$
us_value | $838.000\,000$ | $0.000\,759$ | $0.011\,073$ | $-0.064\,920$ | $-0.004\,953$ | $0.000\,864$ | $0.007\,131$ | $0.059\,691$
us_quality | $838.000\,000$ | $0.000\,795$ | $0.012\,107$ | $-0.055\,998$ | $-0.005\,920$ | $0.000\,894$ | $0.007\,717$ | $0.065\,513$
us_dividend | $838.000\,000$ | $0.000\,650$ | $0.012\,504$ | $-0.069\,226$ | $-0.006\,355$ | $0.000\,882$ | $0.007\,129$ | $0.065\,328$
us_tech | $838.000\,000$ | $0.001\,125$ | $0.017\,552$ | $-0.059\,444$ | $-0.009\,032$ | $0.001\,475$ | $0.011\,383$ | $0.088\,432$
us_small | $838.000\,000$ | $0.000\,879$ | $0.015\,252$ | $-0.069\,041$ | $-0.008\,038$ | $0.001\,094$ | $0.010\,357$ | $0.081\,969$
us_momentum | $838.000\,000$ | $0.000\,528$ | $0.013\,960$ | $-0.050\,262$ | $-0.006\,901$ | $0.001\,014$ | $0.008\,715$ | $0.071\,527$
china_benchmark | $838.000\,000$ | $0.000\,095$ | $0.020\,208$ | $-0.096\,491$ | $-0.010\,557$ | $-0.000\,753$ | $0.011\,093$ | $0.209\,374$
china_growth | $838.000\,000$ | $0.000\,224$ | $0.018\,457$ | $-0.079\,241$ | $-0.009\,940$ | $0.000\,000$ | $0.010\,440$ | $0.162\,052$
china_value | $838.000\,000$ | $0.000\,038$ | $0.020\,540$ | $-0.099\,916$ | $-0.011\,233$ | $-0.000\,786$ | $0.010\,532$ | $0.212\,412$
china_tech | $838.000\,000$ | $0.000\,193$ | $0.024\,356$ | $-0.094\,042$ | $-0.013\,551$ | $-0.000\,570$ | $0.013\,026$ | $0.256\,760$
china_quality | $838.000\,000$ | $0.000\,296$ | $0.031\,075$ | $-0.144\,995$ | $-0.016\,536$ | $-0.000\,921$ | $0.016\,461$ | $0.333\,933$
us_bond_shortterm | $838.000\,000$ | $-0.000\,038$ | $0.001\,184$ | $-0.005\,299$ | $-0.000\,395$ | $0.000\,000$ | $0.000\,387$ | $0.009\,954$
us_bond_longterm | $838.000\,000$ | $-0.000\,464$ | $0.010\,393$ | $-0.034\,182$ | $-0.007\,624$ | $-0.000\,767$ | $0.006\,142$ | $0.038\,474$
china_bond | $838.000\,000$ | $0.000\,119$ | $0.003\,574$ | $-0.014\,088$ | $-0.002\,028$ | $0.000\,000$ | $0.002\,147$ | $0.017\,383$
commodity_oil | $838.000\,000$ | $0.002\,186$ | $0.026\,586$ | $-0.097\,807$ | $-0.013\,820$ | $0.001\,388$ | $0.017\,624$ | $0.159\,953$
commodity_gold | $838.000\,000$ | $0.000\,297$ | $0.009\,579$ | $-0.053\,340$ | $-0.004\,664$ | $0.000\,580$ | $0.005\,802$ | $0.030\,685$
commodity_agriculture | $838.000\,000$ | $0.000\,574$ | $0.008\,719$ | $-0.038\,608$ | $-0.004\,789$ | $0.000\,496$ | $0.005\,709$ | $0.029\,757$
house_us | $838.000\,000$ | $0.000\,486$ | $0.014\,504$ | $-0.065\,712$ | $-0.007\,176$ | $0.000\,461$ | $0.008\,468$ | $0.074\,074$
vix | $838.000\,000$ | $-0.003\,218$ | $0.044\,699$ | $-0.135\,302$ | $-0.029\,367$ | $-0.009\,970$ | $0.016\,966$ | $0.335\,815$
tbill | $838.000\,000$ | $0.000\,057$ | $0.000\,075$ | $0.000\,000$ | $0.000\,002$ | $0.000\,005$ | $0.000\,125$ | $0.000\,204$

  * •

Note: Table shows sample space is 838, including panel data of 22 time-series
(20 factors, 1 benchmark, and 1 risk-free rate) from 1st of April 2020 to 1st
of August 2023, daily.

###  3.1 Risk Aversion of the Market

By applying Equation 10, plugging the benchmark’s (S&P500) mean return excess
of the risk-free rate and benchmark’s variance. We would get the risk aversion
derived from the market. In our case,

$\lambda_{mkt}=2.566/2=1.283$

###  3.2 Different Types of Risk Aversion

The assignment asks to calculate the Black-Litterman weights under three
different scenarios. Those three scenarios represent three types of investors.

  * •

Near-Kelly Investors: $\lambda=0.01/2=0.005$

  * •

Average Investors: $\lambda=2.24/2=1.12$

  * •

Risk Averse Investors: $\lambda=6/3=2$

Note that $\lambda_{mkt}=2.566/2=1.283$ derived from our empirical data is
similar to the given one $\lambda=2.24/2=1.12$.

Later, we would substitute each type of risk aversion into our model, and see
how weights are allocated by our model.

##  4 Results

In this section, we would firstly show the static Black-Litterman model
results under different risk aversion scenarios. We would employ the market
cap weights as our prior, and apply fixed views the same as the ones we
introduced before. The second sub-section would present results applying
dynamic prior, and back-testing results are also given. In the second
subsection, we would split our data into different rolling time spans, and the
prior would be replaced by the Markowitz weights during those time spans. In
the meantime, views would also be periodically updated by a Deep Learning
(LSTM) algorithm.

###  4.1 Black-Litterman Model Results under Empirical Market Aversion

As the Black-Litterman Model needs an Implied Equilibrium Return (prior) being
inputted as a "benchmark", we would follow the instruction by He and
Litterman, (2002), using the market cap weights as our prior. Admittedly,
there are inevitable drawbacks to using market cap weights in our case. For
instance, those weights cannot be periodically updated due to the current data
availability problem in Yahoo!Finance. We would still follow the instruction.
Even though weights cannot be updated periodically, we could still obtain
static results from the Black-Litterman model and make comparisons between
results under different risk aversion scenarios. Meanwhile, we would plug in
fixed views (Equation 12) in each scenario.

####  4.1.1 Results under Empirical Market Risk Aversion

Table 4 shows how weights are allocated by using different weight allocation
schemes. Table 5 gives a comparison between the Black-Litterman
weights/results and the Implied Equilibrium weights/returns. The "weights
difference" column represents also the "active weights". Table 8 shows the
overall comparison between Black-Litterman model weights under different risk
aversion scenarios.

####  4.1.2 Results under Different Risk Aversion Scenario

Table 4: Portfolio Weights by using different Weights Allocation Schemes

| Market Cap Weights | Equal Weights | Implied Beta Weights | GMV Weights | Markowitz Weights with $\lambda=2$ | Max Sharpe Weights | Black-Litterman Weights
---|---|---|---|---|---|---|---
| (%) | (%) | (%) | (%) | (%) | (%) | (%)
us_growth | $27.9$ | $5.0$ | $46.9$ | $0.0$ | $0.0$ | $0.0$ | $33.3$
us_value | $23.0$ | $5.0$ | $48.0$ | $0.8$ | $0.0$ | $0.0$ | $17.6$
us_quality | $0.9$ | $5.0$ | $3.4$ | $0.0$ | $0.0$ | $0.0$ | $0.9$
us_dividend | $0.5$ | $5.0$ | $2.9$ | $0.0$ | $0.0$ | $0.0$ | $0.5$
us_tech | $2.0$ | $5.0$ | $2.4$ | $0.0$ | $3.4$ | $18.1$ | $2.0$
us_small | $19.3$ | $5.0$ | $-3.9$ | $0.0$ | $0.0$ | $0.0$ | $19.3$
us_momentum | $1.4$ | $5.0$ | $0.8$ | $0.7$ | $0.0$ | $0.0$ | $7.1$
china_benchmark | $1.2$ | $5.0$ | $1.1$ | $0.0$ | $0.0$ | $0.0$ | $0.8$
china_growth | $0.0$ | $5.0$ | $-0.3$ | $0.0$ | $0.0$ | $0.0$ | $-0.4$
china_value | $0.8$ | $5.0$ | $-0.5$ | $0.0$ | $0.0$ | $0.0$ | $0.4$
china_tech | $0.1$ | $5.0$ | $-0.0$ | $0.0$ | $0.0$ | $0.0$ | $-0.3$
china_quality | $0.0$ | $5.0$ | $-0.5$ | $0.0$ | $0.0$ | $0.0$ | $-0.4$
us_bond_shortterm | $2.3$ | $5.0$ | $-2.7$ | $92.7$ | $69.7$ | $0.0$ | $2.3$
us_bond_longterm | $6.2$ | $5.0$ | $-0.0$ | $0.0$ | $0.0$ | $0.0$ | $4.3$
china_bond | $0.0$ | $5.0$ | $-0.4$ | $3.7$ | $13.3$ | $18.9$ | $0.0$
commodity_oil | $0.1$ | $5.0$ | $-0.1$ | $0.3$ | $3.8$ | $17.1$ | $0.1$
commodity_gold | $4.3$ | $5.0$ | $0.1$ | $0.0$ | $0.0$ | $8.3$ | $4.3$
commodity_agriculture | $0.1$ | $5.0$ | $-0.0$ | $1.5$ | $9.8$ | $37.6$ | $0.1$
house_us | $9.7$ | $5.0$ | $-0.1$ | $0.0$ | $0.0$ | $0.0$ | $9.7$
vix | $0.0$ | $5.0$ | $-0.2$ | $0.4$ | $0.0$ | $0.0$ | $0.0$

  * •

Note: Table shows weights derived from different weights allocation schemes
introduced from the methodology section.

Table 5: Portfolio Construction

| Black-Litterman Return | pi | Return Difference | Black-Litterman Weights | Market Cap Weights | Weights Difference
---|---|---|---|---|---|---
us_growth | 0.14% | -0.38% | 0.52% | 33.34% | 27.94% | 5.40%
us_value | 0.04% | 0.56% | -0.53% | 17.64% | 23.04% | -5.40%
us_quality | -0.03% | -0.01% | -0.01% | 0.85% | 0.85% | 0.00%
us_dividend | 0.30% | 1.12% | -0.81% | 0.51% | 0.51% | 0.00%
us_tech | -0.02% | -0.75% | 0.74% | 1.99% | 1.99% | -0.00%
us_small | 1.05% | 1.16% | -0.11% | 19.28% | 19.28% | 0.00%
us_momentum | 0.59% | 0.11% | 0.48% | 7.06% | 1.44% | 5.62%
china_benchmark | 1.49% | 2.13% | -0.63% | 0.81% | 1.20% | -0.39%
china_growth | 1.49% | 2.16% | -0.67% | -0.38% | 0.01% | -0.39%
china_value | 1.32% | 2.08% | -0.75% | 0.41% | 0.80% | -0.39%
china_tech | 1.70% | 2.25% | -0.55% | -0.26% | 0.13% | -0.39%
china_quality | 2.17% | 2.48% | -0.31% | -0.36% | 0.03% | -0.39%
us_bond_shortterm | 1.20% | 2.04% | -0.84% | 2.26% | 2.26% | 0.00%
us_bond_longterm | 2.19% | 3.16% | -0.97% | 4.27% | 6.21% | -1.94%
china_bond | 1.24% | 2.05% | -0.81% | 0.01% | 0.01% | -0.00%
commodity_oil | 0.06% | 0.80% | -0.74% | 0.10% | 0.10% | 0.00%
commodity_gold | 1.76% | 2.54% | -0.78% | 4.31% | 4.31% | -0.00%
commodity_agriculture | 1.09% | 1.85% | -0.75% | 0.13% | 0.13% | -0.00%
house_us | 1.25% | 1.67% | -0.41% | 9.74% | 9.74% | -0.00%
vix | 3.68% | 6.92% | -3.24% | 0.04% | 0.04% | -0.00%

  * •

Note: Table compares the benchmark (we use the market cap weights as our
benchmark) and the Black-Litterman returns/weights. The risk-aversion passed
into Black-Litterman model is the market level risk-aversion.

Table 6: Weights and Returns of the Portfolio using Kelly Risk Aversion

| Black-Litterman Return | $\pi$ | Return Difference | Black-Litterman Weights | Market Cap Weights | Weights Difference
---|---|---|---|---|---|---
us_growth | 0.14% | -0.38% | 0.52% | 17,107.41% | 27.94% | 17,079.47%
us_value | 0.04% | 0.56% | -0.53% | 9,053.11% | 23.04% | 9,030.06%
us_quality | -0.03% | -0.01% | -0.01% | 434.95% | 0.85% | 434.10%
us_dividend | 0.30% | 1.12% | -0.81% | 260.81% | 0.51% | 260.30%
us_tech | -0.02% | -0.75% | 0.74% | 1,023.18% | 1.99% | 1,021.19%
us_small | 1.05% | 1.16% | -0.11% | 9,892.35% | 19.28% | 9,873.07%
us_momentum | 0.59% | 0.11% | 0.48% | 3,621.10% | 1.44% | 3,619.66%
china_benchmark | 1.49% | 2.13% | -0.63% | 414.48% | 1.20% | 413.28%
china_growth | 1.49% | 2.16% | -0.67% | -194.63% | 0.01% | -194.64%
china_value | 1.32% | 2.08% | -0.75% | 209.84% | 0.80% | 209.04%
china_tech | 1.70% | 2.25% | -0.55% | -133.21% | 0.13% | -133.34%
china_quality | 2.17% | 2.48% | -0.31% | -185.22% | 0.03% | -185.25%
us_bond_shortterm | 1.20% | 2.04% | -0.84% | 1,157.20% | 2.26% | 1,154.94%
us_bond_longterm | 2.19% | 3.16% | -0.97% | 2,189.55% | 6.21% | 2,183.34%
china_bond | 1.24% | 2.05% | -0.81% | 3.16% | 0.01% | 3.15%
commodity_oil | 0.06% | 0.80% | -0.74% | 49.40% | 0.10% | 49.31%
commodity_gold | 1.76% | 2.54% | -0.78% | 2,213.28% | 4.31% | 2,208.97%
commodity_agriculture | 1.09% | 1.85% | -0.75% | 67.39% | 0.13% | 67.26%
house_us | 1.25% | 1.67% | -0.41% | 4,999.54% | 9.74% | 4,989.80%
vix | 3.68% | 6.92% | -3.24% | 18.47% | 0.04% | 18.44%

  * •

Note: Weights and Returns of the Portfolio using Kelly Risk Aversion passed
into the Black-Litterman Model. Kelly risk aversion sets
$\lambda=0.01/2=0.005$. From the table, we can find that Black-Litterman
weights are enlarged. In other words, investors are less risk averse so that
they would like to take more leverage.

Table 7: Weights and Returns of the Portfolio using Market Level Risk Aversion

| Black-Litterman Return | $\pi$ | Return Difference | Black-Litterman Weights | Market Cap Weights | Weights Difference
---|---|---|---|---|---|---
us_growth | 0.14% | -0.38% | 0.52% | 76.37% | 27.94% | 48.43%
us_value | 0.04% | 0.56% | -0.53% | 40.42% | 23.04% | 17.37%
us_quality | -0.03% | -0.01% | -0.01% | 1.94% | 0.85% | 1.09%
us_dividend | 0.30% | 1.12% | -0.81% | 1.16% | 0.51% | 0.66%
us_tech | -0.02% | -0.75% | 0.74% | 4.57% | 1.99% | 2.57%
us_small | 1.05% | 1.16% | -0.11% | 44.16% | 19.28% | 24.88%
us_momentum | 0.59% | 0.11% | 0.48% | 16.17% | 1.44% | 14.73%
china_benchmark | 1.49% | 2.13% | -0.63% | 1.85% | 1.20% | 0.65%
china_growth | 1.49% | 2.16% | -0.67% | -0.87% | 0.01% | -0.88%
china_value | 1.32% | 2.08% | -0.75% | 0.94% | 0.80% | 0.14%
china_tech | 1.70% | 2.25% | -0.55% | -0.59% | 0.13% | -0.72%
china_quality | 2.17% | 2.48% | -0.31% | -0.83% | 0.03% | -0.85%
us_bond_shortterm | 1.20% | 2.04% | -0.84% | 5.17% | 2.26% | 2.91%
us_bond_longterm | 2.19% | 3.16% | -0.97% | 9.77% | 6.21% | 3.56%
china_bond | 1.24% | 2.05% | -0.81% | 0.01% | 0.01% | 0.01%
commodity_oil | 0.06% | 0.80% | -0.74% | 0.22% | 0.10% | 0.12%
commodity_gold | 1.76% | 2.54% | -0.78% | 9.88% | 4.31% | 5.57%
commodity_agriculture | 1.09% | 1.85% | -0.75% | 0.30% | 0.13% | 0.17%
house_us | 1.25% | 1.67% | -0.41% | 22.32% | 9.74% | 12.58%
vix | 3.68% | 6.92% | -3.24% | 0.08% | 0.04% | 0.05%

  * •

Note: Weights and Returns of the Portfolio using market level Risk Aversion
passed into the Black-Litterman Model. Kelly risk aversion sets
$\lambda=2.24/2=1.12$. From the table, we can find that Black-Litterman
weights by using risk aversion at the market average level. In other words,
investors are accept the same level of risk aversion with the overall market.

Table 8: Weights and Returns of the Portfolio using Risk Averse Risk Aversion

| Black-Litterman Return | $\pi$ | Return Difference | Black-Litterman Weights | Market Cap Weights | Weights Difference
---|---|---|---|---|---|---
us_growth | 0.14% | -0.38% | 0.52% | 28.51% | 27.94% | 0.57%
us_value | 0.04% | 0.56% | -0.53% | 15.09% | 23.04% | -7.96%
us_quality | -0.03% | -0.01% | -0.01% | 0.72% | 0.85% | -0.12%
us_dividend | 0.30% | 1.12% | -0.81% | 0.43% | 0.51% | -0.07%
us_tech | -0.02% | -0.75% | 0.74% | 1.71% | 1.99% | -0.29%
us_small | 1.05% | 1.16% | -0.11% | 16.49% | 19.28% | -2.79%
us_momentum | 0.59% | 0.11% | 0.48% | 6.04% | 1.44% | 4.60%
china_benchmark | 1.49% | 2.13% | -0.63% | 0.69% | 1.20% | -0.51%
china_growth | 1.49% | 2.16% | -0.67% | -0.32% | 0.01% | -0.33%
china_value | 1.32% | 2.08% | -0.75% | 0.35% | 0.80% | -0.45%
china_tech | 1.70% | 2.25% | -0.55% | -0.22% | 0.13% | -0.35%
china_quality | 2.17% | 2.48% | -0.31% | -0.31% | 0.03% | -0.34%
us_bond_shortterm | 1.20% | 2.04% | -0.84% | 1.93% | 2.26% | -0.33%
us_bond_longterm | 2.19% | 3.16% | -0.97% | 3.65% | 6.21% | -2.56%
china_bond | 1.24% | 2.05% | -0.81% | 0.01% | 0.01% | -0.00%
commodity_oil | 0.06% | 0.80% | -0.74% | 0.08% | 0.10% | -0.01%
commodity_gold | 1.76% | 2.54% | -0.78% | 3.69% | 4.31% | -0.62%
commodity_agriculture | 1.09% | 1.85% | -0.75% | 0.11% | 0.13% | -0.02%
house_us | 1.25% | 1.67% | -0.41% | 8.33% | 9.74% | -1.41%
vix | 3.68% | 6.92% | -3.24% | 0.03% | 0.04% | -0.01%

  * •

Note: Weights and Returns of the Portfolio using Risk Averse Risk Aversion
passed into the Black-Litterman Model. Risk Averse risk aversion sets
$\lambda=6/2=3$. From the table, we can find that Black-Litterman weights are
more conservative. In other words, investors are more risk averse so that they
would like to take no risks.

Black-Litterman Results under Different Risk Aversion Scenarios Empirical Mkt
Kelly Market Risk Averse us_growth 33.34% 17,107.41% 76.37% 28.51% us_value
17.64% 9,053.11% 40.42% 15.09% us_quality 0.85% 434.95% 1.94% 0.72%
us_dividend 0.51% 260.81% 1.16% 0.43% us_tech 1.99% 1,023.18% 4.57% 1.71%
us_small 19.28% 9,892.35% 44.16% 16.49% us_momentum 7.06% 3,621.10% 16.17%
6.04% china_benchmark 0.81% 414.48% 1.85% 0.69% china_growth -0.38% -194.63%
-0.87% -0.32% china_value 0.41% 209.84% 0.94% 0.35% china_tech -0.26% -133.21%
-0.59% -0.22% china_quality -0.36% -185.22% -0.83% -0.31% us_bond_shortterm
2.26% 1,157.20% 5.17% 1.93% us_bond_longterm 4.27% 2,189.55% 9.77% 3.65%
china_bond 0.01% 3.16% 0.01% 0.01% commodity_oil 0.10% 49.40% 0.22% 0.08%
commodity_gold 4.31% 2,213.28% 9.88% 3.69% commodity_agriculture 0.13% 67.39%
0.30% 0.11% house_us 9.74% 4,999.54% 22.32% 8.33% vix 0.04% 18.47% 0.08% 0.03%

  * •

Note: The first column uses the risk aversion derived from the empirical
market risk aversion, $\lambda_{mkt}=2.566/2=1.283$, the follow columns denote
risk aversion be kelly $\lambda=0.01/2=0.005$, Average Investors’
$\lambda=2.24/2=1.12$, and Risk Averse Investors $\lambda=6/2=3$.

Table 6, Table 7, and Table 8 shows the results under near-Kelly, average
Investors, and risk averse risk aversion, respectively. Figure 5, Figure 6,
and Figure 7 show the weight allocation under near-Kelly, average investors,
and risk averse risk aversion with respect to the prior, respectively.

From those Tables and Figures, we can find that the Black-Litterman weights
are enlarged under the near-Kelly risk aversion that sets
$\lambda=0.01/2=0.005$. Investors are less risk averse so they would like to
take more leverage. In contrast, the Black-Litterman weights are more
conservative, under the Risk Averse risk aversion setting to be
$\lambda=6/2=3$. In other words, investors are more risk averse so they would
like to take no risks.

Figure 4: Black-Litterman Return & Weights by using $lambda_{mkt}$ Figure 5:
Black-Litterman Return & Weights by using Near-Kelly Risk Aversion Figure 6:
Black-Litterman Return & Weights by using Average Investors Risk Aversion
Figure 7: Black-Litterman Return & Weights by using Risk Averse Risk Aversion
Figure 8: Static Weight Allocation Back-testing & A Simple Contrarian Strategy

####  4.1.3 Applying the Static Weight Allocation and A Simply Back-testing
using Contrarian Strategy

Figure 8 presents portfolio returns movement by using static weights employing
different weight allocation schemes. We can find that the Black-Litterman
Weights curve moves close to the prior (Market Cap Weights), with a little
deviation. Note that the Black-Litterman model in this back-testing uses
empirical market risk aversion.

P.S. The following paragraph is additional, we just apply a simple strategy to
see if the back-testing framework works and see how the static weights
allocation schemes change the cumulative returns of those factors. We also
create a simple Contrarian strategy, which is captured by the Yellow curve. In
the strategy, we resample our dataset on a weekly basis, choose 5 factors over
20 with the lowest cumulative returns over the week, and invest those 5
factors with equal weights for the next week. Repeat the process over and
over. Strategy surprisingly performs not bad for most of the time.

###  4.2 Dynamic Black-Litterman Results & Views from Deep Learning Algorithm

Figure 9: Dynamic Weight Allocation Back-testing & Using LSTM to Generate
Views

In the previous subsection, we use a fixed prior to generating the static
Black-Litterman results. In this subsection, we would produce a Deep Learning
LSTM algorithm to update our views periodically. The methodology has been
introduced in Section 2.4.

We note that the prior of the Black-Litterman Model is replaced by the
Markowitz mean-variance weights with $\lambda=2$ because we need the dynamic
re-balance of weights in this sub-section. The market cap weights are
definitely applicable but are not employed as the prior here, because we
currently do not have periodical market cap data. We just aim to show the
model is working on a dynamic basis. One might debate the Markowitz mean-
variance weights are not reliable and not stable. That is true, but our model
is trying to split the sample into separate time spans, which would, to some
degree, alleviate the problem that historical returns cannot well represent
the true returns.

We also found that the red curve, the Black-Litterman cumulative returns
outperforms others, especially during the first quarter of 2022 when most of
the other weight allocation schemes generate negative returns. That out-
performance is largely caused by optimistic Markowitz Weights results.

##  5 Robustness Checking

###  5.1 Weight Allocation Movements over Time

Figure 10: Dynamic Weight Allocation Moves Over Time Figure 11: Dynamic Black-
Litterman Weight Allocation Moves Over Time

Let’s now go through how weight allocation would change over time. Figure 10
shows how each scheme of weight allocation moves over time. We sadly found
that there are corner solutions appearing in Global Minimum Variance (GMV)
weight allocation. Long-term US bonds account for a large percentage of the
portfolio over most of the time, probably due to the reason that the objective
function of GMV is to choose less volatile factors. Figure 11 demonstrates the
Black-Litterman Weight Allocation movement only.

Meanwhile, we do also find that Markowitz’s weights appear to have corner
solutions over certain periods. As seriously considering the suggestion from
the CQF Slides, we use the LSTM model to generate views and use the Shrinkage
Method (Ledoit and Wolf,, 2003) to improve the variance-covariance of our
factors. Figure 12 shows the Weight Allocation for different schemes while
using the Shrinkage Variance. We cannot found clear different between Figure
10 and Figure 12 , but we could find the variance-covariance metrics (which
could be found in the code) are indeed not the same for the two methods.

Figure 12: Dynamic Weight Allocation with Shrink Variance Moves Over Time

###  5.2 Weight Allocation Movements w.r.t. Volatility Changes

In this section, we would present how would the prior and the posterior evolve
with the increase in volatility ($\Sigma_{input}=tau\times\Sigma$, the
volatility $\Sigma_{input}$ increases with $\tau$ increase. Note that
$tau\neq\tau$, as $\tau$ changes would not change the Black-Litterman results,
while $tau$ is just a parameter used to enlarge volatility in this particular
section), as Figure 13 and Figure 14. To improve the robustness and try to
avoid the corner solutions, we apply the shrinkage variance to generate those
weights, as Figure 15 and Figure 16. The difference between results using the
basic variance and shrinkage variance cannot be clearly identified.

Figure 13: Prior Weights Move with Volatility Changes Figure 14: Posterior
Weights Move with Volatility Changes Figure 15: Prior Weights with Shrinkage
Volatility Move with Volatility Changes Figure 16: Posterior Weights with
Shrinkage Volatility Move with Volatility Changes

##  6 Discussion and Improvement

Here below, we would share some discussion, including some ideas or drawbacks
that cannot be covered or solved in this paper, and would suggest further
improvements.

1\. Historical Return and Variance Covariance might not be reliable. Although
the shrinkage estimator for variance(Ledoit and Wolf,, 2003) is applied as the
comparison, there seems to have little impact on the weight allocation.

2\. The sample space we have chosen avoids the periods during Covid-19, the
first quarter of 2020 when the equity market was tremendously shocked. The
reason that we purposely avoid using samples during that period is we want to
alleviate the heteroskedasticity. An improvement could be made that identify
the market’s states, such as recession or booming, and make use of different
Prior benchmark and different view strategy depending on the estimated market
states.

3\. Other optimisation methods could be applied, such as minimum VaR. One
could also check the robustness by trying to implement constraints on
optimisation.

4\. One view is generated for each round of a loop. The LSTM model could be
amended to generate several views. Also, the validity checking part could be
included, and the confidence level could be treated as the uncertainty of
views, as a further improvement of the model.

5\. Different view generation methods could be used. The LSTM model could be
replaced by any other algorithms or time-series models such as the GARCH.

6\. Further robustness-checking processes could be performed by changing the
date range, altering the prior, etc.

7\. Tune a Model. There are several hyper-parameters that could be adjusted to
improve the model’s predictability and robustness. Since those hyperparameters
are manually given and are not learned directly from the data during the
training process, we may apply the grid search, random search, or a Bayesian
optimization to tune Hyperparameter and improve the model performance.
However, as our model is designed to train several models in the loop, that
hyperparameter tunning process is expected to be extremely time-consuming, so
I would not perform it here.

8\. A more sophisticated model that can identify the current economic regimes
could be devised. For example, we would like to design an algorithm that uses
trading volume and volatility to classify market conditions. Then, we would
use market conditions/states to confirm such as the prior. In the recession,
we might use the Global Minimum Variance weights as the prior. In a booming
market regime, a Maximum Sharpe Ratio weight might be applied. Similarly, the
economic regimes could be used to identify such as the risk-aversion or hyper-
parameter of views.

9\. The optimisation process could include more variation, such as adding or
releasing constraints, changing parameter $\lambda$ in the Markowitz mean-
variance weights scheme, etc, for validity checking.

##  7 Conclusion

Overall, we present a portfolio construction process including the factors
selection step and the weight allocation step. Three rationales are introduced
as means of factors in our paper. 20 factors are selected, including equities
and bonds from the US and Chinese markets, Commodities. Factors are proxied by
characteristic ETFs.

Then, various weight allocation schemes are provided to assign weights to each
factor. A Deep Learning algorithm is applied to predict views. Then, we use
the Black-Litterman model incorporating views with the Prior to get the
Posterior.

In the end, the robustness checking shows how weights change with respect to
time evolving and variance increasing. Results using shrinkage variance are
also provided aiming to alleviate the impacts of representativeness of
historical data, but there sadly has little impact. Overall, the model by
using the Deep Learning plus Black-Litterman model results outperform the
portfolio by other weight allocation schemes, even though further improvement
and robustness checking should be performed.

## References

  * Da Silva et al., (2009) Da Silva, A. S., Lee, W., and Pornrojnangkool, B. (2009).  The black–litterman model for active portfolio management.  The Journal of Portfolio Management, 35(2):61–70.
  * Fama and French, (1993) Fama, E. F. and French, K. R. (1993).  Common risk factors in the returns on stocks and bonds.  Journal of Financial Economics, 33(1):3–56.
  * Fama and French, (2012) Fama, E. F. and French, K. R. (2012).  Size, value, and momentum in international stock returns.  Journal of financial economics, 105(3):457–472.
  * He and Litterman, (2002) He, G. and Litterman, R. (2002).  The intuition behind black-litterman model portfolios.  Available at SSRN 334304.
  * Idzorek, (2007) Idzorek, T. (2007).  A step-by-step guide to the black-litterman model: Incorporating user-specified confidence levels.  In Forecasting expected returns in the financial markets, pages 17–38. Elsevier.
  * Kahn and Grinold, (1999) Kahn, R. and Grinold, R. (1999).  Active portfolio management.  A Quantitative Approach for Providing Superior Returns and Controlling Risk.
  * Ledoit and Wolf, (2003) Ledoit, O. and Wolf, M. (2003).  Improved estimation of the covariance matrix of stock returns with an application to portfolio selection.  Journal of empirical finance, 10(5):603–621.
  * Lin, (2020) Lin (2020).  A practitioner’s guide to multi-factor portfolio construction.  Nasdaq Global Information Services.
  * Maggiar, (2009) Maggiar, A. (2009).  Active fixed-income portfolio management using the black-litterman model.  Available at SSRN 2655810.
  * Satchell and Scowcroft, (2000) Satchell, S. and Scowcroft, A. (2000).  A demystification of the black–litterman model: Managing quantitative and traditional portfolio construction.  Journal of Asset Management, 1(2):138–150.
  * Walters and Smith, (2014) Walters, J. and Smith, J. (2014).  The black-litterman model in detail.  SSRN 1314585, 10(2):100–120.