"Human beings never think for themselves, they find it too uncomfortable. For the most part, members of our species simply repeat what they are told--and become upset if they are exposed to any different view. The characteristic human trait is not awareness but conformity...Other animals fight for territory or food; but, uniquely in the animal kingdom, human beings fight for their 'beliefs'...The reason is that beliefs guide behavior, which has evolutionary importance among human beings. But at a time when our behavior may well lead us to extinction, I see no reason to assume we have any awareness at all. We are stubborn, self-destructive conformists. Any other view of our species is just a self-congratulatory delusion." - Michael Crichton, The Lost World

Saturday, February 10, 2007

What Is A Robust Trading System?

With computer’s as powerful as they are today its easy to optimize a trading system and make it look exceptional. However, as we’ve already discussed, an optimized system is not a good system. Just simply because you're able to train your computer to have 20/20 hindsight does not mean it will perform anything like that in the future (neural networks etc.).

The primary problem with optimizing past performance is that markets change in the future. A low volatility market suddenly becomes a high volatility market. A market prone to trends becomes a choppy directionless market. A market that had high leverage has it margin changed and now it has low leverage. A regulated market suddenly becomes unregulated. The list is endless.

What tends to happen is that market X will tend to start acting like market Y and market Y will tend to start acting like market Z etc. If you have perfectly optimized the system to trade market Z then you will be in trouble when it starts to trade like market X! This is a problem with many systems, especially stock index systems that tend to be optimized to a single market or sector. In spite of their occasional awesome looking results there's a drop of poison in their mix.

Contrast the previous scenario with one in which the system has been designed to work well most all markets A thru Z. Now, it does not matter if market Z starts to act like market Y or market A starts to act like market P etc.. They can change as many times as they want because the system has been designed to be universally robust with most ALL the various markets! Once again, the market characteristics can reshuffle themselves countless times and your system is like a Swiss Army knife that has proven in historical testing it can deal well with most all of those scenarios.



There are a few tip offs to an optimized system.

  1. Unrealistically good looking performance
  2. Only trades one market or sector well
  3. Uses different rules (algorithms) for each market
  4. Uses different inputs for each market even if the rules are the same
  5. Uses different rules or inputs for initiating buys vs. sells
  6. Does not factor in realistic transaction costs (slippage & commission)
  7. Uses money management methods that don’t include market normalization (like single contract performance only)
  8. Uses static numbers for all markets like a $2000 stop or $5000 profit target (some markets could hit those in an hour and others could take weeks). This may seem to contradict #3 but it does not. Its ok if markets have different stops and targets etc. as long as they were all dynamically computed from the same algorithm and inputs (as opposed to a static predetermined number across the board).

An important feature of a robust system is that it should weight every market equally. The testing should have been done in such a way to “normalize” the difference between the markets. For example, natural gas changes an average of a few thousand dollars per day per contract, however, Eurodollars change an average of a few hundred dollars a day per contract. You need a way to balance and normalize this difference in testing.

The reason you need to do this is because what if the system meets most of the above non-optimized rules. BUT, its trading one natural gas market contract for every one Eurodollar contract? The system would look great if in the past it had a lot of natural gas winners. However, what it in the future natural gas starts to have a lot of losing trades and the Eurodollar starts to have a lot of winning trades? Do you think a number of hundred dollar winning trades in a single Eurodollar contract are going to be enough to offset a number of THOUSAND dollar losing trades in a single natural gas contract?

If your trading 20 markets its because you want diversification. However, if your trading them all on a single contract basis then your not really diversified. You might have 50% of your portfolio accounting for 90% of the profits and losses! The problem is that moving forward, you will be dependant on specific markets instead of just a certain percentage of the markets (regardless of which ones). Its far more robust not to be dependant on certain markets within the portfolio. No one market should be any more meaningful than any other one.

In summary a robust system should do the following

  1. Trade a large portfolio of markets successfully
  2. Trade that large portfolio successfully over a very long test period
  3. Use the exact same rules for every market
  4. Use the exact same input values for every market even if the rules are the same
  5. Have the exact same logic and input values for initiating both buys and sells
  6. Factors in realistic transaction costs (slippage & commissions)
  7. Be tested in a way where the markets have been normalized for risk (not single contract)
  8. Doesn't use Static preset exits for all markets IE $2000 stop or $5000 profit target for all markets, but rather dynamically computed ones.

After you have done all of this, the final step would be to do some walk-forward testing. This means, test and develop your system on data up until year 2000 (for example). Then after all the testing is done see how it would have done from year 2000 until now etc. This helps avoid a lot of the benefit of hindsight. All of these are things we have done in the development our systems.

Feel free to email or contact us with any questions or comments on this subject. dhoffman@traderstech.net

No comments: