High frequency trading

Over the past couple of weeks, I have come across many articles on high frequency trading. They all talk about how important computers and software are, but since they are all written financially, there are no details about what the software does?

Can someone explain from the point of view of programmers what high-frequency trading is? and why is computer or software so important in this area?

+56
finance hft
Jul 24 '09 at 11:05
source share
6 answers

To expand on what Paul said:

A server running HFT or UHFT is almost always located in the data center. This minimizes the delay, and also allows algos to use Flash orders (which may be blocked soon) to first view the order flow before the order is broadcast to the market. many algo will evaluate the order in just a few milliseconds, and this is a game in which milliseconds matter. It is known that trading groups pull all the stops, including hiring kernel developers, to create custom OS components in order to better optimize the time between when the order falls on the network adapter and when the resulting action is performed.

There are several large buckets of strategies that are widely used today:

The first is traded before large block orders. To use Paul’s example of buying a million shares in IBM, HFT algo will look for pressure to buy. Branded computers on different exchanges and dark pools will need to exchange information, since the order will be divided and usually executed through several exchanges and dark pools. The HFT algorithm will use statistical / machine models to predict the amount of pressure to buy, and if it determines that this is enough, it will also accumulate stocks from all markets and try to sell them at a slightly higher price.

The second is liquidity refinancing trading, where exchanges will pay market participants for added liquidity. ( See "Direct Boundary Assessment"). Shares that are bought or sold can only be held for a very short period of time. The goal is to collect the discount and break even for everything else.

In both of these types of strategies, the idea is to make pennies (or fractions) on the trade and do this many times a day.

As you may have noticed, there are many HFT jobs available, and therefore, trade is becoming increasingly crowded. I see this as something like stat arb from the beginning of the 2000s, and ultimately trading will not be very profitable, as many players try to do this.

Regarding the importance of software: the question is in milliseconds. Delay is very important, and the code must be hard, fast, and rock resistant. Having an Algot crash and getting into stocks when the market moves against you is not very profitable. The technique for these requirements is necessarily different and requires different skills. The crunch of a complete real-time order book requires some power and good algorithms. It is interesting and interesting.

+57
Aug 14 '09 at 19:48
source share

There are two parts to any HFT system:

  • Real-time trading with low real-time latency - subscribe to books and real-time price information from different sources, execute calibrated algorithms designed to either execute a large order with minimal slippage (i.e. you want to buy 1 million shares of IBM until the end of the day, not moving the market too much), or just try to statistically make money based on short-term arbitrage. This system should also provide good risk and position management tools that allow one or more human operators to effectively monitor and control what the system does.

  • Analysis of data on a large amount of "tick data" (price, time and order information and historical data on previous trading activity in the systems) that want to optimize and "search" for the best algorithms that are executed in real time in part No. 1. that is, "calibrate" and test the algorithms that will run in # 1.

The first requires low latency and extremely good access to markets (i.e., a direct network connection to the exchange with minimal flights). This part usually needs to be written in a language other than GC, such as C or C ++ (a half second delay, while the garbage collector stops the world, can be very expensive). The second, as a rule, requires a grid and a lot of good software for modeling and statistical analysis, AI algorithms, etc.

+19
Jul 24 '09 at 11:22
source share

I would add that the most common applications in this type of trading are, as a rule, CEP (complex event processing). Some examples are Streambase, Apama, and Aleri. On the other hand, people use high-speed databases such as KDB, OneTick and Vhayu to process huge amounts of data.

If you want to understand the technical problems, I suggest that you first look at these suppliers. Their marketing materials will give you a good idea about business applications as well as technical issues.

+8
Sep 10 '09 at 6:19 06:19
source share

At certain points (for example, after the expiration of the futures), you need to do thousands of transactions per minute - obviously, people can not do this without outside help. This BTW is a very stressful time for the programmer, as if something went wrong, there is practically no chance of recovery - programmers tend to watch how their log files go in the stream, slightly trembling with their hearts.

+7
Jul 24 '09 at 11:16
source share

You need to track prices, quickly decide what is going up and down, and buy and sell accordingly. Since there are many different positions that sell the best software that you use for this analysis and execution of transactions, the more money you can make.

It would be better to update the data frequently, indicating interesting trends so that you can quickly respond to them, being easy to use when performing frequently required operations.

+3
Jul 24 '09 at 11:10
source share

Why is computer or software so important in this area?

Highest performance and minimal latency are desirable, because the faster you can react to things, the more money you can make.

+1
Jul 24 '09 at 11:09
source share



All Articles