StumpGrinder: An Open Source Actively Managed Portfolio of ETFs

Posted on April 7, 2013 by


Follow along as we use quantitative algorithms to manage a real live meat-and-potatoes portfolio of 12 ETFs you’d be happy to have your mom in. We will trade this portfolio monthly in a real account and report the trades and performance of the portfolio.

In this first installment I’ll describe the basic idea for this portfolio and our goals for it.

Related Articles

How would you invest your money?

Because folks know I’m involved in finance, I’m often asked how I invest my own money. People also wonder how the algorithms we work on in my research at business building loans reading oh and at my company Lucena add value to investing practice.

My personal funds are in a 403B that does not provide much opportunity for active management, but I also manage the investment funds for a non-profit. I thought that a great way to answer those questions would be to provide a blow-by-blow account of the construction and management of the non-profit’s portfolio using quantitative algorithms. So follow along as I share the details of StumpGrinder!


StumpGrinder Back Test. Simulated performance of the strategy is illustrated by the green line. S&P 500 by the purple line. Note that this back tested performance is very likely significantly better than our future performance because our selection of ETF components is based on hindsight.

What is StumpGrinder?

“StumpGrinder” is our code name for an actively managed portfolio of ETFs. I picked the name because, like a stump grinder, I’m looking for an approach that will take the “rough edges” off a basic portfolio.

As I mentioned, this strategy was designed for the management of the investment funds of a non-profit I advise. Besides the fact that we want the strategy to provide revenue, it also has to be low risk and make sense to our board.

The idea is to use only blue chip securities, which our board will be comfortable with, while leveraging quantitative algorithms to choose how much of each one we should own. Accordingly, we have these constraints for the strategy:

  • Common sense holdings: The securities traded should not be exotic, should be diversified, and should make sense to an informed investor.
  • Low maintenance: The portfolio should contain no more than 20 securities, and require trading at most once per month.

and these goals:

  • Low risk: The last thing I want is to have to explain a sudden or excessive loss.
  • Moderate return: Even though we want low risk, we’d still like to see decent return (doesn’t everybody?).  Overall, I’d like to see a return of 7.5% per year (without leverage). However, we will be leveraging this at 2x, so our goal with leverage is 13.5% (15% minus interest for leverage).
  • Outperform our benchmark: We’ll be using the S&P Risk Target Moderate Index as a benchmark. Our primary metric is Sharpe Ratio, but we’d also like to outperform the benchmark in terms of volatility, draw down, and total return (assuming 2x leverage).

What do I mean by “Open Source?”

I’m going to publish each monthly allocation when I trade it here. Let me emphasize that this blog is not investing advice. It is intended only to educate. You don’t need any software or algorithms to follow along, but if you want to, you can use the software we’ve developed for my courses: QSTK. It is open source as well.  If you don’t want to program, you can use the tools we offer at Lucena Research.

Our Hybrid Strategy: Man and Machine

Humans are great at big-picture long term analysis, but machines are able to do things we can’t. A computer can examine all the details and relationships between thousands of securities across a vast market. I’ve come to believe that the best portfolio management requires a combination of human and machine. At my company, Lucena, I use something I call Steve Trautman: knowledge transfer to help me assess risks that are involved but we’ve also developed advanced tools that leverage Artificial Intelligence for price prediction, hedging, strategy simulation, and other complex portfolio management tasks.

We’re going to leverage some of those technologies here, but you won’t need to understand them deeply to follow along. And in the end what matters is the positions we arrive at. Overall, here are the responsibilities for the human and the machine in this portfolio:

  • Human’s job: Select securities we’ll invest in. Set minimum and maximum allocations for each.
  • Machine’s job: Find the best, precise allocation for each security by examining their relationships over history.

Machine’s Job: Asset allocation using Convex Optimization

A core technology we’re using here is a portfolio optimizer that provides recommendations for allocations to each asset in a portfolio. It makes these recommendations based on:

  • Forecast alpha (return) for each asset.
  • Volatility of each asset.
  • Covariance between each asset and every other asset.

The effectiveness of an optimizer’s recommendations depends significantly on the quality of the data it has to work with.  Overall, historic volatility and covariance are extremely predictive of future volatility and covariance. Forecast alpha is much more challenging, and usually only predictive over several weeks.

