Even after successfully designing and constructing a working trading system, a trader may find that his or her system is imperfect. There may be some problems, such as an event that keeps generating losses; or maybe the rules are too broad and need to be optimized. What's the easiest way to fix the problem? How effective is optimization? This section will show you how to troubleshoot and optimize your trading system to maximize profits and minimize losses.
Troubleshooting is a very important aspect of system development. A decent trading system will be profitable in most market conditions, but if it occasionally renders large losses, you can work to identify and solve the problem. Here are four easy steps:
1. Identify the problem - Find all instances in which the problem occurred during your backtesting, and/or start recording when the problem occurs during live trading. During each instance, take note of any tendencies of the following four factors:
- Chart pattern or price series - Spike in the prices.
- Volume - Large volume initially and low volume thereafter.
- Bid/Ask spread - Spike in price on low volume often indicates a large spread.
- Margin (if used).
2. Evaluate the problem - Use the information you gathered to determine what exactly caused the system to malfunction or to generate a loss. This is often done by using common sense, or by analyzing transaction logs (provided by your broker). Here are examples of how some conditions of the four factors listed above may be the reason for an identified problem:
- Chart pattern or price series - The system is unable to sell during sharp declines or buy during steep climbs. Perhaps the system did not have ample time to buy or sell.
- Volume - The system is unable to sell during declines or buy during increases. Perhaps the equity has such a low trading volume that the system is unable to buy or sell at one price. During these instances, the price can be misleading without a consideration of volume and bid/ask.
- Bid/Ask spread - The system makes a purchase but doesn't profit as much as it should when selling. This could be due to the fact that the trader forgot to consider bid/ask spreads. If a system is programmed to buy and sell at the "current price" it actually pays the ask, and when sold, it doesn't sell at current price but at the bid price. Sometimes the differences between the bid and ask can be large, leading to undesired losses.
- Margin - The system suddenly sells for no apparent reason. If this occurs, you may have forgotten to consider margin calls.
3. Consider the alternatives - Simply try some solutions to the problems you have identified. Consider the following alternatives corresponding to the above problems.
- Chart pattern or price series - One alternative is simply to tell the system to wait until the price stabilizes before buying. This can be done by using the differences between the previous prices and the current price to create a rule.
- Volume - To solve this problem, you could create a rule that requires the equity to have a certain amount of volume before executing a trade.
- Bid/Ask spread - Here you might want to buy and sell based on the bid and ask prices instead of the current price.
- Margin - Using margin can be profitable if risk is managed effectively. Limiting downside should keep you from receiving margin calls. This can be done with trailing stop loss points or other similar tactics to limit downside.
4. Implement a solution - Finally, we need to apply the solution and see how it works. Paper trading or back testing again before live trading is often a good idea after applying a solution because sometimes solutions have unintended consequences. For example, additional rules may limit these down days, but also decrease overall profits (due to missed opportunities).
Optimization simply means finding the best sets of parameters for a given market. This process can marginally improve results. However, it also carries many risks because its underlying assumption is that past performance is indicative of future price movements. Optimization can be accomplished by changing the values of the parameter you would like to optimize and then back testing these changes. Keep in mind the other parameters must remain constant for the effects of the changes to be determined. Once you find the value that yields the highest performance in the back testing, implement it into the trading system.
Let's consider an example. Say a trader analyzed the S&P 500 and found that he or she could optimize the system by using a daily chart. This same process can also be taken to a higher degree. For example, if a simple moving average of 6 works better than 8 for an MA-crossover strategy in a given market, then 6 would be used. The problem here is not only in the assumption, but also in the fact that the system may perform worse in many other markets, thereby making it less universal.
Many system developers forgo the optimization stage for these two reasons:
- Optimization often overstates results. This is because the parameters are so specific and non-universal that any change in the market (that is, the future) can cause instability.
- In many cases, optimization will not improve performance by a meaningful degree. Slight improvements may be apparent; however, the forfeiture of universality is a high price to pay.
As a general rule, optimization should only define broad settings for parameters rather than set up specific rules - even if it was successful in backtesting and paper trading.
Troubleshooting is crucial to making your system work the way you want it to. It is important to identify any problems by observing the instances in which they occurred and then evaluating how certain conditions of several factors - such as price pattern, volume, bid/ask spread, and margin - may have caused the problem.
Optimization can improve your results, but it is important to remember that it has its limitations. Not only is it based on the assumption that past performance indicates the future, but it is not the stage at which the trader creates specific rules - optimization is only about defining broad settings. In the next and final installment, we will provide an overview of everything we've covered along with some advice and resources to help you gain a working knowledge of trading system design and development.
Next: Trading Systems: Conclusion »
Table of Contents
comments powered by Disqus