Optiver $450M profit, 700 employees. IMC is another options HFT with 500 employees. These specialist shops do in-house theoretical pricing, whereas the fastest HFT shops usually do not. Apparently, there’s still some nice profits for smaller hft shops despite the arms race!
I think the “exec algo” type is lesser known.
- VWAP is best known example
- bulk orders
- used by many big sell-sides (as well as buy-sides) to fill client orders
- the machine acts as a robot rather than a strategist
- goal is not to generate alpha, but efficient execution of a given bulk order
- Execution algorithms predict future market movement, mostly based on analyzing historical patterns, by machine learning
- Market Movement prediction is a data intensive job. Sophisticated AI systems are set up to solve this problem.
- 10’s of TB of tick data needed
- volume profile
Case in point — When I saw historical highs in copper price, I thought it would drop (reversion) within hours, or at most couple of days, but it just kept rising and destroyed my position. (A necessary condition for my undoing is margin. No margin, no collapse.)
I guess China Aviation Oil might have something like this?
Background: VWAP strategy is known to have minimal market impact but bad “execution risk”.
Suppose you are given a large (500,000 shares) Sell order. Suppose your goal is minimal market impact i.e. avoid pushing up the price. What execution strategy? I don't know about other strategies, but VWAP strategies generally participate according to market volume, so given a decent implementation the market impact is often … reduced.
I think the idea of the Exec risk is the _uncertainty_ of the final block price. If an implementation offers a very tight control and results in well-controlled final block price, then exec risk is small. http://www.cis.upenn.edu/~mkearns/finread/impshort.pdf explains with an example —
suppose MSFT trades 30 million shares on an average day. If a trader has three million MSFT shares to trade, a VWAP algorithm may be appropriate. However, if the trader
gets 30,000 shares of MSFT to trade, then the savings of market impact (by spreading the trade over the whole day) is not significant compared against the opportunity cost the trader could save by trading the stock within the next few minutes. Quick execution means the uncertainty (or std) in “final block price” is much reduced. With a small order you would achieve something close to the arrival price.
A vwap algo starts with a “model profile”, which tells us each hour (or minute) of the trading day typically experiences how many percent of the total daily volume.
Then the algo tries to execute according to the model profile, executing 10% in the first hour. The actual market profile may show a spike in the second hour. Suppose 2nd hour usually gets below half of first hour according to the model profile, but we see it's going to more than double the first hour, because the past 5 minutes show a very high spike in volume.
Question is, should we increase our trade rate? I guess there's reason to do so. When the volume spikes, we should trade bigger chunks so as to let the spike “mask and absorb” our market impact. If we don't capture this spike, then 2nd hour might end up being 80% of daily volume, but we only put in 4% our quantity, so our remaining quantity would cause market impact.
However, it's also possible to chase the wrong signal. The spike might cause a large rise or (more likely in realistic panic-prone markets) drop in price, which could reverse soon. Suppose we are selling a big quantity and the spike causes a big drop. Our active participation would further deepen the drop. We might do better to patiently wait for a reversal.
I learned from a seminar. I didn’t do any research. Just some personal observations.
- HFT is different from a broker execution algo in terms of holding period. HFT never holds a position overnight.
- HFT is alpha-driven. In contrast, a strictly sell-side trading engine is driven by customer flow.
- however, HFT doesn’t use market orders as much as limit orders, so it may appear to be market-making.
- an HFT engine makes many, many trades in a day, but so does an execution algo.
- HFT usually makes no directional bet. In contrast, fundamental strategies have a view. I know many sell-side traders have a view and may hold inventory overnight.
I think the distinction can become unclear between HFT and execution algos.
slippage = difference between 2 prices — the earlier quoted by an OTC dealer (FX, bond, swap…) vs the requote when you take that quote. In many quote-driven markets, all public quotes are always indicative.
slippage = difference between 2 prices – the EOD benchmark vwap vs your block order’s execution vwap, assuming order filled within a day.
If order is to be executed from 2pm to 4pm, then the benchmark vwap should be calculated accordingly.
slippage = difference between 2 prices – the price that triggered your trading signal vs execution price. see http://en.wikipedia.org/wiki/Implementation_shortfall
Suppose we have a 5000 IBM buy-order. VWAP is the benchmark chosen. Our goal is to predicted market impact. If the predicted MI is too large, then we should either be very careful, or decline the block order.
The predicted market impact is also the predicted slippage.
Let's put in some fake but concrete numbers. Suppose we estimate that submitting this block buy would raise today's eod_vwap by 100 bps. That means whatever today's eod_vwap happens to be, our execution_vwap will be higher by 1%.
If eod_vwap is $70 then our market impact is about $0.70
If eod_vwap is $75 then our market impact is about $0.75
I think we should inform our client that we can execute the block order at the benchmark eod_vwap + some spread. I would quote a spread like $1 given spot is $69 and I estimate today's eod_vwap to be $69.50.
Suppose client accepts and we execute the order and execution_vwap = $69.9. What's the realized market impact? We can only imagine “what if I had not done this big order”. However, we can observe the benchmark eod_vwap = $69.10. We performed better than quoted. Slippage = execution_vwap – eod_vwap, so our slippage is smaller than our quote!