Some thoughts on the design and development of High Frequency Trading algorithms on SGX

Some thoughts on the infrastructure, and what's needed to implement a software application that can perform HFT on SGX (or on any other stock market).

For each stock market, a table/database is needed to store a list of all stocks, its BVS (book value per share), market capitalisation, EPS (earnings per share), PE ratio, dividend yield, margin of safety. Another table needs to hold a list of trades performed by the company, so that current holdings and costs of investment can be calculated. In addition, for each market, maintain a table of trading fees for each transaction, whether trading fees are fixed, or dependent on size of trade. For each market, or vendor, create an algorithm that calculates how much it costs to perform a single transaction, and execute this algorithm whenever a trading is performed, to calculate and store the transaction into the table. Yet another table is needed to track the amount of money to be allocated to each stock, and at what price level.

One trading algorithm is to drive down the price of a stock, by selling it down, then buying it (at the lower price) to create the illusion of a stock that is losing value. For this algorithm, the desired ending price, the starting stock price, the start date, and end date needs to be kept (so that the algorithm can keep track how many days/months you can execute this algorithm for), in addition to the amount of money to be allocated to this execution, the amount of money to be allocated to each stock price level.

Yet another trading algorithm is to drive up the price of a stock, by buying it at progressively higher prices, to create the illusion of a stock that is gaining value.

You'll also need a monitoring routine, that checks

  • each stock's current price against the desired price, 
  • whether a stock has reached the stop condition and if so, to stop trading.

It is rather relatively easy to spot whether trading algorithms are performing transactions. At the time of writing, on SGX, it appears that there are trading algorithms that are programmed to trade in 1 lot (1000 shares). For share prices that are less than 10 cents, this does not make sense for humans to trade, because, assuming the share price is 9 cents ($0.09), trading in 1 lot would costs $90 (not including trading fees, etc). Including trading fees, the trade would be about $120. In order to recover the investment, the stock would need to go up/down by over 60% in order to recover the trading costs for 2 transactions (buy and sell, or sell and buy)!

Such a flaw (trading in 1 lot) shouldn't exist, because it allows people to detect algorithmic trading. So, you'll need a routine that can analyze the costs in performing 1 or 2 transactions, and adjust the volume of the transaction so that the cost of the trade is significantly lower than that of the cost of the stock involved in the trade.

Targets of such trading algorithms in the past few weeks, I believe, are LionGold, Asiasons, Sky One, Viking, etc.

So, what is the infrastructure needed? You'll need some

  • computers, and network, that can connect to the stock market.
  • financial advisors who can calculate the risks and margins of safety for each target stock.
  • developers to code the algorithms and applications.
  • guys to maintain and fix any IT issues that arises.
  • database guys to ensure that your databases are protected, safe, and have backups.
  • support guys / consultants to interface between the developers and the advisors.
  • a high speed connection to the stock market


Published Wed, 6 Nov 2013 @ 10:57 AM by chuacw
Related articles: