6.4 Evaluation Summary
7.1.1 Computational Simulation Environment for AT (ATRADE Platform)
investigated the design, implementation and testing of an experimental algorithmic trading Environment able to support a variety of AT strategies. The outcome of the study consists of a set of distributed, multi- threaded, event-driven, real-time, Linux services communicating with each other via an asynchronous messaging system. The Environment allows multi-user real and virtual trading. It provides a proprietary framework to support development of algorithmic trading models and strategies. It allows an advanced trading-signal generation and analysis in near real-time, with use of statistical and technical analysis as well as data mining methods. It provides data aggregation functionalities to process and store market data feeds.
The ATRADE Environment allows users to conduct experiments virtually or to trade with real funds, with use of a Software Development Kit (SDK) that provides access to a set of programmatic and graphical interfaces for both algorithmic and manual trading. To provide such capability the author has designed sets of frameworks, templates and functionalities for AT strategy implementation, includ- ing the price/order/account/position retrieval, the pre/post-trade analytics, the trade execution and the risk/money management.
The following server-side services were experimented with and thoroughly tested for signs of instability: the Connectivity Engine, the Internal Communication Bus, the Order Management Engine, the Pro- cessing Engine, and the Aggregation Engine. The elements were responsible for the connection to the external brokers, internal communication between the elements, data processing and aggregation of the market feeds and real & virtual trading. ATRADE has shown to be fully capable of supporting research
7.1. Conclusions 126
in algorithmic trading.
All the three clients: the Developer Client (SDK), the User Client (GUI) and the Statistics Client, together with their sub-modules: the Strategy Templates and the Buffering & Synchronization functionalities were implemented and provided to the users. Further work needs to be carried out on the graphical designs of the clients and the ways to simplify human interaction with the clients. Further work needs to be also invested into the charting and reporting capabilities of the clients, for research visualisation.
A set of technologies was introduced and considered for experimentation as part of the Environ- ment. These were: QuickFIX/J (http://www.quickfixj.org/), Apache ActiveMQ (http://activemq.apache.org/), Apache Camel (http://camel.apache.org/), Apache Derby (http://db.apache.org/derby/), Apache HTTP Server (http://httpd.apache.org/), Apache Tomcat (http://tomcat.apache.org/), Apache ServiceMix (http://servicemix. apache.org/), Apache Hadoop (http://hadoop.apache.org/), Esper (http://esper.codehaus.org/), Hibernate (http://www.hibernate.org/), Enterprise MySQL (http://www.mysql.com/products/enterprise/), Spring Frame- work (http://www.springsource.org/) and many other, less significant technologies. Majority of the tech- nologies have shown to be suitable to support the Environment.
To support external and internal communication of the Environment the author has chosen the QuickFIX/J and ActiveMQ technologies. The experiment has shown that these technologies are able to support event-communication of the Environment with no interruptions, for long periods of time, and without any major problems. The two technologies can be monitored either with JMX (http://www.oracle.com/technetwork/java/javase/tech/
javamanagement-140525.html), web-console or logging services. This greatly simplified statistical experi- mentation with event throughput.
The Apache HTTP and Apache Tomcat Servers were a good selection of containers providing web- access for the User Client (GUI) and Statistics Clients of the Environment. Together with WordPress (http://wordpress.org/), a content management system, the technologies provided users with access to the Environment’s website with documentation, libraries, examples and a support forum. Furthermore the technologies are highly configurable, and their support for a variety of external modules allowed integra- tion with e.g., JAAS (http://docs.oracle.com/javase/7/docs/technotes/guides/security/jaas/JAASRefGuide.html) functionality for authentication and authorization between different elements of the Environment.
The results have also shown that utilization of Enterprise MySQL, Apache Derby and Hibernate tech- nologies was justified, however Hadoop-based technologies has shown a more optimal solution for ag- gregation functionalities. The freely available Enterprise MySQL database was utilized in the first itera- tion of the experiment as the main engine behind the aggregation module and provided all the expected capabilities. The last iteration of the experiment used Hadoop-based cluster storage engine that enabled
7.1. Conclusions 127
not only aggregation but also collocation of computation with data. As for the buffering functionalities, the Apache Derby and the HSQLDB (http://hsqldb.org/) in-memory databases were the most mature so- lutions at the time. The Apache Derby database has shown to be more stable and therefore was more suitable for the Environment. The Hibernate technology, was a good choice for the less demanding services that did not require stable performance characteristics. The more demanding functionalities relied on the JDBC (http://www.oracle.com/technetwork/java/overview-141217.html) interfaces that were able to provide query speed and a more stable performance.
The mixture of Apache ActiveMQ, Apache Camel and Esper technologies has shown to be a suitable, generic solution for the on-the-fly event processing. However, when applied to the high-frequency, high- throughput processing of financial data, a simpler, lower-level Apache ActiveMQ, Apache Camel and a proprietary Java functionality was more adequate for the problem.
The initial utilization of Linux Init service (http://www.tldp.org/LDP/sag/html/init-process.html) was replaced with a more sophisticated Apache ServiceMix technology that enabled one-command deployment of the Environment’s services, simplified service management and monitoring over the network. Furthermore, usage of the Spring Framework greatly simplified wiring of various modules and components of the En- vironment. Spring together with Maven (http://maven.apache.org/) allowed profile-based configuration of components for testing, development and production environments. This, in turn, simplified experimen- tation.
As indicated in Chapter 6, all three evaluation methodologies (evaluation of Environment quality, eval- uation of Environment performance as well as the evaluation with Trading Competitions) have shown that the designed architecture, the approach taken to perform the experiment and the literature review of the subject enabled this Experimental Computational Simulation Environment to meet expectations set in the Introduction Chapter and address questions set in Chapter 3.