Run-time Reconfiguration for a Reconfigurable Algorithmic Trading Engine Stephen Wray, Wayne Luk, Peter Pietzuch Department of Computing, Imperial College London London, United Kingdom {sjw06,wl,pp}@doc.ic.ac.uk Abstract—In this paper we present an analysis of using run-time reconfiguration of reconfigurable hardware to modify trading algorithms during use. This provides flexibility in algorithm design, enabling the implementation to be reactive to changes in market conditions, increasing in performance. We study what can be achieved to reduce performance loss in algorithms while reconfiguration takes place, such as buffering information during this time. Our results show our average partial reconfiguration time is 0.002091 seconds, using historic highest market data rates would result in about 5,000 messages being missed or require buffering. This is the worst case scenario, normally the system would only require a fraction of messages. The reconfiguration time is acceptable if it is under the required limit by the user to prevent business performance suffering. Keywords-Algorithm Trading; Run-Time Reconfiguration; I. I NTRODUCTION Algorithmic trading is a large part of the electronic trading landscape which has been evolving from the 1970s. Algorithmic trading is designed to solve problems faced by conventional trading of stock by human traders. First, an increased market volume as computers were used more frequently in communicating trades, the cost of trading dropped, which led to investors trading more frequently. This increase eclipse paratactical methods of manual management because in the 40 years leading up to 2001, the daily volume on the New York Stock Exchange increased 500 fold [1]. Second, market spreads have become tighter and latency dropped, making it more difficult for people to carry out trading of large volumes. The prevalence of algorithmic trading, the daily volume traded is still increasing, requiring faster and more powerful computers. Equity trading is one individual purchasing shares from another, through a stock exchange. Buyers and sellers place orders on the exchange with a price, orders trade if the prices align. The price of a stock changes depending on the economy, news, supply and demand. An algorithmic trading engine is designed to split large orders into smaller orders before sending them to the exchange. The means the order can be executed more consistently than a human trader. The engine can react quickly to market fluctuations and handle greater volumes of orders. The engine makes its decision on received information, order parameters dictate how the order should be traded and market data updates convey the current market conditions [2]. Smaller orders don’t affect the market as larger orders, in addition they conceal the activities of the investor and achieve a better overall price. Reconfigurable hardware is a highly desirable platform for an algorithmic trading engine. Benefiting the features of reconfigurable hardware, such as low latency and low standard deviation on performance, producing a highly de- pendable system. This has been realised before [3], but has had little published research carried out in the area. Research has likely to have been carried out but remained unpublished because of holding a competitive advantage for the owners in the industry. One difference that needs to be addressed between software and hardware implementations is how to deal with the limited resources of FPGAs. FPGA chips are available in multiple sizes, large chips may be able to accommodate tens of algorithm instances. This increases device costs and power consumption while resources would be wasted by infrequently used components. For this reason, in this paper we will use the run-time reconfiguration feature offered by many FPGAs so that smaller, less expensive chips can be used while affording the flexibility of supporting a large number of algorithms. We show that the amount of time to complete a partial reconfiguration of the device changing algorithm instances is acceptable. This allows the cost of reconfiguration measured in terms of price performance to remain low. The ability for the user to deploy alternate algorithms increases the possibility that the change will compensate for any loss and by improving performance. The contributions of this paper include the following: • An overview of why run-time reconfigurations use is at- tractive in an algorithmic trading engine; in Section III. • A solution for storing instances to deploy on different market conditions; in Section IV. • Evaluation and comparison to a related software solu- tions, illustrating its potential; in Sections V and VI. This paper also covers related background work and mate- rial that motivates this research; in Section II. A comparison to a software implementation and the relation to run-time reconfiguration of hardware based systems; in Section III.