IMO, if you want raw speed and extreme flexibility with advanced ranking features in your code, for stock-based strategies, I suggest AmiBroker.
Its Formula Language (AFL) it is very powerful but, in general, the learning curve is considered steeper than that of many of its competitors'. A big advantage is the ability to interact with other programming languages via scripting, OLE and DLLs (so it is possible to build advanced automated solutions that mix AFL, Python R, Excel/VBA, C++, etc.)
In addition to the software, you have to get your data from some reliable third-party provider that ideally allows taking in account the effect of corporate actions (stock splits, capital returns and ordinary cash dividends) and above all allows to do your backtests on a consistent universe of stocks over time - e.g., the constituents of a specific index - and therefore avoid the so-called "survivorship bias".
For USA and AU, a good one EOD source to use with AmiBroker is Norgate.