Here at Share Wealth Systems we take great pride in the development and implementation of robust mechanical trading and investing strategies. I am continually asked about the development and design of these strategies, and I have written many posts and articles about the topic and done many presentations to audiences, 3rd party associations and organisations. This week, I thought I would share with you some information from Dr Brett Steenbarger, a US based psychologist, trader coach, and author of several trading related books, including The Psychology of Trading. In the article Brett highlights many of the same points that we adhere to in the development of our trading strategies.
“To understand how to build a robust mechanical strategy it is important to understand what a robust mechanical strategy is. A mechanical strategy is simply a quantified decision stream that determines position size, entries, exits and stops all in a completely hands off fashion. For a mechanical strategy to be robust, it must capitalize on a “trading edge”. This can be anything from a statistical edge (trending) to an execution edge (arbitrage). Furthermore, this strategy must hold up over an extensive period of trades historically (at least several hundred) and must hold up in future trading (which can be simulated).
A mechanical system has several advantages that discretionary traders do not, such as the ability to perform quantitative and data mining analysis quickly and over extended historical periods. Additionally, mechanical systems can alleviate some of the emotional distress that accompanies discretionary trading – particularly among new traders.
To design any mechanical strategy it is important to consider three things before anything else: 1) your objective for that system, 2) your market, 3) your timeframe. Once you have determined this, it is easy to find your essential methodology because there are only 4 ways to trade any market: 1) trend trading, 2) momentum trading, 3) reversion to the mean trading, 4) and fundamental trading. Once you have determined your objective, market, timeframe and method you are ready to attempt to put together your first strategy. Many of you are probably thinking at this point, “what if I don’t know any of that stuff?”
The very best way for the inexperienced trader to build a new system is to test ideas. This can be done in two ways – visually or programmatically. For someone without extensive programming experience, the best would be to start with what I call “candle by candle” back testing. This is performed by taking an idea (such as a moving average crossover) and testing it with historical data on the given market and time frame by moving your charts forward from the past into the future and trading the way the system would – without future knowledge of the markets.”
Bar-by-bar with charting software is exactly how I first started my testing of trading ideas in 1990. Every time that I made a modification to a concept the bar-by-bar testing had to start from scratch again!
“After doing this for some time, I felt that there had to be a more effective way to test ideas. And there is – programmatic testing. Programmatic testing again can be very easy – a simple moving average cross is a simple thing to program in nearly any programming language. However, the difficulties that can destroy the beginning programmatic trader are nearly endless. Many popular trading packages do not trace your equity position tick by tick, rather it is tracked bar by bar (and if you’re trading daily bars you can imagine the problems). Also, ideas that I had tested extensively by hand sometimes were difficult to program. I have had so many experiences where I miscoded a critical concept (even by a slight degree) and this ended up giving drastically different results than my hand testing. Without the knowledge that it was the code that was incorrect, I might have falsely dismissed many trading ideas that were in fact valid.
Additionally, at this level of programmatic trading it is very important to consider factors of minimizing inputs (degrees of freedom) and utilizing flexible inputs. An example of this would be to utilize a 3 ATR stop instead of a 60 pip stop so that as the prices and volatility of the market fluctuate your stop is not being taken out because of random noise. Other ways that you can improve the robustness of your strategy include utilizing realistic fills and commissions and ensuring that your limit orders would have actually been filled (this is not as easy to test in some software as it should be).
Optimization is another useful tool to consider at this point in your strategy testing career. This is a powerful but two edged sword. Utilization of genetic algorithms and similar “hill climbing” techniques are a common way to ensure that your optimization does not give you a single point anomaly, but rather that there are similar input values surrounding your inputs that give similar equity graphs. Walk forward testing is another useful tool that can help you achieve realistic results and see for yourself whether a strategy would have been successful on data that was not optimized (similar to the future).
Going further into programmatic trading, after having experienced many pitfalls, I feel that I ought to be able to test more than one idea at a time. In fact, ideally I would like to test many ideas, over multiple time frames and multiple markets. Right now this is the work that I am involved in designing and I feel that this will help me analyze the markets with the speed and precision that will take my trading to the next level. This is the arena of the best strategy designers, where statistical data mining, market analysis, timeframe analysis, technical analysis, fundamental analysis, and money management are combined with realistic evolutionary testing into a single package.”
At Share Wealth Systems we have also included exploratory simulation and the analysis of the outputs of these simulations to determine the best and boundary position sizes to use depending on starting capital, brokerage rates and time available to manage multiple simultaneously open positions.
“As you can see, advanced programmatic testing and trading is a complex arena. I myself am still learning and by no means consider myself an expert. The good news is that successful robust mechanical strategy creation and implementation can be done in as simple or as complex a manner as you choose. After all, the very simple strategies tested and/or designed with candle by candle backtesting are still a cornerstone of my trading methodology.”
I trust that this provides an insight into what is involved in designing and researching mechanical strategies such as SPA3 and Intelledgence.