I use c# on visual studio to get data from ib and program algorithm for back testing myself
Before you start to write your own software, check out Confidant. It's only on iPad, but it allows you to run custom backtests, without any programming. It also allows you to save and follow backtests that you like (in the form of systems) and view their daily performance collectively in a portfolio.