Book Reviews, Trading

Book Review of Time the Markets by Charles Kirkpatrick

The full title of this book is Time the Markets: Using Technical Analysis to Interpret Economic Data by Charles D. Kirkpatrick, II, CMT (Revised Edition, 2012).

This is a nice short volume coming in at ~180 pages, with large fonts and small book dimensions. I always prefer books with these characteristics because I believe most things can and should be conveyed succinctly and clearly.

The book walks through the development of a system that beats buy-and-hold in terms of having better returns and lower risk (in terms of drawdowns). Data series across five areas (corporate, economic, monetary, sentiment, technical) were obtained, and an optimized filtered moving average system was applied on each data series to give buy and sell signals on S&P 500. The top 4 systems (each system corresponding to a data series) were then combined into a final market timing system. The time frame used is monthly, so signals are also monthly however the stops are executed intra-month.

I like the fact that much of the details of the process as well as the results are given in the book. Sample EasyLanguage code is also found in the Appendix. I also find the development process reasonable, and the final four best indicators (i.e. credit, inflation, earnings, price) make sense. The use of a single technical system (i.e. filtered moving average) is also great, compared to dealing with tons of other indicators (e.g. RSI, stochastics, bands, etc) that do not contribute enough additional clarity to justify their added complexity. It would be interesting to replicate the research to see if similar results can be obtained.

One thing that I noticed is that there is some level of impreciseness in the text. E.g. it wrote that “have 50% of runs be profitable”, then on the next page it wrote “have more than 50% of its out-of-sample trades profitable”, so is it on out-of-sample runs or out-of-sample trades? And “show efficiency of at least 50%” vs. “WFE greater than 50%”, so is it at least or greater than? As the topic here is more on systematic rules, a good level of preciseness is definitely preferred.

All in all, this is a pretty good book to go through. To benefit from this book however, would really require you to collect the data to do your own backtesting, and see if you can get similar results, or introduce other data series that you think are relevant and put them through the same process. One cannot simply take the provided parameter values and start trading. Doing your own research is the only way to get the confidence and depth of knowledge required to put a system into practice.


Five Key Areas to Determine Stock Market Direction

  1. Corporate data (e.g. earnings yield, dividend yield, P/S)
  2. Economic data (e.g. leading economic indicators)
  3. Monetary data (e.g. interest rates, money supply, Fed policy)
  4. Sentiment (e.g. investors sentiment, free credit balance minus margin debt)
  5. Technical factors (e.g. breadth, volume, cycles, trend)

Two Methods to Reduce Market Risk of Loss

  1. Neutralize market risk by going long-short
  2. Market timing

Missing the Worst Months is More Important Than Trying to Catch the Best Months

  • A study done over 1926 to 2004 showed that
    • Buy and hold: Return = 10.04% per annum
    • Missing the 6 worst months: Return = 12.33% per annum
    • Missing the 6 best months : Return = 8.05% per annum
    • Missing the 6 best and 6 worst months: Return = 10.30% per annum

Measure Stock Market Cycles from Bottom to Bottom

  • Measure stock market cycles from bottom to bottom because tops are generally rounded and bottoms are usually sharp Vs.
  • To measure cycle periods, look at a ratio chart of the ratio of the current price to its moving average, e.g. a four-year market cycle is apparent when you plot the ratio of DJIA monthly close to its 24-month moving average.


Sentiment is More Reliable at Bottoms

  • Sentiment is much more reliable as in indicator at market bottoms. Market tops tend to be rounded and thus not easily pinpointed.
  • Sentiment generally becomes bullish as the market rallies and only becomes excessive after a sizable market uptrend. Bullish sentiment by itself, then, is not a reliable indicator.


Three Steps and a Stumble

  • When the Federal Reserve takes three steps to raise interest rates, the market will decline.
  • Ned Davis Research argues that this signal has 87% accuracy and a median subsequent stock market decline of 17%.

Two Tumbles and a Jump

  • When the Federal Reserve takes two steps to lower rates, the market will advance.
  • Ned David Research argues that since 1915 this rule has been accurate 84% of the time with a median subsequent market advance of 55%.


