Tools of the trade(r): Amibroker
If you are designing a trading system, it is crucial that you adequately test your ideas. Now, backtesting trading systems is fraught with danger. Curve fitting, systems that can’t actually be traded in real life, ignoring frictional costs, you name it, I’ve done it. But that is another topic for another post. Even though there are problems to be avoided, you’ll still need to backtest.
Platforms to backtest come in many shapes and sizes, but most of them have a common characteristic: they are insanely expensive. In spite of the cost, most have huge gaps in their capabilities. In particular, many are deficient at the portfolio level and instead assume you are trading a few specific equities rather than screening the broader market day by day.
Amibroker overcomes all these issues for the technical trader (not so much for the fundamental trader). It is both feature rich and affordable. I have spent quite literally thousands of hours developing my trading style and specific system, and most of that time was logged on Amibroker. If you want to focus on individual charts, it is feature rich. If you want to do portfolio testing, it is feature rich. I have encountered very few goods or services in my life of any sort that were such a remarkable value.
Now, I will hasten to add that Amibroker does have some flaws. However, the rich scripting language (AFL) has allowed me to overcome pretty much all the problems I’ve encountered in the generic features. For instance, I’m not a fan of the default stops (loss, profit, time, etc.), but have implemented my own using AFL. You can even turn off the default backtester itself and programmatically control the individual buy/sell decisions. Thus, I was able to create a system that includes both shorts and longs with separate max open positions for each. So the flaws, though real, tend to be surmountable and do not detract from the value of Amibroker.