HNHacker News
TopNewBestAskShowJobs

lpage

1,740 karma · joined April 30, 2013

https://www.klittlepage.com

You can e-mail me at: echo "a2VsbHkubGl0dGxlcGFnZUBnbWFpbC5jb20K" | base64 --decode

[ my public key: https://keybase.io/klittlepage; my proof: https://keybase.io/klittlepage/sigs/rwf5jZM7Wj6iCWAfmRwBOcpf6yhp9-doldqP31CVOiA ]

YC Badge: 0x749c80964Ba6Ed43dC2c9ae4f14cD597795E72c3

submissionscomments
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
> Can you say more about how you incentivize truthful bidding? I understand about exposure risk and expressive bidding

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!

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
This is a great question, and the full answer involves lots of mechanism design nuance. The short answer is that we have uniform clears per trading instrument, and bids are sealed, so there's no direct signaling game that would allow someone to try to pass off an alpha trade as a hedge. We plan to introduce a mechanism that will enable signaling through tokens (opaque identifiers). Bidders can attach whatever token they want, and other bidders can price discriminate against tokens (change their prices for, refuse to trade with, trade exclusively with) based on historical post-trade outcomes that we make known via an immutable audit trail. Participants can create and use tokens freely, so it's not segmentation. Instead, it's a means of inducing a repeated play game and a market for reputation.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
We needed to work through the FINRA BD and SEC ATS-N registration process, and the latter is a requirement that went into effect well after we got started on OneChronos. We're pleased with how both went, and we chose US equities as a beachhead precisely because of how sophisticated the regulatory framework is. That said, it's quite the process, both time and resource-wise. We'll have to work through similar processes to pursue other asset classes and geographies. Doing so is core to our mission of making portfolio level transactions frictionless cross-asset and cross geography.

You can read our ATS-N here: https://www.sec.gov/Archives/edgar/data/1692652/000169265220...

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
We're following the project with interest, but for now, we're focused on directing engineering resources to other portions of the stack. FWIW our approach is in the low nanos of precision and accuracy, which puts us within spitting distance of the Nyquist criterion for never aliasing two packets to the same timestamp (thus losing a total ordering) at line rate 10G. That's massive overkill for our purposes (auctions 100ms apart), but it's a satisfying property nonetheless :)
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
> 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)?

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.

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
All of our favorite things as well :)
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
> Do you do only equities or also derivatives

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/

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Good question! Combinatorial auctions with a uniform clearing price eliminate mechanical arb; there's no opportunity to buy and sell a single trading instrument at different prices. Stat and funding arbs form "outside" of trading venues and they're a good thing that keeps the market efficient. Putting a combinatorial auction in the mix eliminates friction and entry costs for folks providing liquidity (no steep tech costs) and keeps the process competitive.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
The notional values in compression cycles are insane, and we're interested in the post-trade space as well. The optimizations done on the post-trade and funding side aren't combinatorial auctions, resulting in efficiency loss and poses workflow challenges, especially for swap and CDS traders. That said, the opportunity for driving actual portfolio gains and not "just" minimizing counterparty and systemic risk is more significant on the pre-trade side.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Great question! Complements in capital markets typically aren't as strong as other markets like event tickets. On the complements side, hedges are a good example. Market makers like banks are willing to quote much larger sizes for hedged transactions, e.g., an institution that wants to buy a large block of equity in one company while selling others with similar qualities as "factor hedges." The net notional changing hands is roughly the sum of the parts. Still, there's a big price difference between doing this trade atomically and as a series of transactions where the market maker has to "wear" the risk for some period.

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.

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Thank you! We really appreciate that. We're happy to be working on something that has already worked incredibly well in other domains while facing major technical blockers against use in ours. It gives us a clear, albeit challenging, problem to tackle.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Ah, agreed, but we're talking about two different things—direct transaction costs versus allocative inefficiency/missed Pareto outcomes. OneChronos is about unlocking Pareto efficiencies—situations in which two or more parties can trade to mutual benefit. An easy example is a (scaled down in price differences, scaled up in size) version of the complements example above, e.g., an ETF arb trading the basket against the underlying with a small tolerance for tracking error. An institution that can take the basket or the underlying as a hedge or as an investment position can interact with the arbitrager, creating economic gains for both parties in the process. At institutional scale, efficiency gains measured in bps and compounded exponentially add up.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Thank you! That's my past life as well. The impedance mismatch between what I knew was possible on the market design front courtesy of my academic background and what I did day-to-day as an algo trader is part of the origin story. Steve and I want to figure out how we could bring Smart Markets to finance so that everyone could spend more time on alpha and less time on market structure workarounds.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Please email me! careers [at symbol] onechronos.com
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Fully appreciate that it's a very large sounding but very real number once you start unpacking the scale of capital markets: https://news.ycombinator.com/item?id=30247693
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
> What is your SLA for an expressive bid? I'm guessing it its less than 1ms?

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.

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
Love that analogy—thanks! Combinatorial auctions are in large part about ensuring atomicity. Traders call it legging risk. Auction theorists call it exposure risk.
lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
It's a huge number that only makes context when looking at the absurd scale of capital markets globally. BlackRock has written on the cost of liquidity [1]. Unfortunately, much of the institutional research on this topic is in a walled garden, so we plan on publishing on this when we have our own data. Treating it as a Fermi problem, the market cap of US equities is ~50T and 140T notional of US equities traded in 2021. The global market cap is 125T (I don't have trading volumes there). FICC is much larger than equities.

