The difference with the aforementioned NinjaTrader (without having used the platform) as presented above is that backtrader is more like a construction kit.
You decide which things you plug in. If you want the
SharpeRatio you can plug it in and then retrieve it. If you don't need it, there is no need to calculate it.
TradeAnalyzer (for the Total # of trades from above) and you get it.
You can even print out the results (or store them in a file) if you also plug a
Writer (Documentation). The implementation is rather generic, but nothing forbids having a specialized implementation which produces for example
Analyzers support also instantiating
Indicator objects and other
Analyzer objects in either
__start__, to make it easy to create your own
Analyzer (by simply putting together some analyzers)
An example using children
Analyzer instances is the PyFolio Analyzer