Once clean data is coming into the algorithm, which is running on a stable environment, the last piece of the jigsaw is the execution itself.  Without clean data, spreads widening in an illiquid market can mean signals being triggered erroneously, and valid trades being missed.  Having addressed both of these challenges, the final step is the execution of the trade itself.  We worked with Cambridge Trading Research to develop robust execution algorithms, but again there are other firms who can write custom APIs (Application Programming Interface) and many brokers provide ‘off the shelf solutions’. 

Although there are a number of vital connections in the chain, a good rule of thumb is to keep each step as simple as possible, and to minimise the number of things that can go wrong.

The solution that we settled on with CTR is having the algorithm write a simple string to a text file, with all the relevant details for the order, such as which currency pair, Buy or Sell, Amount, type of order (limit or market etc.).  This file is then read by the CTRs Order Entry System and sent to the relevant broker in the correct format, meaning the solution can integrate with almost any broker.

This means that the VPS can be connected to via Remote Desktop, with every step of the process able to be monitored visually:

The data can be seen coming into Excel (see Figure 6), we can see it then plotted visually as a chart in any charting platform, such as MultiCharts™, we can see the orders being appended to the text file, as they’re written, and then visually see them executed in the ECN’s Graphical User Interfaces (GUIs).

trading systems data capturing.png

The system is also independently monitored 24 x 7 by the data centre, for any loss in connectivity.

Dangers of automated execution

While automated execution may seem an obvious solution to efficient execution, there are many inherent dangers involved.  While it’s evident that executing an automated trading strategy efficiently requires computers and programming, this comes with its own risks, as we’ve seen in the press on many occasions, from the ‘flash crash’ of May 2010 to companies with significant resources, such as Knight Capital and Goldman Sachs, each suffering losses of over USD $400mio and USD $100mio respectively, in a matter of minutes, to name use just a few of the more high profile examples, of the countless that could be cited; with that number no doubt continuing to grow.  While automated execution can be a great asset, it’s also something that must be respected and treated with great caution.

The reason for there being so many examples of trading errors, using automated trading, are probably because there are so many single points of failure.

To execute an automated trading strategy you need a clean, uninterrupted data feed, providing rates to the algorithm.  The algorithm must have no errors and be able to cope with times when there is a problem with the data or connections.  The computer where the system resides must have uninterrupted ‘uptime’ for everything from the software itself, to the OS, internet and power.  There must also be an uninterrupted connection, with low latency to the execution venue, which itself cannot have any downtime.  Any single point of failure can cause a complete failure of the trading ‘ecosystem’, as everything is interdependent.

trading systems automation.png


While automating FX trading strategies can be very straightforward, simply ‘plugging into’ a broker who offers that facility, it usually comes at the cost of less efficient execution, than using a bespoke solution.

We believe the solution we have built, with CTR’s help, is efficient and robust, though we are always striving to improve the systems, infrastructure and process. We hope that our experiences will help others following the same path towards automating their FX trading strategies.

Automation should be treated as an auto-pilot, to assist in execution, always monitored, with someone never far from the controls, ready to intervene, rather than a ‘fire and forget’ solution; as there is always something that can go wrong, and there will always be the ‘unknown unknowns’.

Caspar Marney