Algorithmic (Algo) trading refers to using computer programs in order to trade: where algorithmic trading systems use algorithms to make trade decisions, manage and submit orders. Algo trading is fast and straightforward, often generates more profit, and at a higher frequency and speed than is possible for human traders.
Algo trading has gained in popularity over the years, and today accounts for most of the trades through international exchanges. However, there is a difference between programmed trading and algo trading. Programmed trading breaks up large market orders into smaller packet shares. Algo trading can be divided into functional and nonfunctional requirements.
There are three high-level requirements that fall under “making trading decisions:”
- Get market data: Download and store structured and unstructured data. Structured data includes real-time market data transmitted using a specific protocol, and unstructured data means information from social media and news channels.
- Define a trading strategy: Specify new trading rules and strategies, with trading rules including an inequality, a trading indicator and a numerical value. You can then define your trading strategy by structuring the trading rules into a decision tree.
- Analyse instruments: Data is obtained for each instrument and filtered through a trading strategy to determine which instrument to buy, or for each open position, which instrument to sell.
Required to create trading orders are the following:
1. Get trading information — for every decision, get the instrument price, symbol, quantity, and so on.
2. Create a trading order — for every decision, specify the order type and add the trade information.04
The three high-level requirements beneath the manage orders top-level requirements are:
- Manage pending orders
- Submit orders
- Manage all submitted orders
Many non-functional requirements are traded off between each other:
- Scalability — the ability of the system to cope and perform under increased or expanding workload. An algorithmic trading system should be scalable with respect to the number of exchanges it’s trading on, the number of data feeds in processes and the instruments it can trade.
- Performance — the work accomplished by the system, compared with the time and resources required to carry out that work.
- Modifiability — the ease with which the algo trading system can be modified. A good algo trading system should have easily modifiable data processing and trading strategies.
- Reliability — the dependability and accuracy of the system to produce the correct output for all input received.
- Auditability — there have been recent high profile cases of algo trading systems going haywire, putting them in the spotlight for the audit firms. A good system should be auditable from a financial, IT and compliance point of view.
- Instrument — trading strategies are proprietary, and represent highly valuable intellectual property, so they must be properly protected.
- Fault tolerance — how well can the system continue operating correctly after a fault?
- Interoperability — how easily can the system operate with a wide range of related systems?