Hacker News new | ask | show | jobs
by ForHackernews 4457 days ago
Some people have proposed the round-trip time from New York to Tokyo at the speed of light as a "speed limit" for trading. That works out to something on the order of 70 ms.

At the very least, it would eliminate the advantage gained from collocating your hardware next to the exchanges' servers.

1 comments

Why would it do that? If I'm colocated and you aren't, I have 70 ms latency, you have 70 ms + the distance to your servers.
I'm not an expert, but I think the idea is that the exchange would operate on some kind of "tick" cycle, so it would not be first-come-first- serve.

If you're collocated, you can place your order sooner, but before executing any of the orders, the exchange will wait 70 ms (or whatever) before trying to reconcile them (based on an auction system or similar).

So you can have low-latency, but it won't buy you any advantage, because being fast won't allow you to front-run other orders from further away.

Ok as with all discussions about introduced latency, randomized latency, etc. The issue is not so much about latency, it's about fill priority when there are more people on one side of the buy/sell book at a given price point than on the other. Who gets left out?

Most (but not all) markets currently use price then FIFO for the matching algorithm. If you don't change the matching algorithm all the fake latency in the world won't make a difference to the game. If you are going to change the matching algorithm, what are you changing it to?

You aggregate all trade offers in a given time interval. You line them up in order of their price. Buyers are ordered highest to lowest. Sellers are ordered lowest to highest. Continue matching units until the buy price is lower than the sell price. Back up one. The average of the buy and sell prices for that unit is the clearing price. All the units to the left get traded. Everything to the right expires or rolls over to the next auction.

In case of ties, there is no tiebreaker, so any orders that can't be filled at exactly filled at the clearing price are filled as much as possible in as close to equal proportions as possible. For a variety of reasons, there will probably be a slight bias towards filling larger orders by a greater amount.

There is no FIFO. There is only participating in the auction and not. Did you get your orders in before the deadline, or not? The only way to guarantee complete fulfillment of your order is by having a better price than the marginal trader.

Having an order partially filled sucks, but it is your signal that you guessed the clearing price exactly right, and your prize is that you pay no fees whatsoever for your partially filled trade. You beat the system. You didn't beat the other traders, but you beat the system.

The more trade offers there are, the better the whole thing works. But people don't want to wait around forever, either. That's why I think clearing once an hour is a good compromise.

In another comment I mentioned the most elegant way to mitigate fifo priority gaming is to allow extremely high levels of fractional tick price. Something like 1/1000 of a penny would probably be enough.

I still think if you want to eliminate electronic market makers that is simpler and has less unintended consequences.

As I mentioned in another comment without serious protections against it your exchange is going to bias very strongly towards many many single quantity orders (they can't be filled partially after all) and stacked orders around your last trade price.

You also are going to lose lots of large volume orders because most large order investors are less sensitive about price than they are about fill certainty.

That said the more I think about it, the more I think algo shops would love your exchange because price discovery would be so hard. When price discovery is hard there are more opportunities for the "smart" money.