Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
We didn't invent Smart Markets or combinatorial auctions. Roughly $1T/year flows through them in industries ranging from display advertising to telecommunications. The underlying theory was the subject of the 2020 Nobel Prize in Economic Sciences [2]. We're bringing them to capital markets, and we have both the customers and the regulatory clearance to do so. Our initial user base contains the household names cumulatively responsible for ≈70% of US equities trading volume.
Today's market structure costs institutional investors at least a trillion dollars annually. We'll go into the details below, but the big thing to understand is that mutual/pension/sovereign funds, 401K plans, and ETF managers pay the price, and ultimately it gets passed on to households. Given diverse investment time horizons and risk preferences, capital markets are not a zero-sum game, but the existing market structure makes it one. Any form of market friction that prevents mutually beneficial trades from happening is an economic loss. Our goal is to make a lot more mutually beneficial trades happen.
We started working on OneChronos as experienced traders and auction theorists. Even so, getting here has taken five years of iterating with customers, tackling two deep tech problems, and working through an involved regulatory process. We'll describe what's causing existing market friction, the solution, and why that solution is a significant technical lift.
When people hear about market friction and hidden costs, they usually think about low latency technology, market data, exchange fees, and predatory HFT practices. Those are significant, and yet they are rounding errors compared to others. The principal sources of market friction that we're attacking are bidders' inability to express economic complements (things that are worth more together than separately), substitutes (things with diminishing marginal utility that are replacements for each other) and non-price factors, and game-theoretic incentives against bidding "truthfully"—that is, against specifying how many units of a good you have and the highest price at which you'd buy or the lowest at which you'd sell them (your supply and demand curve). The most commonly proposed market structure "fixes," like single good periodic batch auctions and the IEX speed bump, don't address any of these.
Imagine that a buyer values two goods A and B at $10 for the package, but only $4 for each individually since they're complements. Similarly, a seller might unload the package for $8 while demanding $5 for each good individually. Both agents have "exposure risk" if A and B are bought and sold separately—they might get stuck with an incomplete package. No trade happens if the risk is high enough (buy at $4, sell at $5, no cross). But if they can trade the package atomically, there's a mutual win of $2 in gains from trade. Similar missed opportunities happen if agents only want A XOR B or have different prices for different counterparties (price discrimination). This game of imperfect information and missed opportunities plays out every day in capital markets globally.
The straightforward solution to these problems is called "Expressive Bidding"—the ability to communicate parametric bids to the auctioneer, e.g., buy at most one of {$10 for A and B, $4 for A, $4 for B} or sell at most two units of A, pricing it at $10 for counterparty C_1, $9 for C_2, or $8 for C_3...
120 comments
[ 3.2 ms ] story [ 204 ms ] threadI work in fintech for broker dealers so I'm genuinely curious what is the use case here.
That it is!
> What is the one sentence describing who would use this and why though?
Today's market structure costs institutional investors (and by extension households) at least a trillion dollars annually (and Smart Markets hold the potential to eliminate that loss).
There has to be a lot of additional data gathered at the time of 'intent to purchase or sell' - because otherwise your solution eats away a lot of powerful institutions alpha. And without 'novelly' expressive orders, there's no new place for them to go... that Trillion dollars doesn't just evaporate in today's world.
We've already seen this in sourcing markets [1]. Capturing more information at the time of bidding resulted in massive (40-60%) efficiency gains for both sides of the market.
[1]: https://kilthub.cmu.edu/articles/journal_contribution/Very-L...
That said, there are a lot of people who make good money making inferences from these current concrete dynamics - in some sense, you're just forcing the market to innovate (this is good).
I always like to know who I'm asking to change when building products -- and this one is a very interesting (read: fun and potentially lucrative) set of actors.
> Today's market structure costs institutional investors (and by extension households) at least a trillion dollars annually (and Smart Markets hold the potential to eliminate that loss).
How does one get to this estimate? That is ~5% of US GDP. Everything else was easy to follow - this seemed high, at least intuitively.
Portfolio returns compound exponentially, so even small inefficiencies matter big time.
[1] https://www.blackrock.com/corporate/literature/whitepaper/vi...
How do you think about it? Let's say we expect half the benefit to come from equities.
>> 0.5T / 125 T = 0.004
>> Smart Markets would need to raise portfolio returns by an average of .4% (net of trading costs) annually.
That seems like a significantly lower upper bound to the market size here.
That said, what seems interesting here is to come up in advance with many potential arbitrages, and load them in advance for fulfillment if they occur. Risky but interesting than having to roll your own complex tool for this.
https://www.ibisworld.com/industry-statistics/market-size/on....
(FWIW and not that it's the market that we're going after per se—our strategy is mostly blue ocean—the market for US equities electronic execution services across the whole stack of technology, market data, broker algos, etc., is $18B/yr.)
This isn't clear to me - are your buyer's institutional investors? Are they buying your technology to create trade options for their end users i.e. an individual investor? I don't know what an ATS is so I gather that I'm not a direct user of your technology - perhaps I would be an indirect user? Would E-Trade, for example, leverage your technology to provide me with a combinatorial buying option?
That said, we'd love to get to the point where E-Trade etc. are offering combinatorial bidding to retail traders, with us on the back end.
In stocks, A might be a company you invested in and B some ETF that you bought as a hedge for A. What if you sell out of A, and then the price of the ETF drops? There's value in being able to liquidate the full position - the single stock plus the hedge - at once.
lol. source / evidence?
By your own data above, if typical fees are $0.0009 per share traded, $1tr in costs implies notional value of instruments traded each year of approx $1x10^17, assuming average price of $100 / share.
What is the subject and the verb for the problem you are solving and for whom? This is too vague.
The most interesting aspect of this is that its enabled non-dealer <> non-dealer trading via certain venues.
Very cool regardless.
We very much agree that the potential is even more significant for markets where opacity and price discovery is less efficient than US equities. We chose US equities as a beachhead given the mature regulatory framework and the extent of market fragmentation. Other asset classes and geographies are immediate next steps.
Now you can describe "buy goods A and B at $10 maximum, commit" and have the transaction either succeed or fail. Before you had to edit those rows individually and there's risk that you end up in a weird partial state, hence having to lower your bid to cover your risk.
Really exciting tech and it'll be great for these costs in market-making to be eliminated!
Do you use a database of some sort?
How do you to handle settlement?
How do you handle ingest?
The optimization procedure (which includes bid evaluation) is ~30ms. We cycle bound (under a formal model of computation via function application and graph reduction) computation of bidders to ensure that everyone shares an identical and deterministic resource cap.
> Do you use a database of some sort?
Not as part of the real-time trading system, which operates as a CP fail-stop distributed system model checked for safety and liveness by TLA+ and system tested by Jepsen.
> How do you to handle settlement?
Regular way (T+2 settlement with a 3rd party clearing BD)
> How do you handle ingest?
We use a constellation of GPS synchronized Stratum 1 clocks and proprietary network timestamping software + hardware to ensure that we process orders entered by the auction call time regardless of what physical host we receive the order on. We do the same for market data broadcast from other trading venues across data centers and geographies. We stream both market data and orders to a central point for processing. Every node in our distributed system that processes orders or “away venue” market data broadcasts a “Gateway Call Announcement (GCA)” message at auction call time to downstream compute nodes that run the auction. Auction solver nodes get to work after receiving GCA messages from the hosts they expect to hear from.
Another question are your looking into having same day settlement?
> Same day settlement
This one is outside our control for the moment - we partner with a 3rd party for clearing and settlement, and would depend on our subscribers also making the switch to same-day.
Once we get into other asset classes, fast settlement is definitely of interest. Some cool stuff we could do with incorporating settlement instructions and/or counterparty risk constraints as part of the expressive bidding language.
A newbie question. I understand how a pair tickets to say the superbowl would be more valuable than a single ticket, people want to go with their friend. Is there a practical example for equities? I will buy 100 shares $FB at $250 only if I can also get 50 shares of $SNAP at $35 at the sametime? If I can't get that combo, I will only pay $240 for $FB?
Is this aimed at equities that have less liquidity?
Say you want to invest in the health + tech space, but there's some risk that covid ends and gyms come roaring back. So then you want to minimize the risk by putting some money in the gym industry as well -- getting an entire package of peloton, apple, and 24hourfitness stock is actually worth more to you than the individual stocks on their own.
Substitutes in capital markets are ubiquitous. There might be hundreds of candidate hedges in the example above, but given how trading workflows are, there's no way to communicate that amongst market participants. A market maker has no way of knowing if someone wants to buy SNAP (and thus potentially has market-moving information about it) or if they're using it as a hedge for a short position and would substitute something that the market maker wants to gross down on (and offer a more aggressive price because of that). As such, market making is a game of pricing under risk and uncertainty. Combinatorial auctions eliminate much of the uncertainty.
This is very interesting. Because you run frequent short auctions, there's no strict long-running orderbook here, right? Are you using FIX for your protocol and where are your servers geographically located?
Initially we're US equities only. Stay tuned for other asset classes and geographies. Spot vs derivatives is a core use case that we want to do as soon as we can (only national exchanges can do listed derivatives trades, so it's a big lift).
> there's no strict long-running orderbook here, right
The default good-till behavior is one auction cycle (100ms Poisson random back-to-back).
> Are you using FIX for your protocol
Yes! And, we have a formal model of our FIX spec and self cert flow that makes onboarding us way easier of a process than what's typical [1]
> Are you using FIX for your protocol and where are your servers geographically located?
Initially, just Equinix NY5. Longer term, we plan on PoPing at most financial data centers. We use a constellation of GPS synchronized Stratum 1 clocks and proprietary network timestamping software + hardware to ensure that we process orders entered by the auction call time regardless of what physical host we receive the order on. We do the same for market data broadcast from other trading venues across data centers and geographies. We stream both market data and orders to a central point for processing. Every node in our distributed system that processes orders or “away venue” market data broadcasts a “Gateway Call Announcement (GCA)” message at auction call time to downstream compute nodes that run the auction.
[1]: https://www.onechronos.com/docs/fix/fix-42/
Exciting stuff. And love your docs.
From the description above: are you guys then just selectable as an algo/ATS going through through a broker, i.e, there could be a natural "sweep" (bit like algos covering block interest in some cases)? Do you work with some big broker-dealers on integration?
I know you started out with equities, but bond portfolio transitions are (often) a much bigger pain - any plans there? Or issuance, i.e., mix of funding instruments in one go?
Yes. Some brokers are incorporating us into their algo suite, others are offering us as a direct route, and most are doing both.
> Do you work with some big broker-dealers on integration?
Yes! We're excited to be launching with many of the household names, and most have plans to connect by early H2. We'll be updating our website with a list of launch partners in the coming weeks as part of our full launch announcement (the HN fam is hearing it first).
> I know you started out with equities, but bond portfolio transitions are a much bigger pain - any plans there? Or issuance, i.e., mix of funding instruments in one go?
Getting to this world state is our real passion. Imagine a fund manager running a cross-geography equities and a credit book. Any trade they want to do will involve rates and currency risk on top of the actual delta. We want to make it easy to, say, sell some European debt issuances in euros to fund a US equities position in dollars while re-hedging curve risk, all as part of one atomic and frictionless transaction with a pre-trade known cost basis.
Looking forward to reading the full launch announcement!
You can read our ATS-N here: https://www.sec.gov/Archives/edgar/data/1692652/000169265220...
[0]: https://otctransparency.finra.org/otctransparency/AtsData
This is the same problem eth et al are dealing with in crypto swaps due to Miner Extracted Value (reordering the tx in the block to favor miners extracting value by front running trades).
The harder problem that large traders face is executing blocks and portfolio trades. How do you figure out what your total transaction cost (market impact / cost of liquidity) will be if you're buying 100x the displayed volume? Being able to express where you are flexible (e.g. individual security prices) and aren't flexible (aggregate price, atomicity) helps lock in the uncertainty pre-trade.
So we're actually mostly going after the large scale stuff, more than the small scale.
since the core ip is "deep" as you say, i'm guessing it cost quite a bit to develop, unless you built out all of the components yourself, which, while possible, seems unlikely given the technical complexity of each piece (you, and whoever else is on the engineering team, seem smart but this looks like "research edge" tech along several dimensions).
so i'm curious whether you paid the development costs up front (either using your own money or FFF) or if you validated and raised in small pieces. if the latter, i'm curious how one does that for such a complex product/service.
lots of assumptions in the above - feel free to disabuse me of my ignorance.
We raised a series A in 2019 led by Green Visor (who has been excellent btw, and with us from the start)
> it seems like you've been building for ~5 years ... i'm guessing it cost quite a bit to develop
Yep, you're spot on that it's a complex product. The biggest cost has been making it feel for the user like it's not. What that boils down to is an enormous amount of iterative feedback and development w/ the industry. Between that and the regulatory process, a lot of the "cost" has been more duration than cash burn. We've kept things lean from the start in anticipation of that.
> unless you built out all of the components yourself
We've developed the tech in house, with some hands on help from our friends at Imandra mentioned in the OP. On the research piece: that's been happening in the background for many years, and we're definitely building on the shoulders of giants in the worlds of mechanism design, algorithmic game theory, and deep learning. We're lucky to have some great academic advisors involved (like Kevin Leyton-Brown since the early days) as well.
i'm not often impressed but that's quite impressive. kudos to you.
i currently work on deep learning compilers (as a phd student) but i'm interested in basically all of these things (compilers, combinatorial optimization, auction theory). i know lpage expressed that you're hiring but i'm curious what roles you're hiring for (your careers page is light on details).
It sounds like you have a very relevant background, so please email us if you're interested in discussing further!
On substitutability: if you want to sell $2m of some sector basket you wouldn't put in a limit order for $2m in every security (overfill risk). An expressive order can enforce a $2m global constraint across the basket but show full size in each security. When lots of people are doing this, it solves the "ships passing the night" problem where people are looking for offsetting exposure at a high level but can't express anything but single stock orders.
On risk management: some constraints certainly are restrictive, e.g. conjunctive constraints like 'a' AND 'b' AND 'c'. It would be very unlikely that we find the exact opposite of that constraint, so the auction is multilateral: we can stitch together the contra with individual single orders for 'a', 'b', 'c'. Key to the liquidity aspect of this is our objective function: it rewards more aggressive pricing and larger quantities. So the principle here is that by gaining atomicity (and reducing uncertainty) people can be more aggressive on price and qty. This is especially important for liquidity provision: how much larger size could market makers quote if they could automatically hedge new positions they enter into?
All that said, bootstrapping liquidity is the hardest part of any venue launch. We're obsessively focused on making sure we have the right blend of participants trading on different horizons for a healthy pool.
I love the part about eventually determining your value-add by comparing to a counterfactual vanilla market -- sounds a bit like Shapley value? If not exactly Shapley value?
https://www.cs.cmu.edu/~sandholm/vickrey.IJEC.pdf
but in the context of second price auctions.
lpage might be alluding to something having to do with their proxy bidder implementation but the above paper actually discusses how proxy bidders themselves lead to untruthful bidding (so maybe lpage is suggesting their implementation is better?).
[1] https://www.researchgate.net/profile/Alexander-Leo-Hansen/pu...
Both the multiunit dynamics and the specifics of our uniform clearing price mechanic minimize ex-post regret. Double auctions suffer from the winners curse/adverse selection, as limit orders are always "traded through." Multiunit uniform clearing price mechanisms like OneChronos can lessen or eliminate that by incentivizing buyers and sellers to truthfully report aggregate supply and demand curves, and Expressive Bidding enables the reporting of supply and demand curves (among other things). NB: we are not an IC direct mechanism. We are balanced budget and individually rational.
I love the part about eventually determining your value-add by comparing to a counterfactual vanilla market -- sounds a bit like Shapley value? If not exactly Shapley value?
It's a hot take on both Shapley values and VCG (while avoiding the issues with both), and it's about to become an active area of research for us!
No offence but tbh, when I read through this, I felt a deja vu of coming across another Theranos. Some super innovative sounding complex tech which ultimately turns to be a total dud.
Our value add is mainly a team that understands these fields and the extreme nuance of capital markets. That's allowed us to generate novel IP and a purpose-built solution.
[1] https://www.nobelprize.org/prizes/economic-sciences/2020/sum...
[2] https://arxiv.org/abs/1706.03304
Can you elaborate on how it's challenging in a UX sense? I'm curious to know what the challenges are.
Information theory tells us that no universal bidding language (there's a representation of any package of interest) is uniformly more compact than the power set representation. Nonetheless, a good bidding language makes "common" bids compact and easy to communicate. We thought about this problem deeply and realized that functionally pure computer programs mapping proposals (packages of goods) to valuations (how much the bidder will pay or would want to receive) are about as natural as it gets. There's a direct analog in asking a human or a pricing algo for a price in a bilateral trade setting. However, our optimizer doesn't know what to do with an arbitrary computer algorithm, and exhaustively querying one to get the power set of prices out is computationally infeasible. However, using formal methods, we can (in the right setting) convert a computer program into an equivalent representation in a logic fragment called mixed integer real arithmetic. And that (via SMT solving) is something that an optimizer can work with.
You can see what Proxy Bidders (the pure functions that create expressive bids) look like here [1].
[1]: https://www.onechronos.com/docs/expressive/bidding-guide/#in...
How do you think market makers are going to react to this? It makes sense for them to provide a bid/ask on individual series, but how do you see them providing liquidity for these more complex orders?
Folks also plan on using Expressive Bidding to enter other business lines that high startup costs or low margin (ex ongoing technology costs) previously kept them out of.
Thanks! And yep, similar but all the way down to the venue/match level, e.g. as opposed to a broker taking on some legging risk to shield the end investor.
> How do you think market makers are going to react to this? Expanding on Kelly's take - the big thing it does for market makers is allow them to manage momentary risk. When a market maker gets filled on an exchange, they are immediately looking to hedge/offload what they took on which involves a sequence of transactions.
Here, the hedge is baked in. So for example, they may enter an order that looks like "buy and/or sell any mix of these 200 securities, if and only if the net change in risk (e.g. change in exposure across several factors) is within some tolerable distance from 0". So that would look like a traditional bid-ask spread across a series of symbols, but with a global exposure constraint. The key outcome being they can quote larger sizes across symbols safely.
NB: the MM doesn't need to know anything about the composition of the complex order on the other side. On top of that, they may be filling one leg, and a natural or other LP filling another etc..
Two questions:
1. Are you implying you are using deep learning heuristics for weighted set packing? Assuming you can't share too much about your IP, did you have a regulatory or business need to deal with worst-case performance guarantees and (how) did you manage this if you did?
2. It sounds like a lot of your stack is OCaml (I'm a fan, 2nd most fanboyed language after Rust and it's a pity it's not more used), is this a deliberate choice or a "grew out of a research project in formal verification where they like ML" consequence?
1. There are two places where deep learning and prior-based approaches can come into play for combinatorial auctions. One is pretty analogous to AlphaZero, but substitute placing a piece on a Go board with accepting a bid, hoping that upon reaching a terminal state the set of bids accepted is feasible and close to optimal. The second is perhaps more in line with what you mentioned—using ML for hyperparameter selection in an algorithm portfolio. When we go live and have production data, our meta optimizer will measure how different approaches are doing and allocate computational resources accordingly in an online fashion. We always use a vanilla unit double auction as a baseline to measure relative performance within an auction cycle, and if the baseline is better, we use it instead.
2. There's a fun and serendipitous story here. I wrote an extremely early prototype as a tiny lisp and evaluator to go with it. We needed a very restricted and functionally pure language that we could control the execution context of, symbolically execute, and do basic formal methods on. The approach worked for a POC, but it was a far cry from real-world adoptable. We proceeded to prototype a DSL with an HM inspired type system and a more pythonic syntax, arriving at a poor man's ML. Better, but a DSL, and something limited/bespoke that would ultimately be annoying for developers. Then we met the guys at Imandra [1], who convinced us that we could have our cake and eat it too using vanilla OCaml/ReasonML and an ultra-high level theorem prover to keep code in an acceptable logic fragment. As an aside, rust is our systems PL and where we do most of the heavy lifting. Evaluating Expressive Bids isn't computationally expensive relative to the optimization problem.
[1]: https://www.imandra.ai/