ThinkorSwim application of TD Ameritrade has a Think Back function where you can go back in time and test how you would have done as far as share prices and options prices go. You can do it by ticker. It is not a complicated algorithm though. I use it to manually, to test my actual options trades. Use it too to simulate trades I would have gotten into using my trading system to add to my backtest since, I am dealing with a limited sample of trades. Of course, after about 6 months, of actual trade results, I should know if the backtest confirms my expected results.
One of the better software in my opinion to backtest a strategy is with Multicharts whether you are discretionary of an automated trader. If you are a programmer, their programming language Powerlanguage is very efficient and has the ability to backtest multiple portfolios combined. Demo: https://optimusfutures.com/Platforms/MultiCharts.php
Amibroker or Amibroker/Excel. Sometimes it’s easier to export results from an exploration in Amibroker and crunch some statistics/make a chart with Excel. I dabbled with python a bit but since I trade EOD charts and work full time, learning to code a backtest/portfolio backtester/rotational backtester/walk forward optimization/optimizer is just way too much to take on. I find debugging my code/ideas enough of a challenge at times so debugging a backtester just seems like a waste of time for my needs. Also provides some very easily customizable charts , ways to import/export data, verify data, etc. If you know how to code though you can really make it work. AFL can be very simple and easy or take on complex tasks if needed.
Let me qualify: with a *very* limited strategy pool (<12) and most with EOD triggers. {Translation: minimal algo/data/hardware requirements.}
MotiveWave has full strategy backtesting features and a free Java SDK for programming your own custom strategies.