Use Filtered Moving Average to Create Signals for Each Input Data Series

  • Three variables: (i) 1st MA length, (ii) 2nd MA length, (iii) filter percentage.
  • Buy signal: 1st MA crosses above the 2nd MA plus filter
  • Sell signal: 1st MA crosses below the 2nd MA minus filter
  • If 1st MA length > 2nd MA length, this means the indicator data and stock market have negative correlation.

Quarterly Data Has Insufficient Data Points

  • No quarterly data is used because most such data goes back only to the 1940s, roughly 70 years. At four data points each year, this gives only 280 data points, not enough to develop a reliable system.
  • The data used is only that which is reported monthly. Data series that began after 1960 are rejected because that leaves only 600 readings to test. Most data begins in the 1920s to 1940s.

Include Short Selling when Optimizing System Parameters

  • If a system on tested for long positions, it would not be optimizing the sell points. Having the system sell short when a sell signal is generated will force the tests to optimize toward the best selling price. It must sell at the best price to profit from the short side as well as the long side.

Good Objective Functions for Optimization

  • Pessimistic Return on Capital (PROC)
    • PROC = {(Avg profit $ per winning trade)*[(# winning trades) – Sqrt(# winning trades)] + (Avg loss $ per losing trade)*[(# losing trades) + Sqrt (# losing trades)]} / Capital
    • Assumes that the system wins less often and loses more often
  • MAR ratio
    • Ratio = CAGR / MDD
  • Efficiency ratio
    • Ratio = out-of-sample annual return / in-sample annual return

Shutdown Trading System at a Multiple of Maximum Drawdown

  • The conventional method is to use 1.5 times the system MDD as the system limit. Thus, if the system has a 20% MDD, the “close-down” percentage is 30. If 30% is too much for your nerves, you should not pursue the system.
  • I generally use the 20% figure as the critical level for a system to  be considered further.

System Selection and Optimization Process

  • Setup
    • When filtered moving average gives buy signal, buy S&P 500 Index
    • When filtered moving average gives short signal, short S&P 500 Index
  • Step 1: Optimization (genetic algorithm)
    • Focuses on return
    • Determine the best ranges for the parameters using PROC as the objective function.
  • Step 2: Walk-Forward Optimization
    • Focuses on out-of-sample performance
    • During the parameters optimization phase of the walk-forward, use MAR ratio as the objective function.
    • Filter criteria
      • Net profit > 0
      • Efficiency ratio >= 50%
      • At least 50% of runs be profitable (one run = one out-of-sample test)
      • Shows an even distribution of profit from more than just one or two large trades
      • MDD < 40%
    • Robustness requirement
      • Parameters can change slightly without affecting the profitability of the system
      • Operates successfully in bull/bear/sideways/odd markets
      • Handle long and short trades with equal ease
  • Step 3: Risk vs. Profit
    • MDD < 30%
    • Time in market > 50%
    • System CAGR / Buy-and-hold CAGR > 1
    • Score = (CAGR %) + (30 – (MDD %)) + 10*(MAR Ratio) + 5*(RR Ratio) + Sqrt(Exc Ratio)
      • MAR Ratio = CAGR / MDD. Ratio > 1 is best.
      • RR Ratio = Relative return ratio = Total system return / buy-and-hold return. Ratio > 2 is best.
      • Exc Ratio = Excursion ratio = MFE / MAE. Ratio > 10 is best.
      • Score > 50 is excellent

Calculating the Number of Bars for Walk-Forward Optimization

  • Assumptions
    • Total number of bars per run = Z
    • Number of bars in-sample = X% * Z
    • Number of bars out-of-sample is Y% * Z
    • X+Y = 100%.
    • Step size to advance to next run = (Y% * Z) bars
    • Number of runs = R
    • Total number of bars we have for the entire process = T
  • Then
    • (R * Y + X) * Z  = T
    • Z = T / (R * Y + X)

Optimize Stops Separately

  • To optimize for the best protective stops and the best trailing stops, use the same optimizing procedure as for the original moving average optimization.
  • Each kind of stop is analyzed separately. When optimizing for stop levels, never adjust the moving average lengths or filter of the basic system.


What Didn’t Work Using a Filtered Moving Average Indicator

  • Earnings
    • Earnings yield
    • Earnings yield minus 3-month Treasury bill rate
    • Raw earnings (okay)
    • Annual % change in earnings (okay)
  • Dividends
    • Raw dividends
    • Dividend yield
    • Annual % change in dividends
    • Annual % change in dividend yield
    • Dividend yield minus 3-month Treasury bill rate
  • Prices
    • PPI year-on-year change
  • Industry
    • Industrial Production
    • Housing Starts (year-to-year %)
    • ISM PMI
  • Income
    • Unemployment rate
    • Initial claims for unemployment
  • Interest rates
    • Corporate Baa bond rate
    • Long-term U.S. bond rate
  • Spreads
    • Barron’s Confidence Index
    • Spread between Moody’s Baa bond rate and the 5-10 year U.S. bond rate
    • Spread between U.S. Treasury 10-year notes rate and 3-month bill rate
  • Money
    • M2 money supply
  • Sentiment
    • Investors Intelligence Advisors’ Sentiment
    • University of Michigan’s Consumer Index
    • Margin debt (ok but high MDD prior to 1993)
    • ICI mutual fund cash percentage less 3-month Treasury bill rate
    • NYSE short interest

What Worked Using a Filtered Moving Average Indicator

  • Earnings
    • Annual % change in earnings yield (one-month delay)
  • Prices
    • CPI annual % change (one-month delay)
    • Texas West Intermediate crude oil price (no delay)
  • Industry
    • Capacity Utilization (one-month delay)
  • Income
    • Disposable income year-on-year % change (two-month delay)
  • Interest rates
    • Three-month Treasury bill rate
  • Money
    • Consumer credit

Common Systems Settings

  • Delays
    • Delay = time from crossover signal (assuming data series not shifted) to buy/sell signal executed
  • Timeframe
    • Monthly signals, executed at the opening price of the following month.
    • 50 years of data is used, ending June 30, 2011
  • Stops
    • Protective stops are placed the specified percentage away from the entry price.
    • ATR trailing stops are placed a certain number of ATRs from the most profitable price.
    • Stops are triggered intra-month, i.e. within a bar.

Three Best Economic-Based Systems

  • Consumer Credit
    • 1st MA: 40-month
    • 2nd MA: 11-month
    • Filter: 1%
    • Stop protective long: 0%
    • Stop protective short: 2.4%
    • Stop trailing ATR long: 14.8*ATR(28)
    • Stop trailing ATR short: 15*ATR(5)
  • CPI
    • 1st MA: 36-month
    • 2nd MA: 1-month
    • Filter: 35%
    • Stop protective long: 0%
    • Stop protective short: 3.7%
    • Stop trailing ATR long: 9.3*ATR(9)
    • Stop trailing ATR short: 13.7*ATR(5)
  • EPS Yield Annual % Change
    • 1st MA: 40-month
    • 2nd MA: 41-month
    • Filter: 7%
    • Stop protective long: 0%
    • Stop protective short: 5.4%
    • Stop trailing ATR long: 36*ATR(4)
    • Stop trailing ATR short: None

Best Stock Market System

  • Because a top takes time, it is logical that a moving average crossover system that signals tops will have longer moving averages than one that signals bottoms, which must be shorter in length to adjust more quickly to the different price curves. Two separate filtered, moving average crossover systems, one for tops and another for bottoms, are run concurrently.
  • Buy signals for bottoms
    • 1st MA: 1-month
    • 2nd MA: 7-month
    • Filter: 2%
    • Stop protective long: 6%
    • Stop trailing ATR long: 4.4*ATR(27)
  • Sell signals for tops
    • 1st MA: 8-month
    • 2nd MA: 18-month
    • Filter: 7%
    • Stop protective short: 23%
    • Stop trailing ATR short: 13.5*ATR(5)

Combining Three Best Economic-Based Systems with Stock Market System

  • Each of the 4 systems has a weight of 25%. Buy signal contributes +25%, neutral (e.g. no position due to stop triggering) contributes 0%, sell signal contributes -25%
  • % of Portfolio invested in S&P 500 = Sum of weights contributed by the 4 systems.
  • Portfolio is rebalanced when there is a signal from one of the 4 systems.
  • Model generates 8.57% CAGR over 46.5 years vs. 5.85% CAGR for buy-and-hold.





No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Copyright © 2005 – 2018 All Rights Reserved.

Enter your email address to follow this blog and receive notifications of new posts by email.


Blog Stats

  • 662,305 hits
%d bloggers like this: