Studies of Life

Learning by doing.

Factor Portfolio Test for 2017: A Sun and its Satellites

03 February 2017 by Jim

(Picture by Steve Snodgrass)

Another year has gone by, and I would like to give an update on my personal stock portfolio. I currently think that index investing is the smartest choice, and that is why 75% of my portfolio is made up of index ETFs. However, a part of me continues to think that if you try to invest intelligently using a portfolio that is different from the overall market, you should be able to do better than the market. Maybe a few more years of dabbling and getting subpar returns will cure me of this illusion. For now, I’m not yet fully ready to accept that index investing is the best anybody can do. Not because I’m greedy and dream of making 20% ROI per year, but because I think that it should be possible for a rationally thinking human to be better than average.

Here’s the current performance by month of each sub-portfolio, and the overall portfolio. This chart will update throughout the year automatically (it’s from a Google Sheet that I use to track the portfolio). Read on to find out what it’s about.

2017 Allocation

So here is what my portfolio for 2017 will look like, with the indexes as the sun, and a few interesting satellites:

Allocation  Strategy
75%  Indexing ETFs
— 30.3%  Global Bond Market (XBAE)
— 23.7%  World Stocks (VWRL)
— 12.5% Developed Europe Stocks (VEUR)
— 4.2%  Berkshire Hathaway
— 5.0%  Cash
25%   Factor Portfolios
— 6% Cheap Country ETFs
— 6%  O’Shaughnessy Trending Value
— 6% O’Shaughnessy Cheap & Rising Microcaps
— 6%  O’Shaughnessy Consumer Staples & Utilities

What are those factor portfolios? They’re based on systematic investing and not making personal judgments but instead adhering to a system. The first one is based on a CAPE valuation of these countries stock market, as made available by Star Capital. The three others are all taken from the book What Works on Wall Street by James O’Shaughnessy, which I already mentioned several times. They were selected, among the different strategies presented in the book, for their high Sharpe ratio, their high base rates*, and the fact that they are different strategies that could be uncorrelated:

– Trending Value: buy cheap stocks that are rising (> 2M market cap)
– Cheap & Rising Microcaps: buy cheap microcaps that are rising (< 2M market cap)
– Consumer Staples & Utilities: buy cheap Utilities and Consumer Staples with good Shareholder Yield

The details of these three strategies can be seen in the book. Here’s what O’Shaughnessy says about the third one, for example: “In the utility sector, buying those utility stocks with the highest scores from composited Value Factor Two generated the best returns. They earned an average annual compound return of 16.01 percent, with a maximum decline of 33 percent. In the consumer staples sector, buying the quintiles of stocks with the highest shareholder yield proved the best strategy, generating an average annual compound return of 17.80 percent with a maximum peak-to-trough decline of 34 percent.”

Implementation

Here are the details of how I implemented these stock strategies. I used Screener.co to filter the stocks based on custom formulas. Below are screenshots of the conditions that a stock has to meet before being considered.

Note: The final stocks I buy depend on the markets I select to include (mostly US + EU) and also whether that stock is available on my trading platform. If it is not, I just choose try the next best one on my list, until I find one I can buy.

Trending Value

Basically, you remove small caps with less than 200 M market cap, and then you get the top decile by Value Factor (VF) 2. This is a combined measure of how cheap a stock is, based on Price-to-Book, Price-to-Sales, and other metrics. The actual formula I used to implement it on screener.co is in the footnotes1. It’s a normalised value, i.e. it outputs a result between 0 (bad) and 1 (best). Inside this top decile, you rank stocks by 6 month momentum, and buy the top stocks in that area.

Cheap & Rising Microcaps

The microcaps are of course smaller than 200 M. And then I get the top 3 deciles in terms of cheap price to book (nnPB here, it’s normalised as well). And they have to have positive price change in the past 3 and 6 months. But the top is ranked by 12 month price change.

A nice aspect of this strategy is that the correlation to the market in general should be low: microcaps are usually fast-growing companies, very unlike the Dow Jones giants, and their small market cap makes them unattractive to large funds, so their pricing might be less efficient than that of large companies.

Consumer Staples & Utilities

This strategy has two components:

One is Utilities, ranked by VF2.

And the other is Consumer Staples, ranked by Shareholder Yield.

These two sectors are, as far as speculation goes, unattractive. They are slowly growing companies that focus on dividends, not innovation, and thus they are not what most speculators would be looking for. Slow & steady is what this strategy is about.

Practical details

The 4 portfolios are each 5-6 stocks large. O’Shaughnessy recommends no less than 25 stocks in a portfolio, but if you look at these 4 portfolios as a single big one, it’s 21 stocks, and that’s close enough to 25. Especially since these together only represent 25% of my total portfolio.

