Trading-System-API is a C++ class library that supports the simulation and deployment of automated trading and investment strategies as well as related research and development. The current 3.0 release is an important milestone as it introduces a host of new features as well as substantial architectural changes. While previous releases were primarily focused on enabling highly complex trading system simulations, this latest release introduces functionality that allows strategies to trade any number of instruments simultaneously with advanced order management functionality such as required by strategies that place and manage an arbitrary number of active orders. This change in product focus led us to change the product name from Time-Series-API to Trading-System-API.
Trading-System-API was developed with the following goals in mind:
Modern and concise class design.
Event driven architecture.
Intuitive syntax for defining trading rules and handling time series.
Robust, high performance and platform agnostic code.
Component based architecture for extending input / output capabilities.
Simple to build and deploy with few dependencies.
Trading-System-API builds on the power of the C++ language and offers intuitive semantics and class design. There are few practical limits to the type and complexity of the applications that can be implemented. This is important as the key to successful trading is the ability to develop innovative trading strategies that go beyond what the competition does. C++ is an ideal language for such undertaking as it can natively call any one of the thousands of C and C++ API's in existence today covering all domains of interest such as database connectivity, statistics, digital signal processing, neural networks, genetic algorithms, and many others.
Trading-System-API introducing a number of powerful abstractions that greatly simplify the process of working with timeseries. There is no need to use pointers or manually allocate memory. Furthermore, the library introduces outstanding order and a transaction management functionality that fits well with its event based architecture.
Trading-System-API is a 'library' and not a 'platform', which is why developers can use fully featured IDE's such as Eclipse CDT or MS-Visual Studio to benefit from advanced debugging and profiling capabilities. Trading strategies are compiled to standard executable files that are then launched on the command line, taking startup parameters in the familiar way. Applications are run in debug mode for testing and in release mode for deployment, just like any other software project. This means that the learning curve is low for experienced C++ programmer.
This approach also facilitates the modeling of trading strategies that are too complex to evaluate in a linear fashion as these can be broken into manageable steps, allowing for various methods of pre-processing and normalization with interim data storage stages between steps.
The following are some of the applications for which the library was designed: