jeff.hl Profile picture
Mar 5, 2023 13 tweets 3 min read Read on X
1/ Agreed. Papers guide you the wrong way. Academics do not know how to make money quant trading (or why would they be writing?)

How do you get started with real data though? Here's an example: Let's reverse engineer the networking stack at #OKX to minimize order latencies. 🧵
2/ Personally I love studying latency: it's concrete, less noisy than pnl, and forces you to look at the data. The seeds for full-blown strategies often come from tinkering with latency measurements.

Ok let's jump into #OKX. Same process here applies to all exchanges.
3/ First look at the docs and see what stands out. Each OKX API has two endpoints: AWS and AliCloud. This is weird. Do some googling: They launched AWS to make it easier for HFT firms to migrate their tech stack. Makes sense: we were tempted to just use AWS for simplicity.
4/ Read the docs, but also talk to the exchange. Real people will tell you things not written down. OKX is quite accessible, and management is comparatively pro-decentralization. They don't like that a few teams comprise more than half the volume, and want to help new small teams
5/ They'll tell you about "colocation" which is a misnomer since it's still cloud-based, just talk straight to their server and skip the public internet. They'll ask you if you want AWS or AliCloud. If you ask which is faster, the party line is "very similar, both are in HK"
6/ If you only remember one piece of alpha: do your own measurements! We asked them for both setups to measure ourselves

Round trip order time is almost 1ms faster from AliCloud. This is WS order entry, which you can independently confirm is much faster than REST in either case.
7/ This matches our priors: The matching engine is in AliCloud, so unless they do some IEX-style speed bumps it should be faster to trade from there. But again, you don't know until you measure.
8/ There's a subtlety here though. Your strategy needs to process data from other exchanges as an input. Let's say an important tick comes from Binance in AWS Tokyo. What latency does your strategy care about? It's not as simple as server -> OKX round trip.
9/ Rather, you care about AWS Tokyo -> Your machine -> OKX matching engine. Natural places to put your machine are AWS Tokyo, AWS HK, and AliCloud HK. There are more measurements to make here, and I won't bore you with all the details.
10/ The TLDR though (again, you should verify this if you're trading!) is usually just optimize for the obvious thing: order entry latency. This depends on your strategy, and I might do another thread on the details here if people are interested.
11/ The final measurement is always pnl. This is why it's crucial to get a high sharpe strategy with high market share running live ASAP. We ran against our live market making strategy on OKX, and the AB test showed around +20% pnl on AliCloud with high significance.
12/ As important as measuring is, you can slice along so many axes at a time, so choose wisely. Especially in pnl space, statistical significance can take > 1 week for weaker effects. I'll talk about streamlining this process in a future thread. It's an interesting math problem.
13/ But hope this was useful for someone starting out, or gives someone trading on OKX some ideas for ways to optimize their tech stack. Let me know in the comments if there are other exchanges or topics you want to learn about. Happy trading, and happy measuring.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with jeff.hl

jeff.hl Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @chameleon_jeff

Jun 30, 2023
1/ Cool to see people trying market making and documenting the progress in public!

Usually it's an opaque space and hard to learn from others. Most professionals want to protect their alpha at all costs.

Here's my advice on dealing with these practical issues 🧵
2/ First of all in HFT there are "strict" problems that you must get right and "loose" problems that you just want to 80/20 at the beginning.

More problems than you think will fall into the second bucket.

Problems will migrate to the first bucket, but slower than you think.
3/ When getting started, only model, strategy, and latency should be part of the first problem class.

Some important sounding things that I would recommend the 80/20 principle on:
1) inventory management
2) sizing
3) hedging

I.e. almost all of the issues @pedma7 mentioned
Read 8 tweets
Jun 24, 2023
1/ Order book perp DEXs are a hot "narrative" these days.

Most protocols run order books offchain. What does this mean for MEV?

Answer: it's far worse than sandwiching and frontrunning on AMMs.

A thread on why onchain order books are the only viable protection for end users 🧵
2/ I'm going to focus on problems, ideas, and approaches in this thread.

I'm not going to call out any specific projects.

But hopefully after reading this thread you more objectively assess what each project is building.
3/ First off, the mission statement.

Perps on CEXs have found the most product-market fit out of any business in crypto.

But many users want to move off CEXs.

So the problem is to build something truly decentralized but offering the same UX as CEXs.
Read 26 tweets
May 15, 2023
1/ Many in crypto HFT rely heavily on historical simulation, while A/B testing is an afterthought.

In my experience there is real alpha in live testing well.

With proper experimental setup and sufficient market share, you can glean causal insights not available in tick data 🧵 Image
2/ First some background:

A/B testing is a useful tool in consumer tech.

Classic example: Google optimized their shade of blue for an additional $200M in yearly ad revenue.

When controlled experiments are cheap, A/B testing is a great way to juice marginal gains.
3/ Crypto HFT is an interesting domain for a few reasons though:

1) Your experiment has market impact at scale
2) You can simulate with historical data

So it's less clean to A/B test, and there is a viable alternative. So, is it still worth the trouble?
Read 15 tweets
Apr 30, 2023
1/ There's a lot of edge in building a production crypto HFT system the right way.

The abstractions should be rich enough to prevent careless mistakes but not too rigid to work with.

I converged on these after countless hours of building, debugging, and rewriting code 🧵
2/ Let's focus on a concrete example: How do you deal with continuous quantities?

Doing math in code with raw numeric types is error prone. Multiplying the price of one symbol by the size of another is sure way to blow up your strategy.

Just be careful? Nah, we can do better.
3/ A pervasive feature of our trading system is the concept of "units."

The first idea is to have separate types for Price, Size, Notional, etc.

Define relations:
Price * Size = Notional
Size + Size = Size
etc.

But Size * Size? Nonsensical, and now you get a compiler error.
Read 12 tweets
Apr 25, 2023
1/ Building a crypto HFT system is a challenging and rewarding journey.

A mega-thread covering:
Trading strategies ("what")
The infrastructure and latency optimization ("how")
Exchange selection ("where")
Market dynamics ("who")

What I wish I knew when getting started 🧵
2/ Starting out with the core of the trading system: the strategy itself.

First some general HFT strategy selection advice before specific alpha:
3/ A specific strategy on locked books with maker rebates.

This is a case study in the alpha research process, going from raw data to an idea to a strategy:
Read 16 tweets
Apr 22, 2023
1/ We've talked before about how latency is an important component of every crypto HFT strategy.

The optimization process is fun detective work because the exchange's tech is often a black box.

A thread on what to measure, graph, and analyze for your production HFT system 🧵 Image
2/ The first important number to look at is the "exchange timestamp" field of websocket messages and REST responses.

If multiple time fields exist, use the one corresponding to matching engine time. The other fields are edge server times, which add more noise to your analysis
3/ Matching engine time is crucial because network delay and the exchange's internal machine topology add noise to the outgoing timestamps on your end.

Reconcile the matching engine and your outgoing timestamps and you can quantify and optimize the factors in between
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(