Exchange-Traded Funds List

An exchange-traded fund (“ETF”) is a marketable security that usually tracks an index or a basked of assets. Being traded as a regular stock and typically having higher liquidity and lower fees than mutual funds, it is a very popular investment option. has a great list of the available ETFs in the market, grouped by 1) asset class (e.g. commodities, fixed-income, etc.), 2) investment style (e.g. long-short, small cap, etc.), 3) sector (REIT, utilities, etc.), 4) region, and many other categories. It also provides a list of the ETFs that track main indices (e.g. S&P 500, Russel 3000, etc.).

This is definitely a list worth checking out:


Trading Strategies 101

Generating alpha is only one out of the three legs required for a complete trading strategy. The alphas generated need to be blended with the risk model and the transaction cost estimates in the optimizer in order to come up with the corresponding orders that need to be placed. An illustration of this process is presented below:


  • For transaction costs, typically investors perform the following calculation:

Transaction costs = Trade Fees + Bid-Ask Spread Cost = x bp + Bid-Ask Spread / 2

where x is the trade fees imposed by the broker

  • The risk model refers to the variance-covariance matrix of the stock returns
  • Alphas refer to the blend of a number of standardized alphas, e.g. momentum variations, mean reversion variations, pairs trading, etc.

The optimizer in then performing the following operations (multi-objective optimization):

  • Maximize alpha exposure
  • Minimize transaction costs
  • Minimize risk

Other objectives and constraints are typically included: neutralizing exposure to beta (for market neutral strategies) and setting caps for trade size, position size, industry exposure, country exposure, etc. We are planning to dig further into the optimization process in future posts.

Asset Allocation – Weighing Schemes

This is an overview of some of the most common weighting schemes used in asset allocation. The same concepts apply in the implementation of both statistical arbitrage and portfolio management strategies.

  • Equal Weights: This is a very straightforward method. All equities (or assets in general) selected through the corresponding strategy are weighted equally.  The weight for each one of the equities is equal to 1 /  n where n is the number of equities. For example if the strategy involves the execution of 100 stocks then each weight is 1 / 100.
  • Volatility Weights: This technique is aiming to minimize the overall risk of the portfolio by assigning larger weights on less volatile stocks and lower weights on the more volatile ones. A time series of historical daily volatility is required for each constituent whereas the covariance is being ignored. For example for n stocks with volatilities sigma(i) with i from 1 to n, the weights are calculated as following:

m = 1 / Σ(1/sigma(i))

and w(i) = m / sigma(i) where w(i) is the weight assigned to stock i (i from 1 to n)

  • Value Weights: This is again a relatively straightforward method. The weights are equal to the ratio of the market cap of each constituent over the total cap of the portfolio.
  • Alternative methods: We are going to discuss about more complex ways of assigning weights like using momentum scores, first principal components, etc. in a future post. All methods refer to the estimation of a score for each constituent that is then used to calculate the respective weight.

Capital restraints as well as other restraints (industry exposure, country exposure, etc.) are also taken into account in the optimizer when incorporating each one of the above mentioned methods.

Regarding the capital that is planned to be invested the following objective function captures the mechanics:

  • Σ(round(w(i) * P / Ask Price(i)) * Ask Price(i) + trading fee(i)) <= P

with i from 1 to n, P the capital to be invested, Ask Price(i) the ask price for equity i as provided by the broker and trading fee(i) the trading fee for equity i.

Finally, the round function is used because the number of equities is an integer (you cannot purchase fractions of equities).

A simple example is illustrated below for a number of 10 stocks and the application of equal weighting:


Asset Allocation: Black – Litterman

Introduction – Black-Litterman Model

  • Based on Black and Litterman’s 1992 paper entitled “Asset Allocation: Combining Investor Views with Market Equilibrium”.
  • The model incorporates an investor’s views on the constituent securities as well as his confidence around them.
  • Main objective is to generate an efficient frontier which marks the optimal assets combinations that create the highest returns with the lowest risk.
  • Model does not account for skewness and kurtosis : tail risk is present.
  • It provides diversified portfolios as opposed to the typical Mean-Variance Optimization (“MVO”) framework.


  • Create a market equilibrium implied excess return vector π :