Watch this video to learn more about portfolio optimization:

Our approach is to leverage the “sweet spot” of optimizer effectiveness by focusing on volatility and covariance. For this portfolio we’re looking to trade only once a month. We take forecast alpha off the table by telling the optimizer that our forecast alpha for all assets is the same (namely zero), and we ask it to minimize future expected volatility.

Human’s Job: Choosing the ETFs and setting constraints

Our human insight is provided by setting lower and upper bounds on the allocation to each asset.  For instance, if we favor BOND, we might bump it’s minimum allocation up to 20%.  If a particular asset is out of favor we might set it’s minimum allocation to a lower number.  But we always provide flexibility to the optimizer so it can balance the allocations in order to minimize volatility.

What’s special about this strategy?

Three things are special.

First, we’re using Mean Variance Optimization to find the best allocations. Instead of using rules of thumb to determine how much of each security to hold, we’re relying on a scientific method. Precise allocations are important: Over the long term this precision makes a big difference in total return and volatility. It is not feasible for a person to infer the complex relationships between securities that an optimizer can discover.

Next, we’re using back testing (simulation) technology to test our strategy and hypotheses. This enables us to fine tune parameters and to see how well the strategy would have worked during stressful market events. (We’re aware of the risk of over fitting, and we take precautions against it. More in a later post).

Finally, our selection of ETFs is informed by a world class wealth manager who has been managing a similar approach with strong success. We will constantly monitor our selection of ETFs for each asset class and replace them if a new, better alternative arises.

Why do we think it will work?

We’re taking a basket of blue chip ETFs and managing them with proven algorithms. We’ve simulated the approach (see back test results above), and the results look pretty good. The back test shows a Sharpe Ratio over 4.0, which would be spectacular if we could achieve it.

However, in my experience, actually traded performance is always less spectacular than the back tests. Of course you want to see a high Sharpe Ratio in the back tests, but you need to be prepared to see it toned down in actual trading. One reason the back tests are great is that our selection of components for this portfolio is based on hindsight. The back tests potentially suffer from a kind of survivor bias in that sense.

The proof will be in the pudding, and you can check out the pudding here.

Our Benchmark: 

We use the S&P Target Risk Moderate Index, SPTGMU as our benchmark. It provides significant exposure to fixed income, while also providing increased opportunity for capital growth through equities. For comparison purposes we use the ETF AOM to represent the index because the ETF also provides total return information (price + dividends) that is not available with the index by itself (price only).

According to S&P: “The S&P Target Risk Index Series is composed of four multi-asset class indices, each corresponding to a particular risk level. Like the related S&P Target Date Index Series, the asset class mix is determined once a year through a process designed to reflect the overall investment opportunity of the represented markets. Each index is fully investable, and is designed to provide varying levels of exposure to equities and fixed income.”

You can read more details about it here.

Details on allocations using Mean Variance Optimization

For the technically minded, here are details regarding our optimization approach. The allocations are determined using Lucena Research’s portfolio optimizer. Here are the steps:

  1. Set minimum and maximum allocations for each security. Our StumpGrinder default setting is 1.0% minimum and 20.0% maximum.
  2. For our core holdings (e.g., BOND, SPLV) we set higher minimums. You can see the specific details for these allocation min/max settings that are currently in force on the StumpGrinder: Allocations post, which is updated when we make changes.
  3. We then optimize for “minimum volatility” which represents the lowest risk portfolio on the efficient frontier. Internally the optimizer does this by testing 100 or more target return levels and finding the optimal portfolio for each one.

We could also optimize for “maximum Sharpe Ratio” or “maximum return” but those selections rely on estimates of return for each security. In this particular portfolio we’re already expressing our  sentiment (or forecast return) for each security with our allocation constraints so we’re not sure that adding the macine’s forecast as well will help.  However, that is something that we’re going to back test soon.

Our open source software QSTK includes a portfolio optimizer that you can learn about here.


Tucker Balch is not an investment advisor. The results discussed here are hypothetical, and are not predictive of future performance. This blog is not investing advice. Please consult an investment professional before risking capital.

Balch manages a fund with long positions in GLD, EELV, HILO, XLU, VYM, USMV, SPLV, BOND, HYD, IEI, SHY, VCIT.