Does anyone know if there exists an Open Source (preferably) program that will take raw Nasdaq LII historical quote data (probably millions of records per day per symbol) and act as a realtime quote and matching engine (as if were the real thing with cancels and all) that can take simulated orders during simulations? A historical data "replay" version of TotalView Book Viewer that can also take orders: https://data.nasdaq.com/BookViewer.aspx
tradelink can do this. look at the replay application which will take a historical quote feed (l1 or l2) and allow you to do full simulations against it, including matching against (and canceling) non-historical orders.... with full cancel/order/fill acks, etc. this is probably not exactly how you want it but should be easily adaptable. tradelink.org or google tradelink
there is a tikconverter application which shows how to import tick and bar data from 10+ different historical formats. there are ~17 or so different connectors that show how to import from various live broker feeds (which can then be recorded via Record/ASP/etc).
All Nasdaq has to do is make this available in source form, and turn it into a simulated matching engine with C++ or C# API, and presto! https://data.nasdaq.com/MRL.aspx
Nice! OK I have to look into it. Just to make sure, is it just a replay engine, or is it also a simulation matching engine that can build the LII TotalView Book, and that can take orders that never occurred but I am sending into the engine at simulation-time and give me fills, allow cancels etc?
tradelink is built out of a bunch of components to build strategies and trading applications called the appkit all the off-the-shelf applications are built using the kit. replay uses tradelink's historical simulator component, and then adds the ability to insert (and match against) other orders submitted while the simulator is running. but as mentioned you can mix and match these components to make it work the way you desire.