iBankCoin
Joined Nov 11, 2007
1,458 Blog Posts

Is Your Stock Trading System Sick? Take It to the Doctor.

Perhaps the most difficult part of mechanical system trading is being disciplined and continuing to trade the system through good times and bad. At times, there can be significant doubt in the mind of the trader, and the urge to quit the system can be overwhelming. However, at some point, the system may indeed be broken, and in need of repair or trashing. How might one know when the system is experiencing a normal period of poor performance versus actually breaking down? Being able to answer this type of question will go a long way towards ensuring the mechanical trader can stick with the system through hard times and adjust or quit trading it when something is out of whack.

I will of course be using the Power Dip system as an example, primarily because I have a great deal of backtested historical data as well as 6 months of real-time trade data. These types of control charts will be available, updated monthly, for subscribers to the Power Dip system.

Historical Backtested vs. Real-Time

Data generated from backtesting is not the same as data created from trading a system in real-time. Perhaps the most significant difference for a system like the Power Dip is going to be with slippage. There are other differences as well, primarily concerning the fact that historical backtested data will rarely match real-time data, trade for trade. Usually the sequence of symbols will not match. This might be an issue for some systems without a lot of trades, but with over 4500 historical trades generated, and over 150 real-time trades, I feel strongly that the Law of Large Numbers will take care of the discrepancies. What I mean by this is that over enough trades, it should not matter that the historical sequence of trades does not match exactly the real-time sequence. Regardless, it is something to keep in mind when comparing historical backtested data to real-time.

Historical Backtested Data

pd-backtest-control-chart-93-01

The most important feature of the above chart is the large spike down in the 20TradeAverage, which occurs in March of 2000. Note that the 20TradeAverage approached -8% before recovering.

pd-backtest-control-chart-01-09

In the above chart, on the right-most side, is another spike down in the 20TradeAverage, which is approaching -8%.

What can be gleaned from these graphs? The system has experienced a previous period of under-performance similar to what it is experiencing currently. The exact date of the lowest point in the 20TradeAverage was March 17, 2000. What did the market look like in March, 2000, and are there any similarities to the current market?

Lets look at some charts of the Russell 2K index during that time.

russell-2k-10_98-to-10_00

First, a zoomed-out view of the Russell 2K from October 1998 to October 2000.

Here we see a market that has climbed ~50% in approximately 16 months. There have been some consolidations and pullbacks along the way, but the last 6 months of the rally, which saw gains of greater than 30%, was parabolic with only a few short and shallow retracements.

Now lets zoom in on this chart.

russell-2k-10_99-to-06_00

Above is a closeup of the Russell 2K from October, 1999, to June of 2000.

In the chart above, I’ve drawn a blue arrow pointing to March, 17th, which is the exact day of the low -8% reading on the control chart.

What we see in March of 2000 is a market that has experienced a tremendous rise, with very few pullbacks, in a relatively short amount of time. Our current market has risen even farther in percentage terms, and over a shorter time frame. Hence, I am not surprised that these two market environments, while 9 years apart, both look the same in terms of how they affect the system performance.

Real-Time Trades

power-dip-system-health-real-time

There are two important things to note about the above chart of the real-time trades.

First, as I noted earlier, these trades do not exactly match the historical backtested trades.

Secondly, (and of significant importance to me as I consider whether the system is still healthy, but just under-performing, or whether the system is breaking down) the real-time results are actually better than the backtested historical results covering the same period. The real-time results show the 20Trade Average dipping to -6%, which is better than the almost -8% shown by the historical results.

Therefore, the system appears to be healthy, but is having trouble in the current market, due primarily to the huge rise over a short period of time.

Other considerations for the Power Dip

As of Friday evening, there were only 183 stocks eligible to be selected for the Power Dip out of a total universe of 2,376 stocks. To understand how drastically this ratio has changed, on 9/22, there were 1,551 stocks eligible. Basically, the number of eligible stocks has fallen very quickly as the market rolls over. This information is very important, as no one wants to trade a system into Armageddon. If the market continues to roll over, the Power Dip will simply run out of eligible stocks, and will quit making trades, or it will significantly curtail trading until the environment improves.

Summary

System traders (and discretionary traders as well) must have a method for looking under the hood of their system/performance. What I have demonstrated is very simple, but it works.

The most important function of such analysis is that it lends confidence to the mechanical trader, ensuring that he doesn’t quit trading the system at the exact worst time.

The secondary function is to ensure the mechanical trader monitors the system’s performance for signs of breaking down. My experience is that systems do not break down all of a sudden. A breakdown generally happens over many months or even years. Using these types of monitoring techniques should give ample warning of when to be cautious about continuing to trade a system that is under-performing.

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

9 comments

  1. Cuervos Laugh

    Wow. Such a well argued post with zero comments.
    Nicely done.

    I’m going to have to ponder this:
    What I mean by this is that over enough trades, it should not matter that the historical sequence of trades does not match exactly the real-time sequence

    for a bit.

    That’s an interesting point to make.

    • 0
    • 0
    • 0 Deem this to be "Fake News"
  2. lindsay

    excellent teaching with ( as with all your posts) a presentation hard earned (by your personal work) and w much credibility–
    if ibc was only a stock

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

      If only I were teaching with the 20DayAverage trade at +8%!!! lol… Then I could be talking about laying low, and giving the system a break to let it pull back a little…you know, trading the equity curve.

      Anyway, thanks Lindsay!

      • 0
      • 0
      • 0 Deem this to be "Fake News"
  3. Michael

    Definitely interesting – it makes me wonder whether I abandoned one of my systems too soon that backtested great but then performed poorly a little while after I began trading it for real.

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

      Michael, something I’ve been doing with a few systems that I developed, but wasn’t confident in, is to just keep checking in on them, each month. Surprisingly, several are doing pretty well, despite not making any changes to them over the past six months. If I decide to trade them, I feel better about having 6 months or more of out-of-sample results to guide me.

      Other than that, I’m convinced that a system trader has to have some for of system health. What I’ve covered here is only the tip of the iceberg!

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

    excellant and great work

    thanks
    Bill

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

    Thanks Cuervos. That point that you highlighted has been bugging me a tad, but I think I’ve come to terms with it.

    The point is that these picks ALL have positive expectancy. So in theory, it doesn’t matter if in real-time the system went with ABC instead of XYZ (lets say that ABC was in the backtested results that it was XYZ) as long as ABC was selected following all of the rules and criteria.

    Over time, it does add some random elements into the data, which is probably a good thing, but there should be enough trades made so that the positive expectancy eventually trumps exact matching trades between historical vs. real-time.

    Does that make any sense?

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