Portfolio returns compound exponentially, so even small inefficiencies matter big time.

[1] https://www.blackrock.com/corporate/literature/whitepaper/vi...

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
It's more like ensuring an opportunity to leverage the information that's already being gathered. As it stands, PMs have to construct concrete portfolios because they need to send the trading desk specific instructions on what to buy and sell. The portfolio they ship out for execution is effectively a low dimensional projection of a high dimensional decision process. That process has extensive substitutability (sizing and substitutability if something is going to be more or less expensive to execute than transaction cost models predicted), but there's no way to communicate that in today's trading workflows. That results in the market missing out on Pareto outcomes.

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...

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
> This would be far more impactful IMO for a market where price discovery is weak and market access is challenging

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.

lpage··on Launch HN: OneChronos (YC S16) – Combinatorial auctions market for US equities
> This seems like really deep technology.

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).

lpage··on I was part of a human subject research study without my consent
Another subject, posted yesterday: https://news.ycombinator.com/item?id=29599553
lpage··on The high-frequency trading arms race: frequent batch auctions (2015)
Budish et al. start with the statement that "The high-frequency trading arms race is a symptom of flawed market design" and present a mechanism that mostly addresses a specific feature of the current market structure. In 2021, most folks on all sides of the table (liquidity providers, executing brokers, financial institutions) agree that the arms race is individually and collectively value-destroying. They don't claim that it's the "best mechanism" for capital markets. And every mechanism is a set of tradeoffs, so no one should ever really make that claim. At OneChronos (YC S16) [1], we view the arms race as something that's very much worth solving for, but a tiny piece of a much bigger opportunity to make markets function better for all players.

[1] https://www.onechronos.com

lpage··on The high-frequency trading arms race: frequent batch auctions (2015)
See Proposition 6 on pg. 1600. The argument is purely economic and based on a simplified (but first-order reasonable) model of liquidity provisioning and price action. Price-priority uniform clearing price batch auctions (with or without randomized call times) transform competition over speed into competition over price.

Technical/practitioner notes:

1. Gaming is a bit of an overloaded term, and in this context, implies that agents are doing something wrong. Mechanism design assumes that agents will respond rationally and strategically to the mechanism they're presented with, so whatever happens is on the designer. Ideally, the mechanism chosen will result in an individual response that collectively optimize the designer's objective function, e.g., maximizing social welfare or the auctioneer revenues. Suppose the mechanism chosen isn't the "best" one for a specific set of agents & goods. In that case, agents might have individually rational behaviors that result in sub-optimal outcomes relative to what was achievable with another mechanism.

