Backtesting with AmiBroker vs ProRealTime


So I finally bit the bullet and bought AmiBroker, which is comprehensive stand-alone software for charting and – more importantly for me -backtesting technical buy/sell systems.

Up until now I’ve been using‘s free Java-based charting software. The end-of-day data version is free, but their realtime intraday version is subscription based. It’s really nice considering the price, and allows you to program stock screeners and do limited backtesting using a BASIC-like scripting language. Other than being a little buggy sometimes, it’s a pleasure to use.

The major drawback to it is that you can’t backtest your trading systems across an entire universe of ticker symbols. You can only do one ticker at a time. So to get a decent overview of your system, you have to individually test each stock, record the results in a spreadsheet, and then add or average things up to get a sense of how one system might compare to another. But even testing 30-40 stocks can be quite laborious, especially if you’re also tweaking parameters in your system.

Enter AmiBroker. While there are web/cloud-based backtesting platforms available, those are mostly subscription-based. AmiBroker is the only software I know of that is standalone, will test a large batch of stocks at once, and costs a one-time fee. It’s not cheap ($279 at this writing) but I finally decided it was worth the ‘investment’.

I’m a Mac guy, so the fact that it’s PC-only is a drag. I had contemplated running it on a Windows virtual machine on my Mac, but fortunately my kids got a new Windows laptop for Christmas, and I’ve inherited their old one. So I’ve installed AmiBroker and am slowly getting the hang of it. It’s complicated, but having already learned ProRealTime, I’ve got a head start. Note the two platforms are unrelated except that they’re both charting software.

Tonight I was able to translate one of my systems from ProRealTime into AmiBroker’s scripting language, and for the first time ever was able to run a test over a large group of stocks (thousands) and over an extended period of time (Jan 1 2000 to the present). I picked my most winning-est system to test. And the results?

Kinda pathetic.

Why does the system look so good when picking supposedly random stocks on ProRealTime, but look so bad when using AmiBroker? No friggin’ idea. A little depressing, but I guess there’s room for improvement before I invest more money with that particular system.

P.S. The way the two platforms are configured, I will probably continue to use both of them. I’ll use PRT for checking my latest trade data and possibly screening, and AmiBroker for the actual backtesting. We’ll see if that changes going forward.

UPDATE 01/07/15: One thing I’ve found is that the free downloadable EOD data from yahoo finance has a few errors in it. Every once in awhile I lose my shirt or become an instant paper-millionaire due to glitches in the data. I’ve gotten into the habit of a) checking the best and worst trades of a backtest to make sure they don’t look suspicious, and b) not refreshing my data very often.

Wait, what? Not refresh the data?! Yes, really. If I’m testing 15 years of data, does it matter if my end date is 12/27/14 vs 01/07/15? No I don’t think so. And I’m not currently using AmiBroker as screener, so fresh data is not worth the hassle of cleaning it.

Also, AmiBroker allows your backtests to look into the future, which is a bad thing. And it’s quite easy to do it in a subtle way too, like for example accidentally using the Close price as a signal while buying on the Open price of the same day. So it’s important after designing a backtest system that you check to make sure the buy and sell prices are exactly what you expected them to be, and occur on the days your system indicates precisely. While there is a function to test for crystal-ball-reading, it’s not automatic.

EXAM sold at >10% profit (swing trade)

Screen Shot 2014-12-26 at 1.05.45 PM
“Days in market” is a rough calculation of trading days, based on the difference of the calendar trade dates multiplied by 5/7. So it’s approximate.


So this morning I sold ExamWorks Group Inc (EXAM) for a 10.71% profit after deducting commissions. This was using a swing-trade system I came up with using Bollinger Bands. I’ve since deprecated the system because I have other ones that seem to backtest a little better. The limited amount of forward-testing I’ve done with this system has yielded three wins, four losses, and three “paper trades” still in play. Unlike the paper trading however, I back up my technically-based stock picks with fundamental research. Just because a stock gives me a signal doesn’t mean I’m going to pick a likely loser.

One “problem” I’ve run into is that since I started trading with my eyes open (so to speak) back in October, I’ve sold four stocks, all at a profit. I have yet to have anything stop out at a loss! Am I a naturally-gifted trader with amazing innate talent? No of course not. It’s just a good time to be trading at the moment, and I’ve been mostly lucky, and very careful.

