template<typename
Portfolio, typename Strat, typename Streamer>
class tzu::BasicRunner< Portfolio, Strat, Streamer >
BasicRunner takes a strategy, a portfolio and a streamer as template parameters, and allows the user to initialize them with custom parameters. The strategy is responsible for generating trading signals based on the data provided by the streamer, while the portfolio updates its state based on the signals generated by the strategy. The streamer is responsible for providing the data to the strategy. The runner iterates through the data provided by the streamer, updates the strategy with each data point, and updates the portfolio based on the signals generated by the strategy. The runner can also print the portfolio state after each update if the verbose flag is set to true.