2. Prop 6 isn't entirely predicated on having a random call time (there will be competition over price as long as there are two "fast" types in the market). However, randomizing auction call times is still practically speaking useful.

lpage··on Functional Programming in OCaml
* GADTs: generalized algebraic data types. As the name suggests, GADTs broaden the set of type-level constraints that one can encode using ADTs. A canonical example involves using GADTs to strongly type an AST and evaluator function s.t. attempting to construct or operate on an invalid AST, e.g., one that represents addition between a boolean and an integer, is a compile-time error [1]. Another great tutorial on GADTs is [2].

* Row polymorphism: statically type-checked duck types, for lack of a better description. In dynamic languages like python or javascript, it's common to pass dict or dict-like objects to functions and have them extract the key/value pairs that they need. Row polymorphism lets you have your cake and eat it too by enforcing enough structure to ensure that functions only receive records containing all relevant keys — without requiring that functions take a specific concrete type.

* First-class modules: another tool for type-level programming and modularity. I won't say much since it's hard to understand why you want and at times need them until you've organically come across a use-case for them. Once you do, you'll wish that other languages had them. Here's a resource, though: [4].

* Let binding operators: these let you define your semantics for binding values to variables. A common use-case is defining let* as the monadic bind operator for some type: let (let*) x f = bind x f, after which writing monadic functions is way more pleasant syntax-wise. In contrast to the other items on this list, this is pure syntactic sugar but incredibly impactful [5].

* Algebraic effects: the conceptual root of concepts such as generators (yield), async/await, and checked assumptions. Informally, they're (among other things) a way to encapsulate computation and jump around code like a goto statement, but in a more structured and type/memory-safe way [6].

* Modular implicits: these allow (among other things) ad-hoc polymorphism, meaning that the same operator, e.g. (+), can operate on both integers and floats. That's the oft-cited use-case, and it sounds pedestrian, seeing as most mainstream languages with weaker type systems have it. There's more to it than that [7]. Haskell and Scala have type classes and implicits as mechanisms for ad-hoc polymorphism, but modular implicits (if implemented) seem to strike a nice balance between readability, flexibility, and transparency.

[1]: https://blog.mads-hartmann.com/ocaml/2015/01/05/gadt-ocaml.h...

[2]: https://sketch.sh/s/yH0MJiujNSiofDWOU85loX/

[3]: https://stackoverflow.com/questions/48092739/what-are-row-ty...

[4]: https://dev.realworldocaml.org/first-class-modules.html

[5]: https://jobjo.github.io/2019/04/24/ocaml-has-some-new-shiny-...

[6]: https://overreacted.io/algebraic-effects-for-the-rest-of-us/

[7]: https://arxiv.org/pdf/1512.01895.pdf

lpage··on Functional Programming in OCaml
On the currently in OCaml and ahead of the time front:

* GADTs

* Row polymorphism with inference

* First-class modules

* Let binding operators, e.g., let* for monadic binding

On the coming soon to OCaml (hopefully) and way ahead front:

* Algebraic effects

* Modular implicits

lpage··on Okta to Acquire Auth0 for $6.5B
Full details are in the investor release [1]

[1] https://investor.okta.com/static-files/83f1811e-2f92-4c08-a1...

lpage··on Icons – Google Fonts
The SVGs used to generate the icon fonts are Apache 2.0 licensed: https://github.com/google/material-design-icons/tree/master/....
lpage··on The Prize in Economic Sciences 2020
Auction theory and applied mechanism design are two of the most real-world useful corners of theoretical economics. Multiunit and combinatorial mechanisms are core to ad markets and sponsored search, smart power grids, logistics, commerce, manufacturing, telecommunication - the list goes on. The economic gains that they drive every year are in the hundreds of billions. It's worth noting that Preston McAfee, Paul Milgrom, and Robert Wilson shared the 2014 Golden Goose Award [1] for one of the earliest and most impactful commercial applications of applied auction theory: wireless spectrum licensing.

Milgrom's Putting Auction Theory to Work [2] is an excellent introduction to this world.

