Perhaps my experience will be helpful. I built a special purpose application in PHP which I ran on my workstation and on the server that hosts my web sites. The application was devoted to back-testing the trading of index options credit spreads and forming Iron Condors. I used a unique metric for my trading rules only available in ThinkOrSwim so I obtained my data from their ThinkBack application. It was very tedious as I had to manually download data for every day in my sample into CSV files for every index I was testing. In addition to bid and ask and the unique metric, I added volume and open interest. In that way the software would know that a trade could not be accomplished if the volume for that day was zero. They have 19 items in their menu. I'd be happy to answer any questions to assist you in the design of the back-testing engine or the acquisition of data from ToS.