Contents
- Bybit trails Binance by tens of milliseconds: a trade that can't lose
- A 30-day backtest: 88% winning trades and not one losing day
- Bybit's taker fee turns +$20,000 into −$58,000
- At a 1 bp fee, latency arbitrage wins 30 days out of 30 again
- 80 ms instead of 10 ms: a loss on 29 days out of 30
- What a millisecond is worth: the first 30 ms are nearly free, the next 120 cost three quarters of the move
- Liquidity at Bybit's best price drops fivefold just as the latecomer arrives
- More trades, less money: +$82,700 before fees, −$35,000 after
- Binance–Bybit lead-lag: 70 ms on our clock, 30 ms on the exchanges' clocks
- ETH and SOL: the same picture on Ether, and on Solana the spread eats half the window
- The sober part: what low latency actually buys in HFT
- What this backtest does not show
- Is speed worth paying for? Find out your fee first
Bybit trails Binance by tens of milliseconds: a trade that can't lose
Picture a money machine. The BTCUSDT perpetual trades on both Binance and Bybit: the same Bitcoin against the same dollar. When the price jumps on Binance, Bybit has to catch up. And it does, late.
We took the order books of both venues for 30 days in a row, 15 June to 14 July 2026, and found every moment when Binance's mid-price moved 2 bp or more within 10 milliseconds. There are 8,100 of them, and the average jump is 3.0 bp.
Binance jumps and stays at the new level. At that instant Bybit has covered 0.4 bp of the 3.3 still to come. For a few dozen milliseconds it shows a price that is already stale, and you know which way it is wrong.
The rule could not be simpler. Binance jumps. 10 ms later we take the best price on Bybit in the direction of the jump, no more than $10,000 at a time. One second later we close at the best opposite price. No forecast needed: Bybit's future is already printed on Binance.
A 30-day backtest: 88% winning trades and not one losing day
Over the month that is 8,100 trades and $71 million of turnover. 88% of the trades make money. The average trade earns 2.8 bp, with the spread already paid on the way in and on the way out.
The result: +$20,017. The worst day made $176, the best $1,654. Not one day lost money.
The line climbs without a single step down. This is usually where someone orders colocation.
Bybit's taker fee turns +$20,000 into −$58,000
A market order in and a market order out means paying the taker fee twice. Bybit's public table for perpetuals charges 5.5 bp a side at the entry tier and 3.0 bp at the highest one.
Every trade of the rule adds up the same way. Let be the size of trade in dollars, the smaller of $10,000 and what sits at Bybit's best price; the direction of the jump, up and down; and the best Bybit prices we cross on the way in and on the way out; and the fee per side:
Here is the bill at the entry tier: −$58,283. At the top of the table, −$22,692.
It isn't a bad month: every one of the thirty days is in the red. It isn't the spread either: half of Bybit's spread is 0.008 bp, one tick. The rule did exactly what it should, and the same 88% of trades went the right way. A trade earns 2.8 bp; the till takes 6 or 11.
The arithmetic is short. The rule breaks even while the fee is no more than half the average trade, bp a side. The whole public table sits above that line.
At a 1 bp fee, latency arbitrage wins 30 days out of 30 again
Fine. Say you are not a retail client. You bring the exchange volume, quote under obligations, and pay 1 bp a side.
The machine works again. The month closes at +$5,781, and again all 30 days of 30 are positive. The worst day made $11, but it made it.
The share of winning trades has dropped from 88% to 56%. The margin is thin, but it is there. All that's left is to be fast enough.
80 ms instead of 10 ms: a loss on 29 days out of 30
Everything above assumes entry 10 ms after the jump. Now let's be late.
At 50 ms the $5,781 shrinks to $859, with 19 positive days out of 30. At 80 ms it becomes −$4,983, with one positive day. At 150 ms it is −$12,557, and no day is positive.
Forty milliseconds cost the whole result. Thirty more turn the machine into a daily loss. The fee didn't change, the rule didn't change; only our place in the queue for the stale price did.
What a millisecond is worth: the first 30 ms are nearly free, the next 120 cost three quarters of the move
Here is why. How much of the move is left to take on Bybit if you get there so many milliseconds after the jump?
Arrive instantly and you take 2.89 bp. Arrive after 30 ms and you take 2.53. Thirty milliseconds of advantage are worth an eighth of the move. This is the shelf: here each millisecond saved earns about 0.01 bp.
Between 30 and 150 ms, 2.21 bp is lost, three quarters of the total. This is the cliff. Between 50 and 80 ms a millisecond costs 0.03 bp, nearly three times as much as on the shelf. After 300 ms nothing is left.
Look at the dashed lines. The lower one, 1 bp a side, crosses the curve near 50 ms. The upper one, 3 bp, lies above the whole curve. No speed gets you to that fee.
Liquidity at Bybit's best price drops fivefold just as the latecomer arrives
A trade earns its basis points only on the size that sits at the best price.
10 ms after the jump, the median size at Bybit's best price is $88,000. At 50 ms it is $32,000, at 80 ms $16,000. In a quarter of cases at 80 ms there is less than $500 there.
The move reaches Bybit, and the orders at the best price are pulled or taken. The latecomer gets fewer basis points on less size. The dip in the chart sits exactly where the cliff is.
More trades, less money: +$82,700 before fees, −$35,000 after
There is one more dial: the threshold. We waited for a 2 bp jump. Let's lower it to 1 bp.
The trades rise to 70,000 and the turnover to $589 million. Before fees: +$82,661, four times as much as before. 82% of trades win, and again all 30 days are positive.
Now the same good fee, 1 bp a side: −$35,102, and not one positive day. At this threshold the average trade earns 1.4 bp, and the fee eats all of it. More trades mean more fees, and the window in each one is smaller.
The other way doesn't work either. At a 3 bp threshold the average trade earns 3.9 bp, but only 2,461 trades are left. At 1 bp a side that is +$4,360 for the month; at 2 bp, zero; at 3 bp, a loss.
The threshold moves the break-even fee between 0.7 and 2.0 bp. At none of the three does it reach the public table.
Binance–Bybit lead-lag: 70 ms on our clock, 30 ms on the exchanges' clocks
Now the delay itself, and there is an awkward detail here.
Take every 10 ms price move, unfiltered, and shift one series against the other: the link is strongest at a shift of 70 ms. That holds on 28 days of 30, and on the other two it is 80 ms. Hour by hour it is the same: in 672 hours of 720 the peak lies between 60 and 80 ms.
But that is our clock: we listen to both exchanges from one place. The same calculation on the timestamps the exchanges put on their own messages gives 30 ms, on 29 days of 30.
Both numbers are real, and they answer different questions. 30 ms is how much earlier Binance recorded the move on its own books. The other 40 build up on the way: the path from each exchange to us, and the fact that Bybit publishes its book in batches every 20–30 ms.
So no one else's latency figure, ours included, carries over to your connection. Everything in this article is measured on our clock: the one who trades is the one who watches, and trades on what they see. Your time axis will be your own.
ETH and SOL: the same picture on Ether, and on Solana the spread eats half the window
We repeated the whole calculation on two other contracts of the same venues over the same month.
On ETHUSDT there are 22,636 jumps. Entering at 10 ms, a trade makes 2.68 bp after the spread, 85% of trades win, and all 30 days are positive before fees. The break-even fee is 1.3 bp a side. The same picture as on Bitcoin.
On SOLUSDT there are 42,188 jumps, and the move is the same, 2.7 bp. But this contract's tick is coarse, and half the spread is 0.68 bp. After the spread 1.36 bp is left, and 57% of trades win. The break-even fee is 0.7 bp a side. At 80 ms the result is negative before any fee.
The sober part: what low latency actually buys in HFT
Here is the conclusion we stand behind.
The window exists, and it can be measured. It held for a month in a row without a single failed day on three contracts. But it has a price of entry, and it has a shape.
- Fee first. As long as the round-trip fee is larger than what sits in the window, your place on the curve doesn't matter. In our measurement the line is at 1.4 bp a side. Hardware doesn't buy you a fee tier.
- Latency second. Once you have the fee, the result is decided by a few dozen milliseconds on the cliff. Each of them has a price there, and you can work it out in advance.
- On the shelf, latency is no longer what binds. The last 30 ms of advantage are worth an eighth of the move. Getting faster beyond that buys almost nothing.
- Where you stand, you have to measure yourself. On your own clock, on your own connection.
- For whoever quotes on Bybit, this is the same story from the other side. For the same few dozen milliseconds their quote sits at a stale price and gets picked off. What that loss looks like in a market maker's books is in our article on adverse selection.
What this backtest does not show
- One month, one pair of venues, three contracts. Another month and another pair will give other numbers.
- Execution. We assume an order fills at the best price visible when it arrives. Queue position, rejects, slippage and other traders' orders reacting to the same jump are not modelled. Bybit also publishes its book in batches, so the real book at that moment is fresher than the one we see. Live results will be worse.
- Size. A trade is capped at $10,000 and at the size on the first level. In 8% of trades the first level at exit was too small for the whole position, and there the result is overstated.
- Feed glitches. At the sharpest moments the Binance book rebuilt from the stream disagreed with itself. 385 jumps near such places were dropped. Those are exactly the fastest moves.
- One horizon. Exit after one second. Exiting after 0.2, 0.5, 2 and 5 seconds, the average trade makes 2.6 to 2.8 bp, and the conclusion doesn't change.
- No more than one jump a second. Jumps in a row count as one.
- Fees. The fee grid is illustrative. Only the two extreme rates come from Bybit's public table. Rebates, market-maker programmes and your actual fee are not included.
Is speed worth paying for? Find out your fee first
A place on the curve. Before the shelf it is expensive, on the shelf it is worth almost nothing. And it is worth nothing at all to anyone whose round-trip fee is larger than the window itself.
Our trade won every day and lost money every day. The difference between those two months is not speed. Before you pay for the next millisecond, find out your fee.
