I recently found a cool open source project http://lean.quantconnect.com which I started using for a trading algorithm I am making now based on mean reversion – buy low sell high.
For testing purposes I made a rough GTK# client in Mono on Linux and it works really well. Monodevelop has really come a long way since I started using it years ago. Very good debugger.
Anyway, the LEAN engine is very nice and fast. Of course the algorithm you have to make on your own. Profits do not come easily in this game it seems 🙂
Right now I am paper trading live with Interactive Brokers and I find new bugs every day. There are a lot of small things you need to consider, like partial fills, updating non-filled orders, correlations between symbols, market regimes, risk management and position sizing.
However, it is very exciting and I get new ideas on what to build into the program continously.