So I predict that EXAM will go higher, since they were recently added to the S&P Small Cap 600 and seem generally be strong. But what do I know? Anyway, my rules say “sell” so I sold, and I would be foolish to convert a swing trade into a long-term trade.

I’ll discuss my Bollinger Band swing-trade technique in a future post, and also why I don’t think it’s a good plan anymore.

Disclaimer: I don’t know what I’m talking about. Don’t follow my advice.


The Single Most Important Book (So Far)

As you may have read in my “Me, Me, Me” page, I got started as an active trader by reading this book. And while it’s an amusing and interesting story, the ATA (Actual Trading Advice) is pretty slim. So it was something of a fluffy, puffy book for me.

Not satisfied, I went looking further. I was heading to Hawaii for a vacation – no, NOT earned with all my stock market winnings. I wanted some ebooks for the plane etc, and found a positive gem.

It’s called The Honest Guide to Stock Trading, by Llewelyn James. I got lucky with a really great book at the beginning of my journey, because there are some real dogs out there. Llewelyn does a really great job of explaining not just how to trade, but loss management, portfolio management, position-sizing etc. It’s like a shot of tequila…distilled down to its raw, unfiltered state.

I also like that he insists on testing everything. I’m a huge skeptic when I come across technical traders who read charts like tea leaves and horoscopes. “This one looks like a cup-and-saucer. This one looks like a double-bottom. This one looks like a girlfriend I had back in February of last year…” But not Llewelyn. He gets his robot-ninja chart-crunching software out and smacks the heck out of those charts, until money drips out.

But he’s very clear: the money drips and sometimes runs dry. It doesn’t pour out like some charlatans claim. In short, he speaks to my “prove it to me” nature.

Without hesitation I recommend his book. His other one is good too, but start here. Oh and he has a blog too (here).

Stock Trading “System” Scams

Screen Shot 2014-12-21 at 1.54.35 PM

As I was doing some deep research last night, I was reminded that everyone is out to make a buck/euro/yen. Nothing wrong with that. But there are a lot of trading scams aimed at the unwary. There are some honest-but-high-priced “systems” out there too, with claims ranging from unlikely to outlandish.

As a professional photographer by day, I’m all too familiar with people trying to sell me a system guaranteed to make me more money. One thing I learned early on though is to ask yourself a simple question: if these people are making tons of money with their systems, why are they wasting their time selling them to other people?

I think the exception might be the few – very few – people who are genuinely trying to help others learn trade more successfully. The same is true for authors who write about trading the markets. Ask yourself, why’d they write this book? Authors don’t usually make a lot of money, at least compared to successful traders.

If I had a brilliant system to make millions in the stock market, I’d either be too busy to sell it to others, or sunning myself on an island somewhere (thus still too busy to sell it to someone else). And if I did decide I wanted to share it, I wouldn’t want my get-rich-quick system to become general knowledge. The effectiveness would eventually disappear and I’d be forced to write books or something for a living. No, I would share it with a few friends or perhaps become a private mentor to a select few. But I wouldn’t sell it to the masses.

So next time you’re frustrated with your trading and want a quick way to start having success, look very hard at websites or people offering you an easy ride for a fee. The fact that they have to sell it makes you wonder how they really make their money. Which speaks directly to the effectiveness of their “system”.

Profit Taken

Screen Shot 2014-12-19 at 8.41.20 AM

In yesterday’s post, my INSY position had exceeded my profit target by a goodly amount, and I was trying to decide if I should sell according to the rules of the system I have in place. The stock is heavily shorted and looked to go higher on a “short squeeze”, so I thought I might be leaving money on the table if I sold.

So this morning I got up, and the bid/ask prices were well above my target price. So I put in a sell with a hard stop slightly over my target, at $45.98. The price briefly dipped below that and my shares were sold at market, or $45.78. Deducting commission I made over 15% on my trade, in 16 trading days. And it outperformed the S&P 500 by 17% during that time. A nice little swing trade.

I’ll revisit this trade in a month or so to see if the short squeeze played out, and if I should have taken a different approach to my stops.