One question I asked all the interviewees for my book, "Market Beaters," was whether or not they tested only in support of pre-existing ideas. I expected some disparity: while some would only be comfortable confirming their theories, others would accept exceptional results for their own sake. I was wrong. Virtually every trader wanted some idea of what was behind the findings. A trading theory pretty much always precedes number crunching.
System developers are obsessive about markets and their historic performance. Their constant chart scrutiny all but ensures a bottomless well of inspiration. That’s how I recently found myself re-visiting a frequent obsession: if and how the September–October stock market telegraphs its traditional downside trajectory ahead of time.
Let’s first make sure that the myth of market crashes does not significantly outstrip reality (good mechanical system developers accept nothing on faith). We know there have been historic periods of extreme down moves. By visually scanning those time frames, hopefully we can spot recurring behavior that we can incorporate into a system. "Bad days" (below) shows daily S&P futures charts around three notorious events; Oct. 19, 1987 (Black Monday), Sept. 11, 2001 and the financial melt of September 2008.

The next step is to establish a control: without filters or other qualifiers, how does the market fare during the three targeted time periods? "Trial and error" (below) reveals the outcome of shorting and then buying back the full-sized S&P futures between Sept. 1 and Sept. 30, Oct. 1 and Oct. 31, and Sept. 1 and Oct. 31.

We get a rather qualified confirmation of the autumn downward bias. It’s clearly not a good idea to hold shorts from the beginning to the end of October. Overall, September is a far more negative month, despite October’s legendary crashes. Those melts should make further investigation worth the effort, despite the non-dramatic initial findings.
There are probably many things the three charts have in common leading up to the price declines. Some of these aspects are non-consequential and will have no correlation with future profitability; some will have immediate validity. A good percentage will suggest something that may be valuable but should be supported by additional testing. Here’s what I noticed: It is historically profitable to short the opening of the fifth trading day of the month in September or October if the fourth day’s low was lower than the third day’s, and the third day’s was lower than the second day’s.
"Bad days" displays this price action. The setup occurred in both September and October of 2008. You would have made $27,025 in the September short and $26,175 in October. Your total would have increased to $77,450 had you let your original short run through the end of October (see "Optimize," below). However, when we extend the methodology to the entire S&P futures history, the results are less impressive.

The good news is we’ve improved over the original sell-at-the-onset, cover-at-the- close of the two months. The bad news is profits over the 28-year period fall short of the single anomalous crash year of 2008. Twenty-seven years, in other words, rack up a net loss. As is too often the case, we have to discard a seemingly good idea.
Our two choices from here are to give up or to rethink our approach. What if we started eyeballing the years which were counter to the expected down years, rather than those that confirmed the trend? The year 2009 comes immediately to mind. That was when the market bottomed in April and then steadily rallied through year’s end. Is there anything there that might jump-start another study?
"Plan B" (below) illustrates a cup bottom formation. A cup is a three day formation in which the second, or middle day, has the lowest low. The formation is most noteworthy when it is reversing a multi-day trend, as we see in "Plan B." It visually depicts a convex bottom, the same way the bearish "cap" counterpart suggests topping (middle day is the highest high). For years, my analysis has shown a wide application of cup/cap biases. Let’s continue to go short on the fifth day as before except when there is a completed cup formation within the first four days.

Each step has improved the key numbers relative to the previous incarnation. The best tool for comparing apples-to-apples is arguably the ROA, or return-on account. That figure gives you the percentage that your account would have increased had your initial capital been equal to the worst drawdown — $9,100 in the top row of the table in "Plan B." That row’s $30,800 divided by the $9,100 equals 3.3846; $30,800 is 3.3846 times as big as $9,100. Multiplying the figure by 100 and rounding down produces the displayed 338% increase.
We still don’t have a trustworthy system. While our process has eliminated negative outcomes, it also has dropped our total number of trials to statistically suspect levels. Besides, our overall net still falls short of 2008 in two out of the three tests. Our "better" numbers are deceptive.
It’s possible our cap addition renders the three successive lower lows irrelevant. Suppose we tilted cups/caps 180 degrees? Rather than not taking a trade when they contradict, let’s initiate only when they confirm. "Cap confirmation" (below), shows the September, October and combined totals.

