Algorithmic trading is the use of computer algorithms to involuntaryly make trading decisions, submit orders, and also manage these orders after submissions. An algorithmic trading system is best understood by using the simple conceptual architecture which consists of the three components that handle different features of an algorithmic trading system. This is namely the strategy handler, trade execution handler, and the data handler. This component map is one-for-one with the aforementioned definition of algorithmic trading.
The algorithmic trading system can use unstructured data, structured data, or both. The data is structured if it’s organized in relation to some pre-determined structures. Examples of this include CSV files, spreadsheets, JSON files, XML, Data-Structures and Databases. Market-related data like trade volumes, inter-day prices and end-of-day prices are normally available in a structured format. Economic and company financial data are also available in a structured format. The two best sources for structured financial data include Morningstar and Quandl.
When it comes to access requirements of the algorithmic trading system, it describes the ways in which the users can access the system's components. The algorithmic trading system has to expose three interfaces: the interface of defining new trading rules, the trading strategies, and the data sources; the back-end interface of the system administrator to add the clusters and also configure the architecture. There is a need for a read-only audit interface that checks IT controls and user access rights. The pre-requisites that integrate between the components and the external systems are termed as integration requirements. An algorithmic trading system can support file-based integration, database integration, and message-based integration.
Objective functions of an algorithmic trading system are normally mathematical functions that quantify the performance. In the context of finance, measures of risk-adjusted returns comprise of the Treynor ratio, Sortino ratio, and Sharpe ratio. The model components in this system can maximize either one or more quantities of this type. The challenge which faces this system is because the markets are dynamic. Similarly, the models, neural networks, or logic that work before can stop working overtime. To prevent this, an algorithmic trading system needs to train models with the information concerning the models. This type of self-awareness permits the models to adjust to the changing environment.
Implementing the algorithm by use of computer program is also another component of the algorithmic trading, which is accompanied by backtesting which is trying out an algorithm on the historical periods of the past performance of the stock-market to see whether using it can be profitable. The challenge that is encountered is transforming the identified strategy into an integrated computerized process in which you have access to a trading account to place orders.
Here are some requirements for the algorithmic trading system:
Knowledge of computer-programming to program required trading strategy, pre-made trading software or hired programmers.
Network connectivity and access to trading platforms where you can place orders.
Access to market data feeds will be monitored using an algorithm for opportunities to place orders.
Ability and the infrastructure to backtest the system once it’s built before there is live broadcast on the real markets.
The available historical data which is for backtesting depends on the complexity of the rules implemented in an algorithm.