Algorithmic trading is a use of the computer algorithms to involuntary make the trading decisions, submit the orders, and also manage these orders after submissions. An algorithmic trading system is best understood by using the simple conceptual architecture which is consisting 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. These components map is one-for-one with aforementioned definition of the 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 the structured format. The economic and the company financial data are also available in the structured format. The two good sources for the 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 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 the read-only audit interface which checks IT controls and the 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 files based integration, database integration, and message-based integration.
Objective functions of an algorithmic trading system are normally mathematical functions that quantify the performance. In a context of the finance, measures of the risk-adjusted return 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 the self-awareness permits the models to adjust with 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 which is encountered is transforming the identified strategy to an integrated computerized process which has access to the trading account to place the 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 the access to the trading platforms where you can place the orders.
Access to the market data feeds which will be monitored using an algorithm for the opportunities to place the 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 depending on the complexity of the rules implemented in an algorithm.