It may be more fruitful if you provide some information about what kind of "strategies" you plan to backtest. Securities/futures, options, intraday, longterm, etc -- depending on your requirement, most available options will be a poor fit. With the "requirement of free", you may have slim pickings . If you are long term only, then there may be some free stuff that could be useful to you. If you have ThinkOrSwim, you can use their "ThinkBack" if EOD is adequate, else you can use their "OnDemand" which has worked from time to time.
Ah! Then if you have TOS, you may wish to augment your Backtesting desire by using charts with some ThinkScript code where rqd. -- If you can code in thinkscript, you can collect/report the information you want. Also, the following may be of some interest: "https://www.portfoliovisualizer.com/examples" Hopefully others will chime in as well.
Quantopian and Quantconnect seem to get a some traction. Believe their both python based, one might also support C#. Never tried them myself but believe the nice thing is they’re supporting and handling the data which is a nice feature. For something as simple as MA on stocks, Excel is all you need(not very scalable) but simple. Just get some data from Quandl or Yahoo or wherever and off to the races.
Ninja Trader is free to demo and back test. Comes with free end of day data for stocks, Forex, and futures. Only cost when live trading.
Quantconnect, quantpian, cloudquant, arcadetrade ..... Backtest local: Ninjatrader, BackTrader .... But i prefere quantconnect
Tradingview has a pretty decent backtesting capability, although I would only use it for preliminary tests. You can only do one stock/futures/FX at a time. It has it's own scripting language so you can do some pretty complex stuff.