Currently I am taking a class about software architectures. For this class each student chooses a system, defines its architectural requirements, and designs a solution capable of satisfying those requirements. I chose an algorithmic trading system because of the technological challenge and because I love financial markets. Algorithmic trading systems ATs use computational algorithms to make trading decisions, submit orders, and manage orders after submission.
In recent years ATs have gained popularity and now account for the majority of trades put through international exchanges. Distinction is made between programmed trading and algorithmic trading. Programmed trading involves breaking up large markets orders into packets of smaller shares.
In this article, programmed trading is considered a security requirement of an ATs. Speaking generally, there are five types of market participants: ATs are most used by proprietary buy-side institutions, but this dynamic is changing. Algorithmic trading as a service ATAAS makes algorithmic trading accessible to the retail investor see appendix. This article describes the architectural requirements for an ATs used by a proprietary buy-side institution.
At the top most level, an ATs has three functions: A lot of debate still surrounds the definition of what a software architecture is. In the context of this article, software architecture is defined as the infrastructure within which application components providing user functionality can be specified, deployed, and executed. A software system should satisfy its functional and non-functional requirements.
Functional requirements specify the functions of the systems' components. Non functional requirements specify measures through which system performance is measured. A software system that satisfies its' functional requirements, may still not meet user expectations e. The software architecture basically provides an infrastructure which satisfies the non functional requirements, and within which components that satisfy functional requirements can be deployed, and executed. Algorithmic trading system requirements can therefore be broadly be divided into functional and non-functional requirements.
Beneath the ' make trading decisions ' top level requirement there are three high level requirements: Beneath the ' create trading orders ' top level requirement there are two high level requirements: Beneath the ' manage orders ' top level requirement there are three high level requirements: This diagram shows how a trading strategy could be defined as a decision tree of trading rules. There are many non functional requirements which are traded off between each another e.
Non-functional algorithmic trading system requirements include,. The architectural scope is the set of services supported by the architecture which are consumed by components to meet their functional and non functional requirements.
A more detailed breakdown of this architectural scope is available in the detailed requirements document. At a high-level the following services would need to be provided by the architecture: Access requirements describe ways in which users may access the system's components.
An algorithmic trading system should expose three interfaces: Pre-requisites for integrating between components and external systems are called integration requirements. The algorithmic trading system should support file based integration, message based integration, and database integration. As such, the following requirements should be satisfied by the architecture: The blue dots show the physical locations where network latency is minimized and the red dots show the physical locations of large financial exchanges.
In order to maximize the performance of the algorithmic trading system, one should house the system in locations that minimize network latency.
Architectural constraints are factors which constrain the performance of the architecture being built. The two constraints I will mention here are physical network constraints, and regulatory constraints. Physical network constraints are placed on a system as a result of poor telecommunications networks. To mitigate this constraint the system should be built where network latency is minimized.
Another way to mitigate network constraints is to co-locate the algorithmic trading system with the market exchange. Regulatory constraints are introduced through laws and regulations, which are mostly country and exchange specific.
This is an increasingly important factor in the design and implementation of an algorithmic trading system because algorithmic trading is becoming more regulated after the flash crash. Algorithmic trading system architectures are complicated by the strict non functional requirements expected of the system and the wide range of regulatory and compliance requirements governing automated trading.
Because of these complexities, careful consideration should be paid to the design and implementation of the system architecture. In designing an open source algorithmic trading architecture I hope to point out those architectural requirements that are often overlooked at the onset of designing such systems.
The requirements identified in this document are unlikely to be complete and will inevitably evolve over time. The second installment of this article will include my design for a software architecture meeting the above mentioned requirements. Sign me up for updates from this blog! Quantocracy is the best quantitative finance blog aggregator with links to new analysis posted every day. We use machine learning to try and beat the market. Turing Finance November 8, It's free and I won't send you any spam.
Leave this field empty if you're human: Friends of Turing Finance Quantocracy is the best quantitative finance blog aggregator with links to new analysis posted every day. Turing Finance on Twitter My Tweets. Turing Finance on Facebook. Disclaimer This is a personal blog.
As such the opinions expressed here are my own and do not necessarily represent those of my employer. Furthermore, all information on this blog is for educational purposes and is not intended to provide financial advice.More...