Sniper in Mahwah [1] details a lot of the structure of HFT trading infrastructure, especially how microwave towers are used. It's a rabbit hole though, he's got tons of stuff on the various ways HFT networks make things work, including their licensing and contracting.
I remember talking to a guy who worked on an HFT firm's in-house microwave network. Sniper In Mahwah is (or at least was - I'm a little out of that world these days) pretty much bang on the mark. It's amazing what you can find out from public records, a bit of cycling and a lot of collating.
Edit: reading through some of his more recent updates I think he's still on the money
Slight tangent (sort of) - has anyone else noticed that a lot of these high speed trading firms are hiring a lot more FPGA engineers lately? Hudson River Trading and Jane Street just to name a few. I regularly checked their job postings over the last year because I was looking for an internship, so that's why I noticed the change. Any thoughts?
There is barely any software in the hot path of competitive equity HFTs these days. Even the most finely tuned C++ is probably on the order of single digit micros tick to trade, but the goal is sub-micro.
There's a huge amount of software trading in the 1-10us range, probably more than pure hardware. Fpgas often play a role in these stacks as market data parsing/disseminating and order entry however.
The quickest in terms of tick-to-trade (MD received to trade) are certainly all hardware, but having better connectivity changes the game by a lot. Latency arb trades generally aren't that great, the most competitive in terms of PnL don't depend on (but usually utilize) tick-to-trade style speed.
From a handful of conversations I had with people in HFT, researchers develop models in more conventional languages like java or python. The decision boundaries of these models are then translated into FPGA instructions for speed.
Good ones get paid like devs in my experience which, depending on your mental model, is likely somewhere between a sysadmin and a quant. However successful trading firms tend to pay well, especially those who contribute to their bottom line. Good devs are usually not the highest paid, but could well be in the second highest paid tier.
It very much depends on the company you're working for. I've always been fairly keen on work/life balance and haven't found it that hard to find finance firms that respect (and even embrace) that way of thinking.
Finance firms have increasingly had to compete with tech firms for tech talent and many have moved to offer similar benefits.
Some do this because they believe it's inherently healthy, others because they feel they have to compete and it's a purely utilitarian matter. Others just offer more money instead. Interestingly, it's not always that much more in the long run.
It’s common to receive an annual bonus in cash, with some percentage deferred for a few years in some form. The form can vary: hedge funds often put the money into their fund(s) and you can withdraw it after a couple of years, publically traded companies tend to offer restricted stock units. The more you earn, that larger the percentage that is deferred too usually. The fraction can be anywhere from 5% to 50%.
There is no mention of the fact that fiber is more reliable than microwaves. Inclement weather can cause substantial packet loss in a microwave link. Fiber has no such issue. Getco et al may not have made perfect decisions, but the fiber <-> microwave comparison is not apples to apples. That said, still an interesting article.
True. I believe most of them have a fibre backup. I’ve worked on ultra-low latency microwave at 80GHz that we were selling to HFT network providers, and the needed the fibre fallback whenever it was raining, but apparently the latency difference of the radios gave them a massive advantage when the conditions were good.
If you found this interesting, you might also like this classic Neal Stephenson piece for Wired, "Mother Earth, Motherboard": https://www.wired.com/1996/12/ffglass/
Very interesting read, although like most things HFT it just all seems so ridiculous. Why aren't exchanges just rate limited so everyone gets the same execution time? Because I have better execution time I get to profit? I don't see how that adds any value to anything...
> Why aren't exchanges just rate limited so everyone gets the same execution time?
Why would they rate limit them? Better yet: why do you think it’s better for the market that everyone is put on even footing?
> Because I have better execution time I get to profit?
Yes. Just like better information allows you to profit. Advantages exist in the world. Do you think better execution is trivial to develop?
> I don't see how that adds any value to anything...
HFT is fundamentally the same process as market making, but faster. Market making brings buyers and sellers together to exchange securities; doing this process faster improves liquidity, which in turn improves price discovery, which makes the market more efficient overall.
Just because you cannot see the value doesn’t mean it’s not there.
Market-making is bridging a gap in time between when the seller was in market and when the buyer will be in market. If I need to race another HFT by 10 µs, I'm not routing society's capital in a more productive direction, I'm not even enabling a trade that wasn't already destined to happen.
You need to prioritize orders in the market by some objective metric. You want a metric that rewards good behavior and punishes behaviors you don't want, for the market as a whole, not just any one participant.
Almost all markets now prioritize on price. An incoming sell order will interact with the highest priced bids first, and an incoming buy order will interact with the lowest priced offers first. Think that's common sense? In the pit days, markets were sometimes prioritized based on whether the guy was your cousin or if your dads were fishing buddies. Better price? Oops, didn't see you, pal.
But say 15 traders all want to buy at the best price. Who gets filled when a seller comes in with a market order? You could:
1. Prioritize equally: Give everyone bidding an equal piece. Fair's fair.
2. Prioritize by size: Bid more contracts at the price and get a bigger piece. You wanted it more than anyone else.
3. Prioritize by time: First to bid at the price gets filled first, then second, and so on.
Over years many ideas have been tried and nearly all markets worldwide have settled on 3 or some variant of it, why? Batching orders together as in 1 encourages people to split their interest into many small orders. It also discourages traders from sticking their neck out to make the best price first. Why bid alone when you can wait for others to bid with you? Likewise with 2, traders will try to game the system by placing very large orders and are rarely willing to improve prices.
So we end up with 3 which causes some speed jockeying in return for forcing traders to bid their true values right away to undercut on price, to everyone else's benefit. In return, they get rewarded with trading first.
As someone not in the industry, I don't understand why anyone should use a market order. I don't even see what the downside would be to outlawing it or why professionals would ever use it. Particularly ever since the publicization of "flash crashes".
Furthermore when I place a limit order close to the market I almost always see the price move away immediately, and I can't help wonder if somehow it's being manipulated to try to get me to chase it. If I log off and wait, it frequently gets executed after a few minutes.
I was chagrined to find that a limit order I placed yesterday was partially executed. Of course I should have made it "all-or-none".
People say the market keeps getting more efficient due to high speed trading, but to me there's something lacking in the definition of efficiency. If "the market" isn't stable enough for a reasonable human reaction time, that's worse, not better.
My thoughts aren't well organized right now, but basically I feel like there's something about the ignorant raging that one reads about HFT that points to a real, but subtle problem.
Edit: Look at it this way: I don't have liquidity, unless I am willing to place a market order. But the market is a leaky abstraction - I'm potentially hanging myself out to dry with a market order. On the other hand, with a limit order, I do not have liquidity because other people trade faster than me. As I described, I tried to sell a certain amount and it ended up taking 15 minutes and only executing 1/5th. So an efficient, liquid market that is supposed to be _better_ seems _worse_ from my perspective.
If you want to fill a limit order similar to a market order but with limits you should cross the market, not rest near it.
The reason professionals might use a market order even knowing about flash crashes is that there are certain positions where not filling has virtually unlimited risk regardless of fill price. Hedging option positions for instance.
I think the continuous price/time priority limit order book is flawed, but the least bad option out there, similar to democracy. Speed will still matter in batch auctions if other continuous exchanges trade correlated products--the only way to prevent that is to force all trading to happen worldwide on the batch auction exchange, leading to monopoly rents for the exchange operator. Is it better to have high fees without arbitrage than extremely low fees and tiny arbitrages where fast traders are netting fractions of a basis point? It's not clear to me.
Also lots of liquidity in ETFs and other derivative products is provided based on being able to hedge quickly in other tickers with high probability. If I'm making a market in XLF (S&P Financials ETF), but my orders to hedge in BAC, GS, MS, C, ... all get held up in a batch auction, that's extra risk. I can't make a tight spread, large size market in the ETF since the price of the basket components can drift away after I get a fill.
Budish also argues that arbitrages aren't competed away. It's true that arbitrageurs will never eliminate arbitrages, only make them last for shorter periods of time. However, natural market participants can change their behavior to eliminate them, and they have.
If everyone trading S&P 500 futures also traded SPY with orders that arrived simultaneously, fewer arbitrages would exist to be exploited. You don't even need to be fast to do this, just precise with timing. This kind of routing is very common in equities markets and it's a big part of why many early HFT scalping models no longer work regardless of how fast you are.
Frequent batch auctions may lead to unintended consequences. You end up with a deadline and there are information arbitrages and latency games in playing as close as possible to the deadline. Markets don't exist in isolation as the real world really does exist in the real world.
That’s not the point. Step away from the idea of one market maker intermediating a trade between a buyer and a seller who would otherwise miss each other. Conceptually, automated market making improves liquidity by enhancing price discovery. The markets become more liquid because prices become more efficient, and prices become more efficient because buy and sell opinions are much more rapidly absorbed into the market.
The faster the market makers trade, the tighter the feedback loop from buy and sell signals in the orderbook becomes, and the smaller the spread between competing prices.
I don't think routing society's capital in a productive direction is seen as a necessary criterion for allowing two parties to make a trade between themselves.
Sometimes speculation can help your speculation. If your speculation is not too speculative then your speculative speculation is worthy of speculation ;-)
That is, slapping black boxes together sometimes works despite the risks.
[1] https://sniperinmahwah.wordpress.com