The architecture of AlgoTrader is composed of the following components.
The AlgoTrader Server provides the infrastructure for all strategies running on top of it. The AlgoTrader Server holds the main Esper Complex Event Processing (CEP) engine. It is responsible for all domain model objects and their persistence in the database. Different market data adapters are available to process live and historical market data. On the other end adapters for different execution brokers and exchanges are available, which are responsible for placing orders and receiving executions.
The AlgoTrader Server also provides business components for portfolio management, performance measurement, risk management, money management, option pricing, reconciliation, Forex hedging and parameter optimization.
On top of the AlgoTrader Server any number of strategies can be deployed. AlgoTrader has an event driven architecture utilizing one dedicated Esper CEP engine per strategy. A strategy can deploy any number of SQL-like Esper statements for time-based market data analysis and signals generation. Esper statements can invoke any number of procedural actions, such as placing an order or closing a position, which are coded in Java. The combination of Esper statements and Java Code provides a best-of-both-worlds approach.
For management and monitoring of the system four different GUI clients exist. The new AlgoTrader HTML5 Frontend provides trading related functionality like charting, orders, positions & market data. The AlgoTrader Eclipse client is the default strategy development environment. The EsperHQ client manages the Esper CEP engine. The Grails client is a generic client for reference data management.
For productive installations and deployment AlgoTrader uses Docker.