Backtesting engine described in the QuantStart blog.
I copied the original code snippets on blog posts (I didn't have access to the complete source). It didn't work completely after copying the code, I had to update a few things here and there.
As of this writing, the code is 95% from the blog posts and written by the blog owner (Michael Halls-Moore). There's no usage policy (and the blog posts have been up for more than 2 years) so I've copied it here.
There are four objects that interact with each other via event objects (of which there are four types).