Throughout the last few months, we have been very busy improving the entire AlgoTrader solution and adding many new features. We have completely refactored many parts of the system to make it more stable, more reliable, and much faster.
Strategy development
Among the areas in which we focused while making improvements is strategy development. Now, it’s easier than ever to create trading strategies with AlgoTrader. Thanks to a more intuitive and user-friendly development environment, the way in which strategies are created is now much more streamlined and simplified.
- We are also pleased to announce that Separate Starter classes are no longer a necessity, which makes starting strategies much easier.
- It’s now possible to back test multiple strategies at the same time. We’ve even given you the ability to run a strategy multiple times with different parameters.
- Support has also been added for strategy groups. For instance, you can now group multiple strategies together and start them simultaneously using distinct settings. This makes it far easier to control large numbers of back tests.
Broker adapters
In addition to the existing broker adapters, we now support the following new Fix interfaces:
- Trading Technologies (TT) provides direct connections to more than 40 exchanges across the globe. TT’s futures trading software is used and distributed by 19 of the top 20 global futures brokers.
- Fortex was the first independent, multi-asset trading platform to provide clients with direct market access. Fortex is used by many global FX trading companies.
Also, we have completely redesigned the Interactive Brokers API interface to make it more stable and more reliable. In addition, it is now possible to store all Fix messages within the AlgoTrader database for easier access.
Event handling
AlgoTrader is all about Events. In AlgoTrader 2.3, we have added a brand new event handling system, which is now the central messaging component between the AlgoTrader server and strategies. As a result, we have been able to increase throughput while reducing latency. Just a few of the benefits introduced by this new feature are:
- A central event dispatcher is responsible for sending/broadcasting messages to subscribers, be it the AlgoTrader server, local trading strategies, event listeners, or trading strategies running in remote JVMs.
- By implementing one of the provided event listener interfaces, a trading strategy can subscribe to a multitude of event types disseminated by the platform (e.g., TickEvents, BarEvents, OrderStatusEvents, FillEvents, SessionEvents, etc.).
- All FIX sessions now disseminate Fix lifecycle events, so that a trading strategy can react upon session connects/disconnects.
- We also have introduced a standard set of lifecycle phases for each strategy both in simulation and live trading; these lifecycle phases are: INIT, PREFEED, START, and EXIT. If needed trading strategies can add custom actions to each lifecycle phase
Esper engine
We are pleased to announce that as of AlgoTrader 2.3 all Esper Engines are configured through Spring using standard dependency injection, which makes it much easier to control and access any Esper Engine in the system. Additionally, all standard AlgoTrader services are now made directly available to Esper Engines (e.g., OrderService, LookupService, CalendarService, PositionService, MarketDataService, etc.)
Distributed cache manager
You may recall that some time ago, we introduced the AlgoTrader Level-Zero Cache, which is an additional Caching Level on top of Hibernate First and Second Level Cache. With the new AlgoTrader 2.3 release, the Level-Zero Cache is available to all trading strategies (local or in a remote JVM). With this, all database lookups are now cached locally, which makes subsequent access to the same information incredibly fast.
Miscellaneous enhancements
To ensure that our system is as powerful and functional as possible, our team has made a number of other miscellaneous enhancements.
- Spring dependency injection has been migrated from XML files to Spring annotations.
- Additionally, all Java Entities are now generated using Hibernate tools and Hibernate mapping files. We are not using AndroMDA anymore.
- You will also notice that we have added a new Entity called Security Reference, which is a generic link between one instrument and another.
- Recognizing the importance of historical data for back tests, we added a download utility for Google Finance for both intraday and daily data.
- AlgoTrader 2.3 includes a complete overhaul of all database sample data.
- In addition, the AlgoTrader Client now shows unrealized Profit & Loss Per Currency. And, we have even added a new table to show Net Foreign Currency Exposure in each currency, which is an important figure for FX trading companies.
- Finally, we updated all third-party libraries to their latest version: Java 1.8, Esper 5.3.0, Hibernate 4.3, Spring 4.2, and Log4J 2.3.