We are pleased to announce the launch of completely redesigned SmartQuant Framework and OpenQuant 2014 IDE.
The SmartQuant framework has been re-designed and re-programmed from scratch. There can be many frameworks running in parallel within one application on the same computer.
The framework (API) is open to the end user. You can use it to create your own trading applications in Microsoft Visual Studio. See a screenshot of such demo application below (MS Visual Studio solution with full source code is included in the OpenQuant 2014 installation)
A new architecture based on the event bus concept is the core of the new framework. This new architecture allows us to efficiently utilize multithreading, caching, balance workload and construct distributed trading applications.
You can control the event flow in the EventManager component. You can start, stop, pause or step to the next event with specific type. You can also set breakpoints in order to pause the event flow at specific points in time.
Simulation speed has been increased dramatically. Parallel strategy optimization can now be done in several ways, either by running several isolated framework instances simultaneously or by distributing simulator events to several frameworks connected via event bus.
Thanks to the event bus and event pipes concept, dynamic market data subscriptions during simulations are possible now. This was not possible before. This feature open doors to a large subset of strategies, such as automatic futures rollovers, option chains, dynamic portfolio allocation and rebalancing, etc.
Multiple providers are supported. Providers call strategy event handlers from the same thread. Actually all strategy event handlers are called from the same thread now and this resolves a great number of conflicts that OpenQuant users had before, especially in the real time mode or while using/developing their own custom providers.
Framework clock can rely on computer hardware and trigger timers (remainders) with nanosecond precision.
Data base engine has been rewritten from scratch. Multiple clients accessing data file on the local host or via network are now supported through the data file server service (QuantFileServer). Insert and delete operations are much faster now. The data engine can store any named objects, such as instruments or portfolios, which are stored now in the data file instead of slow MS Access database.
Thanks to the QuantFileServer, several OpenQuant applications can be launched simultaneously on the same computer under the same user account.
News and Fundamentals can be used in strategy simulations.
Execution layer has been rewritten from scratch. Instead of slow FIX messages the new OpenQuant uses fast and compact execution messages, which have a set of standard predefined fields, but can also have a set of user defined fields. This significantly speeds up simulations and minimizes memory consumption, so that now OpenQuant is able to simulate millions of orders in pretty reasonable time.
Execution messages are two-way messages now (from and to a broker). They are either execution commands or execution reports, so that it's possible now to keep and track the entire step by step execution history associated with an order.
Hierarchies of strategies and portfolios become possible. A strategy can have child strategies and a portfolio can have a parent portfolio. There is no need for a special metastaregy class any longer - every strategy can be a metastrategy and you can build trees of strategies of different types. For example this means that now it's possible to see not only aggregated, but also per instrument portfolio and performance statistics for OpenQuant InstrumentStrategy.
OpenQuant 2014 solutions are normal Microsoft Visual Studio solutions, which can be opened, compiled, debugged and executed in Visual Studio.
There are several strategy types built into framework. Strategies derived from the base Strategy class receive events for all instruments, while InstrumentStrategy creates an instance per instrument internally. ComponentStrategy works with Signals propagating through a set of strategy components such as DataComponent, AlphaComponent, RiskComponent, PositionComponent, ExecutionComponent, ReportComponent.
New class of Sell Side Strategies allows to support truly synthetic instruments (pairs, spreads, baskets, etc.), which are seen as normal instruments to the rest of framework and to Buy Side Strategies; to implement a variety of broker side strategies, such as algorithmic orders, automatic rollovers, etc.
A completely new strategy logging and monitoring system has been designed and developed.
Documentation (work in progress)
Introduction to OpenQuant 2014 for OpenQuant Users
Developing Algo Trading Applications with SmartQuant Framework
Developing Algo Trading Strategies with SmartQuant Framework
OpenQuant 2014 Frequently Asked Questions