Algorithmic tradingAlgorithmic trading is a method of executing orders using automated pre-programmed trading instructions accounting for variables such as time, price, and volume. This type of trading attempts to leverage the speed and computational resources of computers relative to human traders. In the twenty-first century, algorithmic trading has been gaining traction with both retail and institutional traders. A study in 2019 showed that around 92% of trading in the Forex market was performed by trading algorithms rather than humans.
Automated trading systemAn automated trading system (ATS), a subset of algorithmic trading, uses a computer program to create buy and sell orders and automatically submits the orders to a market center or exchange. The computer program will automatically generate orders based on predefined set of rules using a trading strategy which is based on technical analysis, advanced statistical and mathematical computations or input from other electronic sources. These automated trading systems are mostly employed by investment banks or hedge funds, but are also available to private investors using simple online tools.
Genetic algorithmIn computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to generate high-quality solutions to optimization and search problems by relying on biologically inspired operators such as mutation, crossover and selection. Some examples of GA applications include optimizing decision trees for better performance, solving sudoku puzzles, hyperparameter optimization, causal inference, etc.
Electronic trading platformIn finance, an electronic trading platform also known as an online trading platform, is a computer software program that can be used to place orders for financial products over a network with a financial intermediary. Various financial products can be traded by the trading platform, over a communication network with a financial intermediary or directly between the participants or members of the trading platform.
Day tradingDay trading is a form of speculation in securities in which a trader buys and sells a financial instrument within the same trading day, so that all positions are closed before the market closes for the trading day to avoid unmanageable risks and negative price gaps between one day's close and the next day's price at the open. Traders who trade in this capacity are generally classified as speculators. Day trading contrasts with the long-term trades underlying buy-and-hold and value investing strategies.
Software testingSoftware testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not necessarily limited to: analyzing the product requirements for completeness and correctness in various contexts like industry perspective, business perspective, feasibility and viability of implementation, usability, performance, security, infrastructure considerations, etc.
AlgorithmIn mathematics and computer science, an algorithm (ˈælɡərɪðəm) is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing. More advanced algorithms can use conditionals to divert the code execution through various routes (referred to as automated decision-making) and deduce valid inferences (referred to as automated reasoning), achieving automation eventually.
Efficient-market hypothesisThe efficient-market hypothesis (EMH) is a hypothesis in financial economics that states that asset prices reflect all available information. A direct implication is that it is impossible to "beat the market" consistently on a risk-adjusted basis since market prices should only react to new information. Because the EMH is formulated in terms of risk adjustment, it only makes testable predictions when coupled with a particular model of risk.
High-frequency tradingHigh-frequency trading (HFT) is a type of algorithmic trading in finance characterized by high speeds, high turnover rates, and high order-to-trade ratios that leverages high-frequency financial data and electronic trading tools. While there is no single definition of HFT, among its key attributes are highly sophisticated algorithms, co-location, and very short-term investment horizons in trading securities. HFT uses proprietary trading strategies carried out by computers to move in and out of positions in seconds or fractions of a second.
Technical analysisIn finance, technical analysis is an analysis methodology for analysing and forecasting the direction of prices through the study of past market data, primarily price and volume. As a type of active management, it stands in contradiction to much of modern portfolio theory. The efficacy of technical analysis is disputed by the efficient-market hypothesis, which states that stock market prices are essentially unpredictable, and research on whether technical analysis offers any benefit has produced mixed results.
Adaptive market hypothesisThe adaptive market hypothesis, as proposed by Andrew Lo, is an attempt to reconcile economic theories based on the efficient market hypothesis (which implies that markets are efficient) with behavioral economics, by applying the principles of evolution to financial interactions: competition, adaptation, and natural selection. This view is part of a larger school of thought known as Evolutionary Economics. Under this approach, the traditional models of modern financial economics can coexist with behavioral models.
Memetic algorithmA memetic algorithm (MA) in computer science and operations research, is an extension of the traditional genetic algorithm (GA) or more general evolutionary algorithm (EA). It may provide a sufficiently good solution to an optimization problem. It uses a suitable heuristic or local search technique to improve the quality of solutions generated by the EA and to reduce the likelihood of premature convergence. Memetic algorithms represent one of the recent growing areas of research in evolutionary computation.
Swing tradingSwing trading is a speculative trading strategy in financial markets where a tradable asset is held for one or more days in an effort to profit from price changes or 'swings'. A swing trading position is typically held longer than a day trading position, but shorter than buy and hold investment strategies that can be held for months or years. Profits can be sought by either buying an asset or short selling. Momentum signals (e.g., 52-week high/low) have been shown to be used by financial analysts in their buy and sell recommendations that can be applied in swing trading.
Trading strategyIn finance, a trading strategy is a fixed plan that is designed to achieve a profitable return by going long or short in markets. The main reasons that a properly researched trading strategy helps are its verifiability, quantifiability, consistency, and objectivity. For every trading strategy one needs to define assets to trade, entry/exit points and money management rules. Bad money management can make a potentially profitable strategy unprofitable. Trading strategies are based on fundamental or technical analysis, or both.
Mathematical optimizationMathematical optimization (alternatively spelled optimisation) or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfields: discrete optimization and continuous optimization. Optimization problems arise in all quantitative disciplines from computer science and engineering to operations research and economics, and the development of solution methods has been of interest in mathematics for centuries.
Unit testingIn computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. It is a standard step in development and implementation approaches such as Agile. Before unit testing, capture and replay testing tools were the norm. In 1997, Kent Beck and Erich Gamma developed and released JUnit, a unit test framework that became popular with Java developers.
Ant colony optimization algorithmsIn computer science and operations research, the ant colony optimization algorithm (ACO) is a probabilistic technique for solving computational problems which can be reduced to finding good paths through graphs. Artificial ants stand for multi-agent methods inspired by the behavior of real ants. The pheromone-based communication of biological ants is often the predominant paradigm used. Combinations of artificial ants and local search algorithms have become a method of choice for numerous optimization tasks involving some sort of graph, e.
Random walk hypothesisThe random walk hypothesis is a financial theory stating that stock market prices evolve according to a random walk (so price changes are random) and thus cannot be predicted. The concept can be traced to French broker Jules Regnault who published a book in 1863, and then to French mathematician Louis Bachelier whose Ph.D. dissertation titled "The Theory of Speculation" (1900) included some remarkable insights and commentary. The same ideas were later developed by MIT Sloan School of Management professor Paul Cootner in his 1964 book The Random Character of Stock Market Prices.
Acceptance testingIn engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met. It may involve chemical tests, physical tests, or performance tests. In systems engineering, it may involve black-box testing performed on a system (for example: a piece of software, lots of manufactured mechanical parts, or batches of chemical products) prior to its delivery.
Program tradingProgram trading is a type of trading in securities, usually consisting of baskets of fifteen stocks or more that are executed by a computer program simultaneously based on predetermined conditions. Program trading is often used by hedge funds and other institutional investors pursuing index arbitrage or other arbitrage strategies.