PS: OneChronos (YC 16) [3] is working on bringing these mechanisms to capital markets. It's an incredibly challenging but rewarding problem that spans deeply theoretical and applied problems. We're always hiring top academic and engineering talent regardless of your background.

[1] https://www.goldengooseaward.org/01awardees/auction-design

[2] https://www.google.com/books/edition/Putting_Auction_Theory_...

[3] https://www.onechronos.com

lpage··on Timekeeping in Financial Exchanges
Most of this information is somewhere between incomplete and wrong. Accurate timekeeping (on exchange and otherwise) is crucial to latency-sensitive players in finance. I'll get to that after addressing the article.

> For example, if I trade one microsecond faster than a competitor, the exchange needs to ensure that my order gets processed first.

If the trading venue operates a price-time priority mechanism, the exchange should strive to ensure that orders receive the correct time-based priority, but there are no guarantees. Furthermore, priority and processing are separate considerations. The distinction between priority and processing is vital, given that order entry and market data distribution - both inter-exchange and intra-exchange - are challenging problems that aren't solved by accurate clocks alone.

Much of the complexity of HFT at the systems level is there to deal with said complexity. Even for a single sender, messages (new orders, cancelation requests, etc.) can (and on some exchanges, often are) processed out-of-order. You, as a market participant, might place an order, send a cancel shortly after that, have the cancel rejected for referencing an order that does not exist, and receive an acknowledgment of your new order immediately thereafter [1]. That might or might not say anything about how good the exchange is at establishing match priority. But idealizing exchanges as systems that ensure fairness via a total ordering of events (by time or any other mechanism) glosses over the reality.

Those details aside, what does "trade one microsecond faster than a competitor" mean? Network egress from the sender? Network ingress at the exchange? Exchanges are a distributed system comprised of order entry gateways and matching engines, so what determines ordering? If gateways are the arbitrators of order, do they use wall time or a shared frequency standard? If matching engines are, how are orders arriving from discrepant order entry gateways serialized? Those are systems problems, not clock problems.

> HFT can execute many orders in a second, then the exchange could reorder all the trades in the second in any way they want, without being detected by an auditor!

This isn't the threat model. What follows is also an oversimplification, but categorically, front running can occur in two forms. One involves the executing broker placing orders for their own account in front of a large client order and profiting from the market impact caused when executing on behalf of the client. Given that large orders executed incrementally, the timescales in question are minutes/hours/days, and microsecond accuracy clocks don't play a significant part in the detection or prosecution thereof. Microstructure level front running is a concern, but the nuances are s.t. accurate timestamps won't do much to detect abuse (they are important as evidence in an enforcement action).

> How are Clocks Synced?

Pretty much this whole section is wrong. In a way, it conflates how NTP (not IEEE 1588v2), one-way satellite time and frequency transfer, and GPS timekeeping work. Exchanges mostly use IEEE 1588v2 with GNSS synchronized grandmasters; they're not actively disciplining the grandmasters against each other, as this article suggests. Furthermore, accurate disciplining of the grandmaster is heavily dependent on a pulse-per-second (PPS) standard provided by the GNSS; the GNSS constellation almanac and time codes alone won't get you there.

Outperforming a GNSS solution by synching grandmasters using something more exotic such as Two-way satellite time and frequency transfer (TWSTFT) is possible, but not done by exchanges (the economic incentives aren't there).

Why do latency sensitive market participants care about timestamps? Backtesting. Quantifying uncertainty in one's system and connected systems is crucial, as is reconstructing a cross-venue series of events under a probabilistic framework. To the extent that an exchange has a regulatory obligation or pressure from market participants (who again, want accurate timestamps for backtesting purposes), they'll invest in accurate timekeeping infrastructure. Such infrastructure is way more commoditized now than it was 20 years ago. However, timekeeping is still a tricky problem, and disciplining a grandmaster is far from the most challenging part.

[1] This is super annoying, and exchanges on the whole have gotten better about either engineering systems that don't do it at all, or do it infrequently even at HFT line rates.

[2] https://tf.nist.gov/time/twoway.htm

← PreviousPage 2 of 5Next →