How a backtesting engine works
Put simply, a backtesting engine iterates over historical prices (and other data), passes the current values to your algorithm, receives orders in return, and keeps track of the resulting positions and their value.
In practice, there are numerous requirements for creating a realistic and robust simulation of the ML4T workflow that was depicted in Figure 8.1 at the beginning of this chapter. The difference between vectorized and event-driven approaches illustrates how the faithful reproduction of the actual trading environment adds significant complexity.
Vectorized versus event-driven backtesting
A vectorized backtest is the most basic way to evaluate a strategy. It simply multiplies a signal vector that represents the target position size with a vector of returns for the investment horizon to compute the period performance.
Let's illustrate the vectorized approach using the daily return predictions that we created using ridge...