Additionally, I will track both these mini portfolios and larger versions of them with 25 stocks in each, to see if there are significant differences between the large and mini versions or not.

 

 


  1. What I basically did with the formula below is: I took the 6 different value measures and normalise them to get their result as a number between 0 (bad) and 1 (good). If a stock’s result is higher than 1 or lower than 0, it is clipped to 1 or 0 on each of the 6 measures. So the best stock in terms of Price-to-Book will have a 1 as a result there, and the worst will be a 0. (Actually, a few stocks maybe 1 or 0 because the normalisation is not perfect, but it’s good enough for this purpose because the results will be averaged anyway). After this, the 6 numbers we get from 0 to 1 are averaged to get one combined result between 0 and 1 that expresses how bad or good the stock is in terms of valuation. Here’s the formula: “( (((CASE WHEN ( ( (((ebitda2ev)) -(-220) ) / ((140) -(-220) ) )) IS NULL THEN 0.5
    WHEN ( ( (((ebitda2ev)) -(-220) ) / ((140) -(-220) ) )) > 1 THEN 1
    WHEN ( ( (((ebitda2ev)) -(-220) ) / ((140) -(-220) ) )) < 0 THEN 0
    ELSE ( ( (((ebitda2ev)) -(-220) ) / ((140) -(-220) ) )) END)) +((CASE WHEN ((1) – ( (((price2bk)) -(-1) ) / ((25) -(-1) ) )) IS NULL THEN 0.5
    WHEN ((1) – ( (((price2bk)) -(-1) ) / ((25) -(-1) ) )) > 1 THEN 1
    WHEN ((1) – ( (((price2bk)) -(-1) ) / ((25) -(-1) ) )) < 0 THEN 0
    ELSE ((1) – ( (((price2bk)) -(-1) ) / ((25) -(-1) ) )) END)) +((CASE WHEN ((1) – ( (((qpr2rev)) -(0) ) / ((20) -(0) ) )) IS NULL THEN 0.5
    WHEN ((1) – ( (((qpr2rev)) -(0) ) / ((20) -(0) ) )) > 1 THEN 1
    WHEN ((1) – ( (((qpr2rev)) -(0) ) / ((20) -(0) ) )) < 0 THEN 0
    ELSE ((1) – ( (((qpr2rev)) -(0) ) / ((20) -(0) ) )) END)) +((CASE WHEN ((1) – ( (((qprcfps)) -(-5) ) / ((100) -(-5) ) )) IS NULL THEN 0.5
    WHEN ((1) – ( (((qprcfps)) -(-5) ) / ((100) -(-5) ) )) > 1 THEN 1
    WHEN ((1) – ( (((qprcfps)) -(-5) ) / ((100) -(-5) ) )) < 0 THEN 0
    ELSE ((1) – ( (((qprcfps)) -(-5) ) / ((100) -(-5) ) )) END)) +((CASE WHEN ((1) – ( (((peexclxor)) -(-10) ) / ((200) -(-10) ) )) IS NULL THEN 0.5
    WHEN ((1) – ( (((peexclxor)) -(-10) ) / ((200) -(-10) ) )) > 1 THEN 1
    WHEN ((1) – ( (((peexclxor)) -(-10) ) / ((200) -(-10) ) )) < 0 THEN 0
    ELSE ((1) – ( (((peexclxor)) -(-10) ) / ((200) -(-10) ) )) END)) +((CASE WHEN ( ( ((((((divyield_cura/100)) + ( (((shsoutbs21000000)) -((shsoutbs1000000)) ) /((shsoutbs21000000)) )))) -(-0.5) ) / ((0.5) -(-0.5) ) )) IS NULL THEN 0.5
    WHEN ( ( ((((((divyield_cura/100)) + ( (((shsoutbs21000000)) -((shsoutbs1000000)) ) /((shsoutbs21000000)) )))) -(-0.5) ) / ((0.5) -(-0.5) ) )) > 1 THEN 1

    WHEN ( ( ((((((divyield_cura/100)) + ( (((shsoutbs21000000)) -((shsoutbs1000000)) ) /((shsoutbs21000000)) )))) -(-0.5) ) / ((0.5) -(-0.5) ) )) < 0 THEN 0
    ELSE ( ( ((((((divyield_cura/100)) + ( (((shsoutbs21000000)) -((shsoutbs1000000)) ) /((shsoutbs21000000)) )))) -(-0.5) ) / ((0.5) -(-0.5) ) )) END)) ) / (6))”
     

2 comments | Categories: Investing, investment | Tags: , , , ,

Comments (2)

  1. 75% seems a bit too high!

    • Do you think so? I think it’s not too high. So far this year at least, the index portfolio is doing better than the factor portfolios, as you can see on the chart. But one year is just an anecdote, of course… 😉

Leave a Reply