Beating the Market: Value and Momentum Trading

Updated: Jun 5

This article will be heavily on several key technical topics related to creating a trading model. It's highly suggested for new readers to take a look at the following articles first before reading further.

A data science approach to trend investing

Is simplicity the best way of investing?

If you are looking at a passive way of generating above-average returns as compared to most portfolios and have no intention of building your own portfolio, the suggestion is still the same. Buy the index (S&P 500).

If you can afford a bit more time in managing your investments, you might like to follow some trend investing techniques in knowing when to alternate between buying the index and bonds during different market conditions.

All of these have been briefly covered in the articles listed above. What this article is about is something different. It's about an entirely active way of portfolio management to attempt to achieve returns better than the index by combining fundamental analysis together with momentum trading.

Interested to find out more?

Here it goes.

I attempt to create a trading model to illustrate the key concepts I have in choosing equities and time the investment/divestment of these equities based on the stock's pricing momentum. Here is the key information.

Mechanics of the Trading Model

1) It's a long-only strategy

2) Stocks are chosen based on a pre-defined criteria (more on this to be explained in the next section)

3) Maximum of 5 equities who passed the pre-defined criteria are included in the portfolio anytime

4) Each of the 5 equities will be assigned 20% of the portfolio's value

5) If less than 5 equities passed the pre-defined criteria, the remaining cash will be used to purchase IEF (iShares Barclays 7-10 Year Trasry Bnd Fd)

For example, if only 3 equities passed the pre-defined criteria, remaining 40% of the portfolio will be assigned to IEF.

6) Equities will only be added into the portfolio if the overall market trend is positive (S&P500's SMA 10 is above its SMA 200). If the overall market trend is negative (S&P500's SMA 10 is below its SMA 200), no new equities will be added and all remaining cash will be used to purchase IEF (iShares Barclays 7-10 Year Trasry Bnd Fd).

7) Only US equities are in focus

8) Portfolio will be re-balanced on a weekly frequency

Pre-defined Criteria

1) The initial equity pool is the top 3000 US equities defined by their SMA 200 value, with a cap at 30% of the equities being allocated to any single sector

2) A score based on the following key metrics of equity is created

- Return on Invested Capital (ROIC)

- Free Cash Flow

- Enterprise Value (Sum of the market capitalisation of the business plus its net debt)

- Long term Debt to Equity's ratio

- Log returns of the equity's price for the past 6 months

The first four key metrics used are the commonly used important metrics utilised to understand the financial health of a business (which represent the fundamental value). The last metric is more of a trend metric to understand how's the equity's price performing in the past 6 months.

Based on these key metrics, a score is given to each of these 3000 equities. Only the top 50 equities based on this score will be chosen.

3) A momentum value based on the price movement of the equity over the past 6 months is assigned to each of these 50 equities.

Top 5 equities with the best momentum values will be chosen.

Backtesting Results

I backtest my trading model against the index in 3 different time frames (3-year, 5-year and 10-year).

Here are the results (initial sum invested is $10,000)


Higher returns of ~98% against ~30% obtained by the index.

*Sharpe ratio for the index is 0.49. A higher sharpe ratio of 0.91 is obtained by the trading model.


Higher returns of ~424% against ~52% obtained by the index.

*Sharpe ratio for the index is 0.59. A higher sharpe ratio of 1.24 is obtained by the trading model.


Higher returns of ~2064% against ~217% obtained by the index.

*Sharpe ratio for the index is 0.82. A higher sharpe ratio of 1.21 is obtained by the trading model.

*Sharpe ratio for the index can be found here.

Given that we are in a bull market for the past 10 years, I decided to compare the results of the trading model against the index during the last bear market in a 2 year-horizon (June 2007 to June 2009)

Again, the model returned better results than the index (returns of +36% as compared to returns of -35% by the market).


The idea here is to develop a trading model which takes into account your selection of equities based on fundamental value and use it as a basis to pick the best selection of equities (based on pricing momentum) to attempt to beat the market. The market is constantly shifting with the rise and fall of businesses happening on a regular basis. Rather than picking my own equities based on what I have read about the businesses, I like to let the trading model pick my equities based on my "pre-defined criteria". This ensures that I'm always picking the best companies based on my criteria.

The backtesting results have shown quite promising signs. Of course, I will continue to modify the trading model to return better results (eg. Personally, I still like to improve on the drawdown). Moving forward, I will also be using this model for future trades.

More information (eg. updated selection list of equities by the model on a weekly basis) will be provided for the patrons (

Psst.. If you like what you read, please scroll down and subscribe for regular updates!

  • Facebook

©2019 by datascienceinvestor