If a cap top has been completely formed by the third trading day of either September or October (with no cup bottoms throughout the sequence) then sell on the day four opening. Exit on or just after the 27th of the month.
Separate research has shown that it isn’t a good idea to be short at the end of any month, so we moved the exit date forward. An optimization study between the 18th and the 28th identifies the 27th as the best date.
The top two rows reveal a still-lopsided, although consistent, profitability. There’s not a stat in the bottom totals that isn’t impressive: from the 68% profitable trades to the 1,031% increase in the account. Even the drawdown is an endurable $9,750.
Remember that you also can trade mini contracts worth one-fifth the value (and risk) of the full-sized ones. You could have made $20,000 while at no time over the 28 years drawing down more than $2,000, if the E-minis had existed over the life of the S&P 500 futures (E-minis were introduced in 1996, 14 years after the big S&P).
The major sticking point continues to be the small number of trials. Separate tests can demonstrate the validity of selling in September and October as well as the persistence of cups and caps. Smaller pools are more reliable when they’ve been distilled from larger ones that each held up under individual testing. Besides, the system performs well in related markets as we’ll see shortly. At the moment, let’s ponder a corresponding buy-side possibility.
As dramatic as the historic fall crashes are, there also are good times to be long: The Santa Claus rally and spring tax refunds to name two. Let’s optimize the 12 months and, for the sake of symmetry, settle on the best possible adjacent two-month combination.

"Bullish bias" (above) reveals two standout areas — March/April and November/December. It would be best to choose one, unless you can find another corresponding two month shorting period. March/April makes the tidiest fit as it is exactly half a year away from the bear months, however, the stats — particularly the ROA — are clearly superior for the November/December period. Besides, four adjacent months surrounding one conspicuous turnaround could be argued to be something beyond the merely arbitrary. "Going both ways" (below) shows results for the three holding periods of November-December, both long only and long/short-side combined.

