To help you put my posts in perspective I will tell you a little about the systems I like to work on and how I prefer to trade.
Developing trading systems is just a hobby for me; I am neither a professional trader nor a professional programmer. I enjoy coding more than trading and don’t trade very much. If/when I trade, it is mostly to test some new system idea. For as long as I can remember, all the way back to my MetaStock days, I have worked with one or more partners; it motivates me to find solutions, offers stimulating discussions, and facilitates problem solving. There is a definite benefit to working as a team; diversified skills and views stimulate innovation and facilitate problem solving, I highly recommend it.
Over the years my approach to system design has changed many times; this year I worked on short-term systems with trades lasting 1-2 bars. I prefer systems that work in all timeframes, from daily bars down to about 3-minute bars.
I am a contrarian trader: I always design systems that trade against price movement. This allows me to use LMT orders exclusively, which are waiting at the market when the signal triggers. This eliminates slippage, an important factor to control in high-frequency trading. Another reason for trading LMT orders is that this is the best and perhaps the only way to obtain a close match between Backtested and Real-Trading results. I may exit on a Profit Target or Pattern Failure but never on Maximum Loss Stop. If maximum loss stops are needed, I feel that my trading system isn’t working right, requiring me to go back to the drawing board. I believe that, if you can design an entry rule, you should be able to design an exit rule.
I prefer trading portfolios or scanning the market. If you can develop a system that trades a pattern giving you nice performance but producing only 3% annual profits with 3% exposure, you may be able to increase performance 20-fold or more by scanning the market. This is where real-time trade automation gives you the edge.
In brief, here are some typical patterns that I have looked at:
1. Rare events that usually result in a correction. This would include sudden extreme price movements (for example, a spike with volume). In the daily chart capture shown below, I would aim to buy on the retrace from the low, and exit on a target or pattern failure.
2. Two- to three-bar patterns that are usually followed by a correction. This would be a slower version of the above; for example, a price move over 1 to 3 1-minute bars that retraces over a longer period. Here I would try to design the system to go Short when the pattern reverses after the long bar, and take a profit a few bars later. Long bars are worth a bit study…
3. Use one of the popular band indicators and trade at saturation levels, i.e., buy when the price touches the bottom band and sell when it touches the upper band. The chart pattern below is an example using Percent bands (Minutes). Here I would try to design the system to go Short where the High crosses the Upper Band and take a profit a few bars later.
I prefer very simple trading rules that can be coded with a few lines of code and that do not contain any optimizable parameters. Of course, even though the trading rules may be simple, this doesn’t mean the final code is simple. By the time that real-time and automation features have been added, the code can easily run into hundreds of lines of code.
Manually trading a real-time stock portfolio is serious work and can be stressful. I am retired, so I am averse to serious work, stress, or drawdowns. For me to trade a system, it must meet these criteria:
– Trade a portfolio of stocks.
– Run fully automated and unattended.
– Return at least 100%/year.
– Perform equally well Long or Short.
– Have drawdowns of less than 2%.
– Trade only Intraday without overnight positions.
I haven’t reached these goals yet, so I keep coding :-) Difficulties in meeting these criteria appear mostly due to automation problems and not so much to problems in system design. Trading fast trend-insensitive systems, eliminates or mitigates the need to follow the markets and gives me more time to develop systems, work on the UKB, or do other things.
The AmiBroker/IBc combo offers all the essential functions to implement a true trading machine, i.e., a fully automated trading system that runs unattended in the corner your office.
Herman van den Bergen (retired from trading January 31, 2012)
Edited by Al Venosa