π = λ Σ w_mkt

where λ is the risk aversion coefficient, Σ is the covariance matrix and w is the market cap weight of each constituent

  • Estimate the views adjusted return vector:

π  = [(τΣ)^(-1)+P′w^(-1) P]^(-1) ∗ [(τΣ)^(-1) π+P′w^(-1) Q]

w = τ P Σ P′

where τ is the uncertainty scalar, Σ is the covariance matrix, P is the link matrix, w is the market cap weight, Q is the views vector

  • If no personal views are included we set P to zero and the views adjusted returns equal the implied returns vector.
  • The link matrix is used to show if a constituent over or underperforms another constituent.
  • The uncertainty scalar τ is based on “The Canonical Reference Model, Walters, 2013” and is equal to:  1 / number of observations used in the covariance matrix.

Portfolio Optimization

  • Combination of securities that achieve the specified rate of return while yielding the lowest amount of risk possible.
  • The two critical points in the optimization is the minimum variance portfolio and the maximum return portfolio.
  • Also it is determined than no portfolio consumes more than 35% and that all constituents are present.

Efficient Frontier graph


Asset allocation graph


Expected returns graph


Overall, there three graphs provide useful insight into the process of selecting the weights of the portfolio constituents.

Building Systematic Trading Strategies – Part I

This series of posts is to give a broad overview about building quantitative strategies. This post is not about the intricate details on how to build an infrastructure to simulate such strategies or how to implement technically, but it should just serve as a primer for all those aspiring to build quantitative portfolios.

The Idea

Every strategy starts off with an idea. Unlike a qualitative assessment (say, Apple’s stock is going to increase in the next month) that involves an analyst’s research on primarily following a few stocks, a quantitative strategy is more involved and needs to subscribe to the following rules.

  1. It should be a general rule that can be applied to broad set of stocks (what we call, Universe)
  2. The strategy should not suffer from forward bias. In simple words, it means you cannot use future data to predict future data. The strategy can however use all data up to that time, to predict future directions.
  3. One should be able to express the rule in a mathematical form.
  4. The output of the rule should be a set of dollar amounts that can be assigned to each stock in the Universe

Say we have a simple idea that stocks that have gone up recently will come down and vice-versa. This behavior pattern is what is popularly called Mean reversion anomaly.  Let us how we “quantify” this idea.

Quantification of the idea

There are different ways on how we can “quantify” this idea. There is no such correct way in building an idea. Most of it involves trial and error,  and to see how different factors impact an idea.

Let us start with the mean reversion idea.  One way to state it mathematically is below

Amount Invested for Stock I and Day D  (weight[i,d] )=  – 5 day returns of Stock I on Day D ; for all Top 500 stocks by volume (returns5[i,d]).

In this expression we quantify “recent returns” as  the last 5 day returns. The universe is the top 500 stocks traded by volume in  US equity markets.

weight[i,d] = -returns5[i,d]

One immediate concern with this strategy is that we observe, the sum of dollar invested will not equal our notional value that we plan to invest. So to normalize to the notional we can do the following operation.

weight[i,d] = (weight[i,d]*notional value)/ (absolute sum of all weight[i,d])

That is it! This is the hello world version of a quantitative strategy. Lets see how it performs

Following up lets look at ways to improve the idea and make it more tradable!

Minimum Variance Portfolio – R code

This is a rudimentary code for estimating the weights of the minimum variance portfolio. In a later stage, we will generalize for the use of multiple investments.

Still the main difficulty remains the estimation of the expected returns of the investments. For this reason, we can introduce a few asset pricing models (e.g. CAPM, Fama French 3-factor model, Carhart 4-factor model).

## Min Variance Analysis

# clear environment and console
rm(list = ls())

# inputs assuming 2 investments
r1 = 0.08 # expected return of investment 1
r2 = 0.13 # expected return of investment 2
vol1 = 0.12 # volatility of investment 1
vol2 = 0.2 # volatility of investment 2
correl = 0.3 # correlation of investment 1 and 2

# calculate portfolio weights
w1 = (vol2^2 - correl * vol1 * vol2) / (vol1^2 + vol2^2 - 2 * correl * vol1 * vol2)
w2 = 1 - w1

w1; w2