The industry as a whole provides net value to the market by via higher liquidity and tighter spreads.
The arms race is a necessity due to rising competition. HFTs cannibalize each other every year. People on the outside seem to think being in HFT inherently means you’re printing money but they don’t acknowledge how tough the business actually is. Many firms have either collapsed or have been bought out over the past decade.
Market makers specifically (who inherently have to operate in HFT time horizons) don't even compete with low-mid frequency hedge funds and props. They don't compete with retail investors. They strictly compete against other MMs to capture the spread.
Out of curiosity, why do MMs have to operate on HFT time horizons? Couldn't they operate on a somewhat lower frequencies by quoting wider? Sure, they won't see the same profits, but why is it impossible?
It's interesting the way you connect quoting with wider with lower profits. In a vacuum, clearly the opposite is true. But you're leaving out the part that you only stand a chance to trade and therefore profit if you have the very best price, so you can't quote wider otherwise your competitors will get the trade. If your quote is a million dollars wide, you won't make a million dollars less frequently - you'll never make anything at all.
That's all true for the very strictest definition of a market maker, which is pretty much necessarily HFT (in list US equities). But there are other types of traders that are successful of course, because their edge comes from thinking about the market in a different way. In situations where finely-tuned, data-informed, low-latency algorithms do not have the confidence to give good prices (e.g. illiquid securities or during times of volatility), these traders might be more successful.
Oh yeah, when I said "lower profits" I didn't mean per roundtrip, but overall lower profits over a longer period of time due to fewer trades happening at wider quotes. HFT almost always quotes minimum spreads, so my question was why you couldn't be successful quoting larger spreads (not $1M, but let's say 2-10x the normal spread) while trying to be "smarter" as opposed to faster, since with wider spreads you'd already be in front of the order queue when the price moves, in front of the HFT trader who has to react to the movement to quote his tiny spread.
I'm trying to understand where the market maker = necessarily HFT comes from. After all, we had markets makers well before HFT too. I understand that MM can be particularly profitable when doing HFT, but why is HFT a necessity?
Your intuition is good, I think it's the terminology/semantics that are causing you confusion. What you're describing is a valid way to make money as a trader, but most people don't call it market making. The wider you quote relative to other market participants, the more risk you take on - because your volume is lower, you have to hold on to your positions longer, exposing you to greater fluctuations in price. Market making is very much about not exposing yourself to this kind of risk.
In real terms, if you quote a penny wide market, there's a much greater change that you can both buy and sell in a short period of time to capture that penny. However, if you quote a 10c wide market (when everyone else is quoting a penny), you might buy shares at $10, but it might be a much longer time before anyone wants to buy them back from you at $10.10 - in fact it might be never, they could go straight to 0!
Again, quoting that 10c spread is perfectly valid, it just means that your edge begins to be less about capturing "flow" as much as it is about predicting the direction of the stock over a longer time horizon.
I'm not totally sure what you mean by "hedge the inventory risk." How would you accomplish that? You can reduce your position size but that's not hedging, it's just reducing your exposure in the first place. You could use options, but that 1) exposes you to other risks and 2) is prohibitively expensive given the cost to transact in that market is much higher.
The best way to keep risk low as a market maker is to keep inventory low, which means you need to get out of positions quickly, which means you need to have competitive prices to increase your chance of interacting with order flow.
Traders (be it hedge funds, props, retail, anyone) will only "take your action" if you price competitively. You'll never get your orders filled. The open bid and ask as per whatever the exchange quotes are really the only prices that matter when it comes to what actually gets executed.
Also even if you do quote wider, to effectively capture the spread, your buy on one side and your sell on the other side still have to basically occur simultaneously which is where the demand for latency comes in so you really can't escape it.
That said there are ways to still be profitable even if you know you're not the fastest gun in the west across the most exchanges. Without going into too many details you'd have to selectively choose where/what you trade. Which is not trivial at all of course.
Hm, maybe I'm fundamentally misunderstanding something. Let's just say the price is a random walk. It's not directly relevant to the argument, but for simplicity. An HFT MM will make money by continuously quoting ask/bid at the best price, i.e. a lot of trades, capturing a very small spread each time. Given that it's a random walk, buy and sell don't always occur simultaneously either, e.g. in a trending regime where the HFT MM may start pulling quotes due to risk checks and/or inventory/hedging concerns.
So if I am an MM that quotes a wider but gets fewer executions at larger time intervals, shouldn't I be able to also make profit? After all, my queue position is in front of the HFT MM because I put in orders earlier (since I am quoting wider), latency here is irrelevant.
Existing profitable MMs aren't all equally fast. So the slower ones that trade on the same exchanges or even the same indices have to be profitably trading at a wider spread.
HFT isn't a concrete term so I guess technically there's no hard line to draw for how fast your roundtrip times have to be to be profitable. But if you are trading wide enough where you think latency isn't a factor, aren't you really just predicting where you think the book will go "far" ahead in the future? MM is inherently a reactionary business (with some effort put into anticipating the price moving against you in the very very short term).
> But if you are trading wide enough where you think latency isn't a factor, aren't you really just predicting where you think the book will go "far" ahead in the future
Yep, or rather, predicting where the market will not go to avoid the price moving against my quote. My impression was that HFT is all about being fast, as opposed to smart, since you can't make complex predictions on nanosecond scales. Complex models don't fit on an FPGA. So couldn't you get an edge by being just a little bit smarter with predictions but slower and quoting wider spreads? And just to be clear, I'm not talking about minutes here, but maybe milliseconds to seconds, which I think wouldn't be considered HFT today?
There is trading activity in the milliseconds-seconds horizon as well. I'm sure all the big HFT players participate plenty. These just wouldn't be considered MM strategies.
Your original question was why MMs have to operate at HFT horizons. MMs by definition are liquidity providers (which means high availability and high volume at competitive prices). In some cases (DMMs) they're legally obligated to do so at some well defined baseline. And in that specific context HFT speeds are required.
To me, MM is the activity of providing liquidity with passive buy and sell orders - profiting from the spread while taking on inventory risk. That's also how exchanges define it, paying (or giving discounts to) traders whose orders are filled passively - the whole maker/taker incentive that was invented to attract customers a few decades ago. And we had human market makers well before electronic markets, and we still have them for illiquid markets today. They are (still now) called Market Makers even though they trade on minute scales!
So why is it not considered Market Making if I make decisions on millisecond or second scales? I don't understand how that is related to time horizon. So that's what I meant with original question, why can't I be a profitable market maker without HFT speeds? I still don't see the reason... Or are we just arguing about definitions here? Maybe when you say MM, what you really mean is HFT, but in my head the taxonomy looks completely different.
DMMs are a different story since that's basically just an SLA you have to adhere to, but not talking about DMMs in this case.
Slow market making is still market making, although rarely a good idea in my view. There are instruments with market makers operating at millisecond time scales. Not nearly as many as a few years ago, but they do still exist.
This is where your logic is faulty. On the time scale of for example days, the price is definitely not a random walk. If stock XYZ has a price of $100 at 9:00 am, and you put in a buy order at $99.50 and a sell order at $100.50, there are a number of ways for it to go:
1. The price drops to $99, your buy at $99.50 triggers and you now are long (expect the price to rise), the price rises to $101, your sell at $100.50 triggers, you make $1.00 and are back to your original position.
2. The price rises to $101, your sell order at $100.50 triggers and you are now short, the price drops to $99.00, your buy order at $99.50 triggers, you make $1.00 and are back to your original position
3. The price drops to $99, your buy at $99.50 triggers and you now are long (expect the price to rise), the price continues to drop to $95, you now have a share of XYZ worth $95.00 which you are offering to sell at $100.50. Either you exit your position (and lose $4.50) or stay in the position (in which case you have $99.50 less available to invest than before. Whether or not the position makes sense to keep, you are now a long-term investor, not a market maker.)
4. Same as number 3 except that the price rises to $100.50, your sell goes and you are now short XYZ, the price continues to rise to $105.00 and again you either exit the position and lose money or don't exit and are long-term short XYZ (and never make the money back if the price never drops back down).
In order to make a profit, 1 and 2 have to happen 10x as often as 3 and 4 for the particular values mentioned above.
If you widen your spread, you will make more money each time the random walk of the market goes from one side of your spread to the other, but that will happen less often (whereas large one-way market moves that more-or-less permanently move the price to a level where it no longer crosses your spread stay roughly as probable as before).
If you narrow your spread, you will make money more often, but less each time. HFT firms are an extreme example of this - they have very (very!) narrow spreads that they trade on millions of times per second, pocketing a fraction of a penny each time (unless the market moves, in which case they lose money just like any other market maker, but events that happen every minute are "rare" when you are working on the timescale of microseconds).
There is a phrase, "picking up pennies in front of a steamroller", used in finance. The basic idea is that there are pennies (spreads) lying on the ground for you to pick up, but the steamroller (an actual movement of the market) could come along at any time and crush your profits.
You’d be surprised at how many traders and QRs in HFT (or at least in OMM) often reach for Excel. Granted this is way more common among older people in the industry. And as a technologist OP wouldn’t have to worry about writing or maintaining Excel scripts :p
Excel is a very effective tool for many things but suggesting that it would be useful to spend time learning Excel to prepare for HFT is really bad advice.
haha yeah and I always wonder why especially engineers are so creative in using Excel as a graphics/painting tool :) Looks good, but a nightmare to read in a programmatic way ^^
Which popular H1B source countries teach COBOL? I feel like the advent of cheap offshore programming came well after the decline of COBOL. Though my sense of history can very well be off.
I'm sure that Tata/Infosys/Cognizant will be happy to supply you with dozens of CVs claiming COBOL experience and then give crash courses to any candidates selected.
Live tells aren’t taken that seriously or considered a significant factor outside of laymen.
That said I do think the dynamics of poker change more than most other board/card/table games when going from live to online or vice versa, with my extremely limited understanding of chess, go, and Magic.
As others have mentioned, they have ways of writing OCaml specifically to not trigger the GC or perform any excessive allocations. Helps when you have your own version of the compiler and a branch of the language itself.
Also as someone else mentioned, Jane Street doesn't try regularly competing (to my knowledge as someone in the industry) at trading horizons that demand lowest the lowest possible latency.
I feel like the jane street tech blog has exceptionally good quality, with a really nice mix of academic and practical ideas thrown in. Do you happen to know of any other video series with this kind of exposition?
Unfortunately I agree with you Jane Street's tech blog and published lecture series are great and probably the best I know of. They make for great advertising to boot. Lecture series like Jane Street's are common in larger trading firms (more than 100-150 headcount) but I haven't seen one of JS' caliber yet.
If you welcome general corporate blogs, I think Google AI's technical blog is quite good. Their frequent publications on distributed computing strike a good balance of academic and practical ideas:
I feel like self checkout kiosks already solve this. Commodotized Amazon Go tech is a minute improvement in convenience compared to traditional cashier -> self checkout.
Minor compared to self checkout seems understating the impact depending on where you are and how busy the store is. I find myself waiting in line for a self checkout regularly. (Target and recently Home Depot.) Compared to just walking out, this would save at least 5 minutes for each visit in my experience.
Absolutely not. The difference in waiting times between cashiers and the self checkout lane is minimal (as it obviously should end up). Self checkouts require a reasonable amount of time to go through, even without a queue (when there often is one at the shops near me). Simply walking in and out would be a massive change from self checkout for buying a small number of items.
Self checkouts allow paying with cash as well. Even more so than regular checkouts. I tend to just empty all of my low value coins in to the self checkout knowing a machine won't be pissed off about counting them all.
The crucial difference is self checkouts displace the labor onto the end user with more or less the same delay as a checkout. This will remove both the delay and the checkout work task.
There’s “mangling” where symbols have an underscore put in from of them. But I think the point is that namespaces functions would need to be mangled and thus be difficult to call.
> But I think the point is that namespaces functions would need to be mangled
Namespaces don't need to be mangled at all if they are interpreted as symbol prefixes.
I'd prefer that, say, namespace foo::bar resolved into foo_bar for all symbols (even that meant risking namespace naming collisions) to not having any support for namespaces in C.
In fact, this approach is already used to implement pseudo-namespaces, so that wouldn't be much of a stretch.
> What's the point? How is typing foo::bar better than typing foo_bar?
You're missing the whole point of namespaces. The goal is not to replace foo_bar with foo::bar. The whole point is that within a scope you can type bar instead of foo::bar, or bar instead of foo::baz::qux::bar, because you might have multiple identifiers that might share a name albeit they are expected to be distinct symbols.
And also because of function overloading in, say, C++. To link code two functions with the same identifier which differ only in signature (e.g. types of arguments), we need to pass them to linker as two different functions with different identifiers.