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 back testing, simulation, analysis, filtering, risk management, reporting, reconciliation and hedging.
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 different GUI clients exist. The new AlgoTrader HTML5 Frontend provides trading related functionality like charting, orders, positions & market data. Eclipse or IntelliJ IDE’s are used for strategy development. The EsperHQ client manages the Esper CEP engine.
For productive installations and deployment AlgoTrader uses Docker.