OnixS C++ B3 Binary UMDF Market Data Handler  1.4.2
API documentation
Replaying Log Files

Using Logs to Replay Market Data

Under normal flow, the Handler logs all the important aspects of its execution onto the file system. Log files also include original market data processed by the Handler. This information is usually saved for analysis of non-standard situations that may occur during the use of the Handler. However, it also can be used to reproduce standard Handler's behavior for a certain period.

Once Handler was executed with logging enabled, it was possible to use log files for further replay. First of all, logs must be backed up (copied to another location) or the Handler's configuration must be updated to use another directory for new log files because the current implementation of the Handler doesn't support replay from the same folder in which new logs are stored.

Market data replay can be done with the help of a replayLogs member. It accepts an instance of OnixS::B3::MarketData::UMDF::ReplayOptions class containing a list of logs to be replayed.

The collection of log files can be either manually assigned or fulfilled from the provided folder.

ReplayOptions replayOptions("logStore");
handler.replayLogs(replayOptions);

Alternatively, it's possible to manually define a list of log files to be replayed. Manually manipulating a list of log files allows replaying log files whose names differ from names used by the Handler.

ReplayOptions replayOptions;
replayOptions.logs.push_back("1.log");
replayOptions.logs.push_back("2.log");
replayOptions.logs.push_back("3.log");
handler.replayLogs(replayOptions);
Note
Files to be replayed must be in exact order as they were recorded by the Handler in the bounds of a single processing session.

From the listener callback perspective, there's no difference in whether the Handler processes the market from the network or log files.

Note
Currently, log replay must be run with the same set of Handler's settings which were originally used.

A sample application demonstrating Log Replay feature can be found in samples/Backtesting subfolder of a distributive library package.

Note
For more up-to-date information demonstrating Log Replay feature see Backtesting sample from the samples collection available in the distributive package.