If you know how to use math modeling software like R or Matlab, or a more general-purpose programming languages like Python / Java / C++ - you can write your own back-testing logic.

You just need some programming experience and data. You can download historical data form Yahoo! Finance or Google Finance, or Interactive Brokers.