iBankCoin
Joined Nov 11, 2007
1,458 Blog Posts

Momentum System Proof of Concept

Introduction: Let’s Build a Momentum System

Tonight I want to look at how momentum develops over time. When building this momentum system, I am going to rank stocks by their performance over the previous J trading days, and they will be held for a minimum of K trading days. S will represent the number of trading days to skip before initiating the trade.

I am assuming that 22 trading days roughly equals 1 calendar month. For this test I am ranking stocks by their rate-of-change (ROC) where J=132 (roughly 6 calendar months) and K varies from 22 to 130 (1 month to 6 months). The number of trading days in a month is not exact, but it should not matter significantly.

The portfolio will consist of the top 20 stocks with the highest ROC over the last J trading days, with all positions equally weighted. As the system develops, the portfolio will shrink. As this is a proof-of-concept, I want to ensure a large sample size.

It is important to note that after K has been met, 1 of 2 things may happen: If the stock is no longer in the top 20, it will be sold and replaced. If, after K has been met and the stock is still in the top 20, it will be held as long as it remains in the top 20. This is a little confusing. Leave a comment if the concept needs some fleshing-out.

All buys and sell happen on the close the day AFTER the signal to buy/sell is given. (To be clear, the exact formula will be J=132, K=22-130, and S=1). I have purposefully ran the test this way as it allows for easy replication in that one could run the scans after the close and place a Market-On-Close order for the next day. I prefer trading the close as there is more liquidity and a much less likelihood of slippage.

The test was run over all major exchange listed stocks from 1/1/1986 to 12/31/2005.

Results:

Summary:

This is a rudimentary analysis, but it does show the momentum anomaly. In fact, these results do not differ much from the results in the academic momentum literature (enter “momentum stock market” in search box) where similar strategies are tested.

Buying the best 20 performing stocks where J=132 and holding for K=22-130 yields impressive average trades. There are lots of issues to consider, such as if J=22 has an average trade of ~6% then we would expect that J=110 should yield an average trade of ~30%. As this graph shows, by the time we get out to J=110, the average trade is ~18%.  Thus, momentum is slowing over time. What this suggests is that it will likely be better to use a smaller J and rely on increased turnover to generate greater profits.

How does this compare to a buy-and-hold strategy on the $SPX?

At K=22, the momentum approach vs. $SPX buy-and-hold generates an alpha of better than 5%.

Next, I will add a volume, liquidity, and price filter.

Jump to Part 3: Momentum System: Adding Volume, Liquidity, and Price Filters.

Please feel free to comment during this process.

If you enjoy the content at iBankCoin, please follow us on Twitter

12 comments

  1. HawaiiFive0

    I’m with you up until that last sentence and I do get the concept, I think.

    Basically you are saying that if certain stocks were hot over x period of time,i.e., their ROC over J=132 is high, than you are testing what the probability is that they’ll be hot over various K periods of time.

    So now the challenge is to vary the J and K periods ( I think) to figure out which best J period of time translates into the best K period of holding time.

    But, what does this mean?

    “At K=22, the momentum approach vs. $SPX buy-and-hold generates an alpha of better than 5%”

    I don’t understand what alpha is And is the second bar graph the s&p, which is being compared to the first hypothetical graph? And is the first graph of one hypothetical stock or all 20 that have high ROC?

    Thanks!

    • 0
    • 0
    • 0 Deem this to be "Fake News"
    • Woodshedder

      Hawaii, to keep things simple, I am likely not going to vary J at all. I am going to work strictly with J=132. There are several reasons for this, but the main one is that in a lot of the literature, a 6 month formation period works well. Also, I don’t want to keep varying it, optimizing, etc. and wind up curve-fitting it.

      Here is investopedia on Alpha: http://www.investopedia.com/terms/a/alpha.asp

      The second bar graph is of the SPX. The first bar graph is of the 20 stock rotating portfolio. Sorry, excel wouldn’t let me label them the way I wanted to.

      • 0
      • 0
      • 0 Deem this to be "Fake News"
  2. mybestfunds.com

    Thanks for starting this series. This is a nice follow up to your work with the Fidelity Select relative strength rotation strategy. I’m looking forward to the next posts, especially the effect of the liquidity filter.

    • 0
    • 0
    • 0 Deem this to be "Fake News"
  3. eber terandst

    What is the stock universe you are using to do the momemtum ranking ? Does it contain non surviving stocks?
    eb

    • 0
    • 0
    • 0 Deem this to be "Fake News"
    • Woodshedder

      eb, the initial tests as outlined in the introduction piece (linked at top of this post) are over the major exchanged listed universe. I have a de-listed database and I will run tests including non-survivors as I progress through the development. The de-listed database takes a good bit longer to run the tests over and so I will not use it in the early stages of development.

      • 0
      • 0
      • 0 Deem this to be "Fake News"
  4. trading4p

    Interesting Stuff!. Have some questions

    1) Are you going to stick with ROC of close as a measure of momentum or will you be venturing into other criteria such as MA or ROC of MA?

    2) You have mentioned that a stock is switched out when it drops out of top 20. Wouldn’t it be better to given some latitude. Such as switch it out when it drop below 25 or 30. Give some room for the trade.

    3) What is the max dd of this system?

    Hawaii here is a link to a great article about alpha

    http://www.ilukacg.com/articles/Tao%20of%20Alpha.pdf

    • 0
    • 0
    • 0 Deem this to be "Fake News"
    • Woodshedder

      trading4p,
      1. I am going to stick with ROC as a measure of momo, at least for now. I may eventually try weighting different formation periods. A big part of me believes in keeping it simple.
      2. Once it drops out of the top twenty, we want to replace it with fresh momo. Since we expect the momentum to slow down over time, we would want fresh momentum as we would expect it to perform better.
      3. I haven’t looked at MaxDD yet. Probably large, like 80-90%. In these initial stages, we just want to get a sense of the raw momentum with various K minimum hold times. This way we have a baseline to compare to.

      • 0
      • 0
      • 0 Deem this to be "Fake News"