You shouldn’t trust barn-burning results in one index that breakdown in a market of the same sector. "Broad appeal" (above) shows the results of the full four-month cup-cap system in the five major U.S. mini equity indexes Far and away, minis have been more active than their full-sized counterparts. The minis were introduced years after the originals so we have less history, 15 years on the S&P and at least eight on everything else.
The S&P and Dow thrived and there were no blow-ups with the rest. The concept is sound. As usual, though, it serves as a prelude to uncountable "what-if" questions. What if we moved the inception to later in the month? What if we reversed when we’re wrong? What if we re-configured to incorporate all the months? What if we measured relative strength-weakness among the five markets and initiated only in the strongest/weakest? What if we added stops or profit targets?
On and on it goes. That’s the beauty of market research — the chase never ends.
See the last page for formulas...
Art Collins is the author of "Beating the Financial Futures Market: Combining Small Biases Into Powerful Money Making Strategies." You can reach him at: arthurcollins1@comcast.net
In this article Art Collins discusses a simple strategy and then moves on to optimize it in various ways. Here are the corresponding codes in EasyLanguage for the system in its various forms.
TABLE 1--SEP 1-30
inputs:n(2),p(10),m(3),q(1);
variables:mm(0),co(0),x(0);
mm=month(date);
if month(date)=8 and dayofmonth(date)=31 and dayofweek(date)<>5 then sell short next bar at market;
if month(date)=8 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then sell short next bar at market;
if month(date)=9 and dayofmonth(date)=30 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=9 and dayofmonth(date)>=28 and dayofmonth(date)<=30 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 1--OCT 1-31
inputs:n(2),p(10),m(3),q(1);
variables:mm(0),co(0),x(0);
mm=month(date);
if month(date)=9 and dayofmonth(date)=30 and dayofweek(date)<>5 then sell short next bar at market;
if month(date)=9 and dayofmonth(date)>=28 and dayofmonth(date)<=30 and dayofweek(date)=5 then sell short next bar at market;
if month(date)=10 and dayofmonth(date)=31 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=10 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 1--SEP 1-OCT 31
inputs:n(2),p(10),m(3),q(1);
variables:mm(0),co(0),x(0);
mm=month(date);
if month(date)=8 and dayofmonth(date)=31 and dayofweek(date)<>5 then sell short next bar at market;
if month(date)=8 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then sell short next bar at market;
if month(date)=10 and dayofmonth(date)=31 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=10 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 2--SEP-SEP
variables:mm(0);
mm=month(date);
if month(date)=9 and mm<>mm[4] and mm=mm[3] and l
if month(date)=9 and dayofmonth(date)=30 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=9 and dayofmonth(date)>=28 and dayofmonth(date)<=30 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 2--OCT-OCT
variables:mm(0);
mm=month(date);
if month(date)=10 and mm<>mm[4] and mm=mm[3] and l
if month(date)=10 and dayofmonth(date)=31 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=10 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 2—SEP-OCT
variables:mm(0);
mm=month(date);
if month(date)=9 and mm<>mm[4] and mm=mm[3] and l
if month(date)=10 and dayofmonth(date)=31 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=10 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 3--CUP FILTER—SEP-SEP
variables:mm(0),e(0);
mm=month(date);
if l>l[1] and l[1]
if month(date)=9 and mm<>mm[4] and mm=mm[3] and l
and highest(e,4)=0 then sell short next bar at market;
if month(date)=9 and dayofmonth(date)=30 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=9 and dayofmonth(date)>=28 and dayofmonth(date)<=30 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 3--CUP FILTER—OCT-OCT
variables:mm(0),e(0);
mm=month(date);
if l>l[1] and l[1]
if month(date)=10 and mm<>mm[4] and mm=mm[3] and l
and highest(e,4)=0 then sell short next bar at market;
if month(date)=10 and dayofmonth(date)=31 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=10 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 3--CUP FILTER—SEP-OCT
variables:mm(0),e(0);
mm=month(date);
if l>l[1] and l[1]
if month(date)=9 and mm<>mm[4] and mm=mm[3] and l
and highest(e,4)=0 then sell short next bar at market;
if month(date)=10 and dayofmonth(date)=31 and dayofweek(date)<>5 then buy to cover this bar on close;
if month(date)=10 and dayofmonth(date)>=29 and dayofmonth(date)<=31 and dayofweek(date)=5 then buy to cover this bar on close;
TABLE 4--SHORTING OFF CAP TOPS--SEP
INPUTS:N(27);
variables:mm(0),e(0),f(0);
mm=month(date);
if hh[2] then e=1 else e=0;
if l>l[1] and l[1]
if highest(e,3)=1 and highest(f,3)=0 and month(date)=9 and mm=mm[2] and mm<>mm[3] then sell short next bar at market;
if dayofmonth(date)>=N then buy to cover this bar on close;
TABLE 4--SHORTING OFF CAP TOPS--OCT
INPUTS:N(27);
variables:mm(0),e(0),f(0);
mm=month(date);
if hh[2] then e=1 else e=0;
if l>l[1] and l[1]
if highest(e,3)=1 and highest(f,3)=0 and month(date)=10 and mm=mm[2] and mm<>mm[3] then sell short next bar at market;
if dayofmonth(date)>=N then buy to cover this bar on close;
TABLE 4--SEP-OCT CAP TOPS
INPUTS:N(27);
variables:mm(0),e(0),f(0);
mm=month(date);
if hh[2] then e=1 else e=0;
if l>l[1] and l[1]
if highest(e,3)=1 and highest(f,3)=0 and month(date)>=9 and month(date)<=10 and mm=mm[2] and mm<>mm[3] then sell short next bar at market;
if dayofmonth(date)>=N then buy to cover this bar on close;
TABLE 6—NOV CUP BOTTOMS—SEP CAP TOPS.
INPUTS:N(27);
variables:mm(0),e(0),f(0);
mm=month(date);
if hh[2] then e=1 else e=0;
if l>l[1] and l[1]
if highest(f,3)=1 and highest(e,3)=0 and month(date)=11 and mm=mm[2] and mm<>mm[3] then buy next bar at market;
if dayofmonth(date)>=N then sell this bar on close;
if highest(e,3)=1 and highest(f,3)=0 and month(date)=9 and mm=mm[2] and mm<>mm[3] then sell short next bar at market;
if dayofmonth(date)>=N then buy to cover this bar on close;
TABLE 6—DEC CUP BOTTOMS—OCT CAP TOPS.
INPUTS:N(27);
variables:mm(0),e(0),f(0);
mm=month(date);
if hh[2] then e=1 else e=0;
if l>l[1] and l[1]
if highest(f,3)=1 and highest(e,3)=0 and month(date)=12 and mm=mm[2] and mm<>mm[3] then buy next bar at market;
if dayofmonth(date)>=N then sell this bar on close;
if highest(e,3)=1 and highest(f,3)=0 and month(date)=10 and mm=mm[2] and mm<>mm[3] then sell short next bar at market;
if dayofmonth(date)>=N then buy to cover this bar on close;
TABLES 6-7—4 MONTH CUPS-CAPS TOTAL.
INPUTS:N(27);
variables:mm(0),e(0),f(0);
mm=month(date);
if hh[2] then e=1 else e=0;
if l>l[1] and l[1]
if highest(f,3)=1 and highest(e,3)=0 and month(date)>=11 and month(date)<=12 and mm=mm[2] and mm<>mm[3] then buy next bar at market;
if dayofmonth(date)>=N then sell this bar on close;
if highest(e,3)=1 and highest(f,3)=0 and month(date)>=9 and month(date)<=10 and mm=mm[2] and mm<>mm[3] then sell short next bar at market;
if dayofmonth(date)>=N then buy to cover this bar on close;