Short-form notes on crypto-derivatives microstructure.
Measurement first; opinion second. These are internal notes cleaned up for publication — honest about what we looked at, what we found, and what we did not measure. Written for practitioners.
- 9 min readCrypto DerivativesCarryMarket StructureMethodology
Seven years of funding: the carry that paid 30.61% now pays 2.92%
Perpetual funding carry is still quoted using numbers from 2021. Pulled from Binance's free, keyless endpoint at every 8-hour settlement since contract inception, BTC carry ran 30.61%/yr in 2021 and 2.92%/yr in 2026 — a −1.72 pp/yr trend across eight years — while the share of settlements printing the bare interest term collapsed from 66.9% to 6.8%. The strategy worked. Then seven years of arbitrage capital ate it.
Read → - 10 min readData IntegrityEngineeringMethodologyBacktesting
The zero is the bug too: four silent zeros in one codebase
The biggest number in a result set is the one you check first. The zeros are not, and in one research codebase four of them were wrong in four different ways — a counter that could not distinguish “declined to trade” from “crashed”, a missing volume field that deleted the highest-paying venue from two strategies, a getattr default that reported the benchmark as uncapped while it was capped at every tier, and a flag that latched before the position filled.
Read → - 9 min readStatisticsMethodologyCarryBacktesting
The second way a Sharpe lies: a carry book with a Sharpe of 42.7
Stale closes inflate a Sharpe by shrinking measured volatility. A hedged carry book does the same thing for a different reason: measure only the coupon and you divide by 0.1%/yr, which is smoothness rather than risk. My first run returned +42.7 and −421. Adding the one missing return term tripled the denominator — and then the standard error, governed by the annualisation factor rather than the observation count, swallowed what was left.
Read → - 7 min readCrypto DerivativesCarryRiskMarket Structure
Leverage cannot beat the funding rate: why the whole range is worth exactly 2x
In a spot-perp carry book the spot leg is bought with cash and the perpetual only needs margin, so raising leverage frees capital to deploy. It feels like leverage. It is not: return on capital is f·L/(L+1), so the entire range from 1x to infinite leverage is worth exactly 2x and the ceiling is the funding rate itself — while the move that liquidates you shrinks as 1/L. The measured curve matches the formula to within 3%.
Read → - 9 min readMarket StructureCarryCrypto DerivativesMethodology
The basis trade's risk is a tail, not a path: 28,802 entries and the drawdown that never came
Every warning about the cash-and-carry trade is about mark-to-market: convergence is guaranteed, but the basis can widen first and liquidate you before you collect. Across 35,138 hourly observations of Binance BTC and ETH quarterlies, the worst excursion under any sane entry rule was 134 bps and not one of 22,299 entries was ever under water by more than its own eventual profit. The risk is real and it is entirely in a tail 417 days cannot see — and the thing that actually separates dated futures from perpetual funding turns out not to be risk at all.
Read → - 9 min readMicrostructureMarket MakingVenue ComparisonMethodology
The tick size is the moat: why a finer price grid makes passive market making worse
Hyperliquid's HIP-4 outcome markets quote a median 0.51c spread against Polymarket's 4.00c. That looks like the better venue for a market maker and is close to the opposite. A coarse tick is a queue-protection mechanism, and giving it up converts patience into a latency race. Measured across 246 HIP-4 books and 1,500 Polymarket tokens.
Read → - 10 min readMethodologyMarket MakingStatisticsLive Trading
The city that wasn't there: thirty groups, one survivor, and the split that killed the rest
Sorted by city, six weeks of live prediction-market P&L spans +13.66 to −10.04 per $100. Exactly one city's confidence interval clears zero — and 1.5 were expected by chance. Ranked on the first half and tested on the second, city scores rho +0.18 and category scores −0.20. The only selector that replicates is one you cannot observe until it is too late.
Read → - 10 min readData IntegrityEngineeringMarket MakingMethodology
Records versus events: one duplicate row, three consumers, three different bugs
A venue feed that repeats rows is not a data-quality problem you fix once. Every consumer independently decides whether it wants records or events, and each one gets it wrong differently. Four bugs from one defect on a live prediction-market book — including three false risk-limit alarms on a cap that was holding, and a fix that created the next bug by working correctly.
Read → - 9 min readMarket StructureArbitragePrediction MarketsMethodology
The ladder arbitrage that isn't: ten hours, 10,352 observations, $14.35
On a neg-risk temperature ladder exactly one rung wins, so buying NO on every rung looks like free money. It is EV-zero by construction, and the payoff is linear — more legs never helps. Ten hours of live book-watching found the executable condition crossing 8.89% of the time, a third of those in sizes below the venue's minimum order.
Read → - 9 min readStatisticsMarket MakingMethodologyLive Trading
92% coverage: what “this strategy loses money” actually means at n=701
Six weeks of live prediction-market making, 701 settled markets, $19,889 of capital. The headline is −0.79 per $100 — and its confidence interval still crosses zero. Calling that number at 95% would take about 6,400 markets. Excluding the maker rebate it is significant at 99.8%, which makes a rebate the difference between a result you can assert and one you cannot.
Read → - 9 min readVenue RiskMarket MakingMonitoringLive Trading
The outage that closes the cheap exit: asymmetric halts and the 39 silent minutes
A prediction-market position leaves two ways — merged at +2.6 c/share or resolved at −17.9. Cancel-only mode shuts the cheap door and leaves settlement running, so the venue transfers the cost of its outage onto whoever holds inventory. Cancels died 38 minutes before places did, and for 39 minutes before any error appeared the venue accepted every order and matched none.
Read → - 10 min readData EngineeringMarket DataMethodologyPrediction Markets
A gap must be a row: 4.9 million frames, zero dropped connections, and why you record anyway
On a delta stream, a hole in your tape is indistinguishable from a quiet market, so the recorder writes its own outages into the data as rows. Doing that produced a result I did not expect: across 4,952,946 production frames, Polymarket's market websocket dropped nothing. The only tape-hole ever observed was self-inflicted.
Read → - 13 min readMicrostructureEconomicsMarket StructureMethodology
Twenty-eight strategy families, four venues, and the fee function that reorders all of them
A full screen of the prediction-market strategy space, grouped by what each edge actually depends on. One cost function decides most of it before any data is collected: makers pay zero, takers pay a shaped fee, and a single marketable leg costs more than the entire round-trip spread. What survives is not a strategy list. It is a statement about who has access to what.
Read → - 12 min readMicrostructureMarket MakingEconomicsMethodology
6.7 cents a share: the retail and institutional gap in prediction-market liquidity
Unsubsidised spread capture at retail size on Polymarket loses about 6.7 cents a share, and holding to resolution costs exactly as much as crossing out. Markout said 1.7c and was flattering by four. The mechanism behind the number, and the size of the subsidy gap between the terms we could get and the terms a contracted desk gets.
Read → - 7 min readMethodologyEngineering
The biggest number is always the bug
Nine times in one research programme, the largest contributor to a good-looking result turned out to be a defect. Not a rounding error: the single row, fill or market that carried the whole finding. Three disciplines survived, and one of them is just a rule about which row to read first.
Read → - 8 min readMicrostructureEconomicsPerpetualsMethodology
Funding, not fees: what actually kills a crypto perp cross-section
A zero-fee venue didn't resurrect our dead edges, which told us the fee was never the killer. This is the follow-up that names the thing that is. Measured across 50 names and 22 pre-registered hypotheses: funding decided every candidate that got close — and dropping it from a backtest can flip a Sharpe from +0.74 to −0.49 in either direction.
Read → - 6 min readMethodologyEngineering
The claims most likely to be wrong are the ones written in sentences
Ten defects materially affected a study I published. Seven raised no error at all — they produced a plausible wrong number. Five of those seven lived in prose, where the verification effort was not looking, because nothing recomputes a sentence.
Read → - 6 min readMethodologyReinforcement Learning
RL over a calibrated market-making baseline learns a constant, not a policy
A pre-registered reinforcement-learning experiment on my own market maker. Every discriminating prediction failed — and then folding each policy's mean action into a single constant recovered 132% of the trained policy's edge and beat it in fourteen runs of fifteen. Working paper on SSRN, with data and a verifier that re-derives every number.
Read → - 11 min readMicrostructureEconomicsMethodology
Where crossing is free, the mispricing is gone too: a strategy screen on Polymarket
A systematic screen of arbitrage, calibration, momentum and lead-lag strategies across ~2,400 Polymarket markets. Almost everything died at the taker fee — and when we found the 14% of markets where Polymarket waives that fee entirely, the mispricings were not there either.
Read → - 8 min readEngineeringMethodology
Fast enough to trade, too slow to learn: the case against Python prototypes
Latency is not the reason to avoid Python in a trading system — for crypto it is comfortably fast enough to quote. The reason is everything that happens after the strategy works: concurrency across tokens, and a parameter fit that turns hours into weeks.
Read → - 9 min readIndustryCareers
What a trading firm sells decides how it treats you
Market makers, pod platforms, land grabs and single-manager funds monetise completely different things. That choice determines who gets paid, who gets cut first, and why a quant developer is better off at a market maker than at a hedge fund.
Read → - 10 min readMethodologyEngineeringMicrostructure
The phantom queue: how our fill model lost 80% of its fills
Real order books drain by cancellation, not by trading — we measured 75 cancels per fill. A simulator that only advances queue position on trade prints therefore fills you almost exclusively when the market runs you over. Ours did, for months. Three bugs deep, one of them was our own choice of statistic.
Read → - 9 min readMethodologyEngineering
A simulator cannot find what its fill model cannot express
Queue position, cancels, latency, impact and rebate tiers: what a market-making backtest has to model, what it structurally cannot, and the accuracy you should demand before you trust a number.
Read → - 10 min readRegulationOperations
What it actually costs to trade crypto legally from the UAE
One question decides your licence, and it is not the strategy or the venue: whose money are you trading? The real numbers for Dubai, and how they compare with Singapore, Hong Kong, and the usual offshore options.
Read → - 8 min readEngineeringOptimization
Parameter attribution at scale: from a Python loop to distributed search
Each step was forced, not chosen. As the feature set grew, every tool for telling which parameters actually helped hit a wall and pushed us to the next — backtest, a Rust engine, grid search, CMA-ES, and now distributed compute. A field note on the escalation.
Read → - 7 min readMethodologyMicrostructure
The bar-coarsening discriminator: when a Sharpe of 3 is just stale closes
A reversion edge that looks clean on hourly bars and evaporates on daily bars was never reversion — it was bid-ask bounce in the close. The cheapest test we have for telling the two apart, and the candidates it has killed.
Read → - 7 min readEconomicsPerpetuals
Zero fees don't make alpha: a cost-floor experiment on a 0% perp DEX
If your edges die net of fees, a zero-fee venue should resurrect them. We ran that test on a 0% maker/taker DEX. Nothing came back — because the fee was never what killed them.
Read → - 6 min readMicrostructurePerpetuals
Mark is not mid: the oracle-gap trap in builder-perp dispersion
Two HIP-3 builders list the same underlying 44 bps apart on the mark — and 3 bps apart on the executable mid. A note on why a dispersion screen built on mark price finds opportunities that aren't there.
Read → - 7 min readExecutionMicrostructure
Markout vs rebate: what your fills actually pay
On a tick-floored book, post-fill markout dominates the maker rebate by an order of magnitude. A 21-hour, 544-fill measurement on OKX SUI-USDT perp.
Read → - 7 min readMicrostructureExecution
The cancel-race: a measurable adverse-selection mechanism
Resting quotes that fill in the last fraction of a second before a tick move are systematically toxic. A short note on detection, mitigation, and the engineering pitfall in the middle.
Read → - 6 min readExecutionMicrostructure
Regime exposure as a session-diagnostic primitive
A simple bucketing pattern that turns “the session lost money” into “the session spent 33% of its minutes in HOLD_ALL and 14% in BOTH.”
Read → - 6 min readMicrostructurePerpetuals
OKX perp funding: settled, predicted, and the field nobody reads
Three numbers that all get called "the funding rate," plus the OKX API field that costs you a working countdown if you read it wrong.
Read → - 5 min readExecution
Sample-size discipline in trading-system telemetry
Four labels — anecdote, hypothesis, directional, trustworthy — and the question of when a measurement is allowed to drive a config change.
Read → - 10 min readLatencyMicrostructure
Cross-venue L1 latency: Singapore, US-East, US-West
What a five-minute, three-region measurement across eleven venues says about cross-reference feed selection for a perp-DEX market-making operation.
Read → - 8 min readExecutionPerpetuals
Perp DEX spread feasibility: tick-floor microstructure across three venues
L1 spread measurements on Aster, GRVT, and Bluefin, and the difference between a venue where retail market making is economically possible and one where it isn't.
Read → - 7 min readEconomicsPerpetuals
Retail market making economics on modern perp DEXs
Why modern perp DEXs are structurally engineered to tax API market makers, and what that means for retail-scale operators.
Read →
Published pieces are redacted of strategy-sensitive detail.
Ask directly if you want the underlying methodology discussed.