Feng WANG1 , Keren DONG2 , Xiaotie DENG 2 1 State Key Lab of Software Engineering, Wuhan University, Wuhan 430072, China 2 Department of Computer Science, City University of Hong Kong, Kowloon, Hong Kong, China c Higher Education Press and Springer-Verlag 2009 Abstract This paper provides an overview of research and development in algorithmic trading and discusses key issues involved in the current effort on its improvement, which would be of great value to traders and investors. Some current systems for algorithmic trading are introduced, together with some illustrations of their functionalities. We then present our platform named FiSim and discuss its overall design as well as some experimental results in user strategy comparisons. Keywords algorithmic trading, portfolio optimization, news retrieval, decision making, system design includes identification of investment opportunities (what to trade) and execution of orders for a variety of asset classes (when, how, and where to trade). Fig. 1 shows the main elements in such trading processes. As shown in Fig. 1, there are four steps in the trading strategy generation process. The first step includes analysis of market data as well as relevant external news. The analysis is often supported by computer tools such as spreadsheets or charts, which is very important to generate a trading signal and make a trading strategy. The trading model and decision making are the kernel of AT. The last step of the process is the execution of the trading strategy, which can be done automatically by computer. The financial sector has been the one that embraces the advent of information and communication technology without a minute of hesitation. Advantages in collecting information, making decisions, and executing trade strategies turn into profits in investors’ hands as quickly as one does it faster than the competitors. The emergence of the Internet has sped up the trend in the financial market industry in its increased automation of trading, now commonly referred to as algorithmic trading (AT). In general, algorithmic trading can be described as some elements in financial decision making and financial investment being executed by an algorithm through computers and communication networks in an electronic way [1]. The algorithms are involved in predefined trading strategies or adaptive strategies generated through artificial intelligence methodologies. Trading strategies are automated by defining a sequence of instructions executed by a computer, which Received November 11, 2008; accepted April 2, 2009 E-mail: fengwang@whu.edu.cn, {keredong, csdeng}@cityu.edu.hk Fig. 1 Algorithmic trading process As the development of information technology, expansions of financial markets in both its depth and width, structures 236 Feng WANG, et al. Algorithmic trading system: design and applications resulting from relaxation in regulatory environment and creation of new markets, and economic landscape changes continue to speed up financial transaction, investors constantly look into ways to reduce transaction costs, increase efficiency, enhance risk control, and utilize information and technology to make decisions one step ahead of competitors and markets. Algorithmic trading provides traders with the tools to achieve those objectives, through improvement in several frontiers. 2.1 Decision-making strategies Algorithmic trading is a computer-supported financial investment platform for active traders to actively look at the price movement for profitable opportunities, typically of short-term profits. Under the AT model, it is important to evaluate the price dynamics and decide on the amount, trading time, and various parameters related to the trading process. The kernel of AT can be thought of as “package of strategies”, individually conceived and customized to help traders to model their financial objectives and execute transaction plans, with the flexibility to revise strategies swiftly. The automated process allows traders to take on a greater volume of transactions with more efficiency and less chance of shortfall. Effectiveness is the right word to describe an AT system since it can minimize execution shortfall, which is the difference between the execution plan and the actual execution results. The choice of kernel, i.e., the decision on which trading algorithm to use, depends on users’ specific investment objectives as well as their styles of market operations. For example, what weight should be given to factors like minimizing transaction costs, venue restrictions, risk management, and information leakage? Would they prefer to make speedy execution, paying no regard to the impact on price levels, or other way around? In a recent report published by AMD, five categories of the current trading models in AT were presented [2]. They are price algorithm, time algorithm, implementation shortfall algorithm, volume participation algorithm, and smart order routing algorithm. It was reported that the most popular algorithmic strategies are volume-weighted average price (VWAP), time-weighted average price (TWAP), stock index future arbitrage, and statistical arbitrage. (1) VWAP VWAP is defined as the ratio of the dollar transaction volume to share volume over the trading horizon. It is common to evaluate the performance of traders by their ability to execute orders at prices better than the volume-weighted average price (VWAP) over the trading horizon. Berkowitz, Logue, and Noser [3] regard the VWAP benchmark as a good approximation of the price for a passive trader. Its computational simplicity is a major advantage, especially in markets where detailed trade level data are difficult or expensive to obtain. (2) TWAP TWAP is the average price of contracts or shares over a specified time, which attempts to execute an order and achieve the time-weighted average price or better. Highvolume traders use TWAP to execute their orders over a specific time, so they trade to keep the price close to that which reflects the true market price. TWAP is different from VWAP in that orders are a strategy of executing trades evenly over a specified time period. (3) Stock index future arbitrage Actually, arbitrage is one of the most important actions in AT. In stock index future market, it employs the mis-pricing between the future market and the spot market and makes strategies, such as short sells, to make risk-free profits [4]. (4) Statistical arbitrage Statistical arbitrage is based on the mis-pricing of one or more assets in their expected values. Arbitrage can be viewed as a special type of statistical arbitrage. One major distinction is that a statistical arbitrage is not always riskless. Hogan et al. have proposed a yield curve method to determine whether there exists a statistical arbitrage opportunity in the market [5, 6]. A yield curve is a graphic representation of market value (yield) for a security plotted against the maturity of the security. They applied a trading strategy to valuate the profits generated based on the standard yield curves. Some other trading strategies, such as iceberging, guerrilla, benchmarking, sniper, and sniffer are also widely used in the real market. However, it has been observed that few strategies outperform the benchmark indices in the long run. Data mining has to be applied to constantly seek profitable insights in active investment strategies. 2.2 Real-time and historical data feed A powerful data source is a very important component for an AT system [7]. The data usually consist of market trading data and the news data. Historical data are used to train the trading models, while the current data are used to preanalyze the trade strategies. Data capture and retrieval have been the key problem in the data feed package. News data retrieval is a challenge issue in AT. First, the news information captured from the Internet must be analyzed in a very short time. It involves in many methodolo- Front. Comput. Sci. China 2009, 3(2): 235–246 gies from natural language processing, pattern recognition, and machine learning, such as neural network, SVM, and evolutionary algorithms. On another hand, Bloomberg and Reuters provide and promote the use of organized financial data and financially related news data for financial decision analyses. They are becoming more and more important for AT practice. 2.3 Order management In general, there are two types of orders: limit orders and market orders. A limit order specifies the side of the transactions, i.e., whether it’s a buy or a sell, the quantity, and the price. It constitutes a firm commitment to take the specified side in a trade. Limit orders can be canceled at any time, as long as they have not been matched by an order of the opposite side. Market orders do not specify a price but just state the side and the quantity. They are filled immediately from the limit order book at the price most favorable for the market order submitting party. Gradually, more and more firms use order management systems (OMSs) in their trading. The automated software systems for this purpose make the desired transactions executed in a timely fashion. 2.4 Risk management With AT tools, traders can improve their risk management by monitoring market changes and make speedy transitions in their market positions. At the same time, they may also reduce their market exposure caused by market impact and timing delay of their investment decisions. Their automated strategies result in better management of execution shortfall with liquid and easier-to-trade orders. The AT system also allows risk analysis methodologies to be applied to study market trends and news alerts, so that a quick response can automatically execute transactions to reduce the risk that an investor may be exposed in any emergence event. 2.5 Agent-based computational models An agent-based model is a model comprising autonomous agents placed in an interactive environment (society) or social network which is widely used in the AT modeling [8– 10]. Simulating the model via computers is probably the most practical way to visualize economic dynamics. Agent-based model is very popular in AT system design and is easy to be understood to simulate the market behaviors. Blake LeBaron gave a review of early research of using computer program to simulate finance market (simple agent, zero intelligence traders, foreign exchange markets and experiments, costly information and learning, and neu1 2 237 ral network- based agents) [11]. Aki-Hiro Sato proposed a simple agent-based model in which N market participants exchange M currency pairs and analyze the frequency of tick quotes of foreign exchange market [12]. In recent years, more and more researchers began to employ soft computing methodologies into the agent-based trading modeling, such as Genetic Programming and Genetic Algorithms [13–15]. Chen et al. used genetic programming to simulate the human behaviors of the traders in the market and studied four fundamental issues of GP in agent-based economic modeling: primitives, grammar, genetic operators, and architecture [16]. Christopher and his collaborators also used GP to forecast out-of-sample daily volatility in the foreign exchange market [17]. 2.6 System design and integration The biggest changes of equity market have occurred in alternative trading systems during the last decade. Alternative trading systems (ATSs) are nontraditional, computerized trading systems that compete with or supplement dealer markets and traditional exchanges. These trading systems facilitate the exchange of millions of shares every day through electronic means. The most well-known ATSs are the electronic communication networks (ECNs) and the electronic crossing systems (ECSs). Both have heavily relied on electricity technology for information and communication [18, 19]. Reuters also provides the low latency and reference information, high performance technology, and community support that helps the buy-side or sell-side make more competitive algorithms for investment decisions1 . The news data information feed package offered by Reuters Market Data System capture, store, and analyze ever-increasing volumes of market data. Through the powerful data feed package (real time and not only market data but news data), enhanced with algorithmic analytic tools, it can help to access the market with efficient order execution and operate the models close to the trading venue. Bloomberg has proposed a trading platform that targets an average execution benchmarked to the VWAP throughout the day or for a defined time period2. The execution module employs statistical theoretical values, which maximize the probability of spread capture within the given constraints. The orders, during the execution period, can be updated or canceled by the traders. MetaTrader, which is developed by MetaQuotes Software Corp and designed to provide broker services to customers at forex, futures, and CFD markets, is an online trading com- http://about.reuters.com/productinfo/algorithmic trading/ http://www.bloomberg.com/apps/news?pid=20601109&refer=home&sid=amK25dKbMrhQ 238 Feng WANG, et al. Algorithmic trading system: design and applications Fig. 2 Interface of the algorithmic trading via Bloomberg plex. It defines a language designed specially for describing trading strategies, called MetaQuotes Language (MQL)3 . MetaTrader has the advantage of being well admitted in industry: most forex brokers employ it as the main client application. Strategies written in MQL can be shared in different broker applications without modifications. It also has an online community3 that provides documentation of MQL and sample codes. Users are encouraged to upload their own code and share with each other, so it is possible to learn strategies from others in the community. Strategies written using MQL can be tested on history data by MetaTrader, and detailed reports will be generated after testing. Logging utility is also provided to help in debugging the strategies. Like Great Wisdom, MetaTrader lacks the ability to generate new strategies automatically; it is designed only for executing existing strategies. Artificial Stock Market, developed by the Santa Fe Institute in New Mexico, is another well-known system for AT [20, 21]. It consists of a central computational market Fig. 3 3 http://www.mql4.com, MQL 4 Community and a number of artificially intelligent agents. The agents choose between investing in a stock and leaving their money in the bank, which pays a fixed interest rate. The stock pays a stochastic dividend and has a price that fluctuates according to agent demand. The agents make their investment decisions by attempting to forecast future returns on the stock, using genetic algorithms to generate, test, and evolve predictive rules. The artificial market exhibits two distinct regimens of behavior, depending on parameter settings and initial conditions. These behaviors can help to analyze the market trend and help traders to make corresponding strategies. Fig. 4 and Fig. 5 show the wealth of the 30 agents and their relative positions in the whole market after 2000 evolving generations. In China, there are also some AT components that have been developed and employed widely by the broker-dealers and hedge funds. The trading system called New Generation Trading System (NGTS) is developed by the Shanghai Stock Exchange; it is a kind of ECN [22, 23]. Its protocol used Interface of the algorithmic trading via MetaTrader Front. Comput. Sci. China 2009, 3(2): 235–246 Fig. 4 Relative wealth of agents after 2000 evolving generations Fig. 6 239 Fig. 5 The position of each agent in the population Interface of the algorithmic trading via Great Wisdom to exchange trading data, which is named STEP, is national standard and is compatible with the most popular international financial data exchange protocol, FIX 4.4. As a result of using standard data exchange protocol, it is possible to develop our own client to collect data and test trading strategies. In fact, most of the analysis software provided for brokers in China is based on a third-party platform named Great Wisdom. Fig. 6 shows the algorithmic trading interface of Great Wisdom. Great Wisdom is an integrated system that provides much practical functionality. The basic functionalities include showing real-time stock data, displaying technical indicators, and providing related financial information. Most common technical indicators are provided by Great Wisdom by default, such as MACD, DMI, DMA, etc. Great Wisdom presents a workable demonstration for executing and testing the strategies like other equity platforms but still lacks the ability to generate new strategies automatically, which will be the most important feature of our project. ate sophisticated algorithms, we need more granular information such as tick level data including actual market sizes. Due to the lack of data provided by the trading venues, banks as well as external algorithmic traders will have to invest in collecting a comprehensive data set and learn from experience by employing new models in the real market at an early stage. 3.2 Order processing The most granular CLOB design dedicates a single system process to a single, individual security or series. A recent study at a major U.S. futures exchange found that 60% of all trading for the exchange was done in the near-month of a single financial futures contract. A similar measurement of the market opening at a U.S. regional equities exchange pointed out that 70% of all trades were in the three most active stocks. Thus, the system processing power and software efficiencies need to focus on the busiest instrument. 3.3 Slippage measurement 3.1 Lack of data Many researchers are concerned about the lack of data from some trading venues. However, even if sufficient historical data are currently available and strong enough, they might not build diversified order execution and algorithms. To cre- Slippage occurs for stop orders when prices move before the broker-dealer is able to fill the order at the stop price. The costs of slippage are difficult to measure. First, different equities have different slippage for different broker-dealers. Second, the slippage is correlated with the trade volume of the equity. When an order is placed, it is unusual to find any record of what the target execution price was relative to the execution received. 240 Feng WANG, et al. Algorithmic trading system: design and applications 4.1 FiSim overview FiSim is designed to be a financial simulation platform that is flexible and extensible enough to support analyzing strategies against various kinds of equities, currencies, futures, and other financial products. The system is composed of two sub-parts: one is used to collect data from either history or real time and run a market simulator using the data; another monitors financial news and performs automatic ranking using specified algorithms. This FiSim platform is expected to implement the following features. (1) Automation of simulation configuration The simulator can load the simulation parameters from a file automated and then start a simulation. It can also save the parameters to a file for the next usage. The parameters include the start date, end date, and so on. (2) Automation of data package The simulator can load and parse the data source from a file automated. (3) Simulation of the work of an investor and its assistants The work includes the analysis of the data, the choice of stock and the decision of whether to sell or buy, the decision of the quantity to trade, the submission of order, and the updates and statistic of its wealth. (4) Simulation of the work of a broker to carry out the transaction. Fig. 7 shows the architecture of FiSim Fig. 8 Fig. 7 Architecture of the simulation platform FiSim 4.2 Detailed design of FiSim 4.2.1 Market simulator We use 7 classes to model the market simulator. An abstract data model is defined for simulating the financial market in the real world, and the structure is shown in Fig. 8: The usages of the classes are: (1) Platform – This class assembles the underlying components and provides external APIs for the end user. It loads concrete financial data and translates it to an internal model; in this way, it is extensible to different data formats. After initialization, it will start the simulated market. The data model of market simulator Front. Comput. Sci. China 2009, 3(2): 235–246 (2) Market – This interface defines the contract for simulated markets. A simulated market is supposed to be able to provide financial data like equities, currencies, futures, etc. for brokers registered in the market. Provision of data is continuous during the market’s lifetime. Matching orders is done by concrete brokers in this platform; the market does not do this job. (3) Broker – This interface defines the contract for brokers. The broker is supposed to consume the financial data quoted by the market. It keeps an internal list of orders; if an order is matched at the price of the coming data, it executes the order. When financial data are quoted, it also notifies the registered traders, which are identical to trading strategies in this platform. (4) Financial data – This class is the abstract model for financial data in the real world; the data could be equities, currencies, futures, etc. (5) Order – This class is the abstract model for market orders; it is generated by trader implementations and executed by broker implementations. (6) Market listener – This interface defines the contract for listeners that are interested in quoting financial data. Its implementations are registered to market instances and will be notified when new financial data are quoted. (7) Market event – This is the event object that wraps information for the event of quoting financial data. Fig. 9 241 4.2.2 The implementation of market simulator The business logic of the simulator is defined in concrete implementations of market and broker; the structure of these classes is shown in Fig. 9: There are two concrete classes and two new interfaces introduced: (1) Simple market – This class is a straightforward imple mentation of market interface; it simply keeps all data in memory and uses a single thread to run the simulation. It is not proper to be used with huge history data, but it is sufficient for simple test tasks. (2) Simple broker – This class implements the broker interface. It keeps all orders and trader instances in memory. The orders are matched by prices of history data when simulating, since currently, we have only rough history data for testing. If in the future, more detailed data such as tick-bytick data could be used, this class may be updated to support that data. (3) Data provider – This interface defines the contract for data providers of the market. The market instance will use its implementations to get financial data. This plug-in mechanism provides extensibility for different kinds of data. (4) Trader – This interface defines the contract for trading strategy. The user could provide its own implementations to be tested on this platform. The implementations will be easily added to the platform as a plug-in; thus, no re-compile Market implementation diagram 242 Feng WANG, et al. Algorithmic trading system: design and applications is needed when testing new strategies. The market simulator is still rough, but it models a simple market in real world. The trading mechanism is very similar to the actual market, and the data used to test is real history data. The working process of the simulator is explained by Fig. 10. 4.2.3 Information analysis The platform also integrates the ability of analyzing financial information and ranks it in real time. The architecture of this functionality is shown in Fig. 11. mentation of the information ranker interface. It is designed to grab news from Yahoo and rank the news based on a predefined verb table. (4) Crawler – This interface defines the contract for crawlers used to grab information from sources like web sites or databases. (5) Web Crawler – This class is an implementation of the crawler that targets grabbing news from web sites like finance.yahoo.com. The working process is shown in Fig. 12. (1) Information ranker – This interface defines the contract for the information analyzer. The implementations will grab information from a specified source and use a concrete algorithm to rank the information. The result will be sent to trader instances and help in making the trading decision. 4.3 Order mechanism (2) Information – This class models the financial information. Basic attributes are included, like name, time, and content. (1) The broker collects bids of orders that are the same type (buy or sell) of an equity in a short time and calculate a price that is between the lowest bid and the highest bid, then fill all the buy orders that have a bidding price higher than the calculated price or fill all the sell orders that have a (3) Simple information ranker – This is a simple imple Fig. 10 The real-world brokers use sophisticated mechanisms to manage orders. Roughly speaking, when a new order is placed, there are two ways to achieve it: Market run sequence diagram Front. Comput. Sci. China 2009, 3(2): 235–246 Fig. 11 Fig. 12 243 Information ranker class diagram Information ranking sequence diagram bidding price lower than the calculated price. All orders that are not filled will be rejected. (2) The broker collects orders and records them in a pool if it cannot be filled. Every time a new order arrives, the broker will check the orders pool and use the ones that match the new one to fill each other. If the requested quantities of the orders do not match, the lesser one would be filled partially and kept in the pool. One serious issue of the real-world models is that they can not eliminate slippage. If the broker receives an order delayed by some reasons like network issues, it may fill the order at a price higher/lower than the trader expects. Note that the broker did not intend to produce slippage, but slippage would always be possible because of physical issues. It is not easy to produce the same slippage phenomenon considering the essence of this issue. However, considering the slippage cost, it would be meaningful to implement this 244 Feng WANG, et al. Algorithmic trading system: design and applications feature in the simulator. FiSim uses the following methods to handle orders: (1) The basic order mechanism does not permit slippage. All orders are executed according to history prices – if the order’s bidding price equals or is higher than the requested equity’s history price, it will be filled. Otherwise, the order would be rejected. (2) A configuration parameter “slippage” enables the slippage feature. If it is set to true, FiSim will generate a stochastic slippage for each order. Currently, we use a normal distribution whose mean is 0 and variance is 1 to generate the stochastic slippage. 4.4 Experimental results To the best of our knowledge, Reuters has done some studies on the news information aggregation to make sentimental signals in stock market forecasting. They use the historical data (news) from their own web servers and compute the market index for the market prediction. Our FiSim platform is built for an efficient information aggregation and consulting system providing not only a comprehensive organized information source but also an indicator of its impact to the different industries/markets. Figure 13 shows the snapshot of the working simulator. We create three simple strategies to test the usability of the platform, as shown in Fig. 14. The strategies are loaded through a configuration file and added to the platform automatically. It is easy to add other new and complex strategies to this function. The time used by the test progress is linear with the data size. The data used to test in this project has 764 stocks and is about 150 MB. It needs about 1 minute for a full test. Fig. 15 shows the snapshot of the simulator in testing progress. If we are interested only in some particular stocks, the time would be reduced to several seconds or less. Fig. 16 shows the final testing results of the generated strategies with the detailed outcome. The platform represents a flexible framework that could Fig. 13 FiSim demo Fig. 14 Strategies list Front. Comput. Sci. China 2009, 3(2): 235–246 Fig. 15 Fig. 16 be used in financial projects like selecting or generating trading strategies. It still has many rough edges that could be improved as future tasks, and our next job would be mostly on using the platform in practical financial research. ! " AT is a global trend in the international financial markets. Early performance of exchange-based AT systems and floor trading has shown that AT has made a great impact on market functioning. In particular, it is likely to improve transparency and liquidity of the markets. As with anything, the market eventually becomes more efficient, and the model becomes less and less viable, as does the performance of the AT platforms. AT in the exchange market is and will continue to be a process of evolution, and people will continue to play key roles in expanding the viability of its use. It might not be the final goal to find the perfect trading model for the AT, and what is most important is the seamless human/machine interface that is efficient enough for the traders to make smart trading strategies and make deals at the first time. Since the stock index futures plan has been proposed in the China Stock market, which will be executed in a few months, AT will become more and more important and popular in the China Exchange Market. In the future work, there will be an urgent need to study how 245 Testing progress Final report to choose an appropriate trading model and make effective strategies. # 1. Eriksson S, Roding C. Algorithmic trading uncovered – impacts on an electronic exchange of increasing automation in futures trading. Royal Institute of Technology, Stockholm, 2007 2. Market Risk and Algorithmic Trading. AMD White Paper 3. Berkowitz S, Logue D, Noser E. The Total Cost of Transactions on the NYSE. Journal of Finance, 1988, 41: 97–112 4. MacKinlay A C, Ramaswamy K. Index-Futures Arbitrage and the Behavior of Stock Index Futures Prices. The Review of Financial Studies, 1988, 1(2): 137–158 5. Hogan S, Jarrow R, Warachka M. Statistical arbitrage and tests of market efficiency. Working paper, 2002 6. Hogan S, Jarrow R, Teo M. Testing market efficiency using statistical arbitrage with application to momentum and value strategies. Journal of Financial Economics, 2004, 73: 525–565 7. Gordon Baker, Shashi Tiwari. Algorithmic Trading: Perceptions and Challenges. Working Paper, 2004 8. Leigh Tesfatsion. Introduction to the special issue on agent-based computational economics. Journal of Economic Dynamics and Control, 2001 9. Leigh Tesfatsion. Agent-based computational economics: modeling economies as complex adaptive systems. Information Sciences, 2003, 149(4): 263–269 10. Shu-Heng Chen. Computational Intelligence in Agent-Based Computational Economics. Computational Intelligence: A Compendium, 246 Feng WANG, et al. Algorithmic trading system: design and applications 2008, 517–594 11. Blake LeBaron. Agent-based computational finance: Suggested readings and early research. Journal of Economic Dynamics and Control, 1998, 24: 679–702 12. Aki-Hiro Sato. Frequency analysis of tick quotes on the foreign exchange market and agent-based modeling: A spectral distance approach. Physica A: Statistical Mechanics and Its Applications, 2007, 382: 258–270 13. Dempster M A H, Romahi Y S. Intraday FX Trading: An Evolutionary Reinforcement Learning Approach, 2002 14. Christopher Neely, Paul Weller, and Rob Dittmar. Is technical analysis in the foreign exchange market profitable? A genetic programming approach. Journal of Financial and Quantitative Analysis, 1997, 32(4): 405–426 15. Shu-Heng Chen and Chia-Hsuan Yeh, Genetic Programming in the Agent-Based Artificial Stock Market. In: Proceedings of the 1999 Congress on Evolutionary Computation-CEC99, 1999, 2: 834–841 16. Shu-Heng Chen. Trends in Agnet-Based Computational Modeling of Macroeconomics. New Generation Comput, 2004, 23(1) 17. Christopher J, Neely, Paul A, Weller. Predicting Exchange Rate Volatility: Genetic Programming vs. GARCH and RiskMetrics. Working paper of The Federal Reserve Bank of ST. Louis, 2001 18. Hendershott T. Electronic Trading in Financial Markets. IT Professional, 2003, 5(4): 10–14 19. Michael J. Kearns, Luis E. Ortiz. The Penn-Lehman Automated Trading Project. IEEE Intelligent Systems, 2003, 18(6): 22–31 20. Holland J and Miller J. Artificial adaptive agents in economic theory. American Economic Review: Papers and Proceedings, 1991, 81(2): 365–370 21. Palmer G, Arthur B, Holland J, LeBaron B, and Tayler P. Artificial economic life: A simple model of the stock market. Physica D, 1994, 75: 264–274 22. Shanghai Stock Exchange. NGTS Part Tech Guide SSE D0602, 5–6 23. Shanghai Stock Exchange. NGTS Report Trading Model, 6–10