Nanex Logo
Coexisting without Colocating
A proposal for improving the market for everyone

More Nanex Research

Our last paper ended with:
We think we found a possible solution to the HFT/non-HFT divide that lets the market itself decide the value of an equity quote. The solution is incredibly simple and has virtually zero impact on the millions of systems already in place. It also requires no cancellation fees or transaction taxes, and it lets trading go as fast as the speed of light.
Here is that solution.

Executive Summary

In 2011, exchange fees for CQS were approximately $500 million. Per Reg NMS, exchange fees are apportioned to each exchange depending on how often an exchange's quote is at the NBBO. Reg NMS also describes quotes that change more than once per second as flickering quotes. Per Reg NMS, flickering quotes are ineligible to set the NBBO, and exchanges are free to ignore them for the purpose of trade-through protection. We believe that by formally recognizing flickering quotes for what they are, most of the latency games will disappear.

Therefore we propose to:

  • Set the quote condition for flickering quotes to a new condition called Immediate. Traders that want to enter a quote that can be canceled in less than 1 second, simply need to indicate this by marking the quote with the Immediate condition.
  • Require regular and auto-exec quotes to remain active (and not canceled) until executed or 1 second elapses. These quotes remain eligible to set the NBBO.
  • Require the time stamp field in all quote messages to be set to the time the quote was created at each exchange, instead of when it is transmitted by the network processors (SIP). This will allow all downstream users to accurately compute the age of each quote.
These simple changes will provide an incentive for exchanges to attract liquidity providers who are willing to leave their quote in the system for at least one second, because only those quotes are eligible to set the NBBO which determines the percentage of exchange fee revenue. Also, this proposal will give higher visibility to orders from investors who truly wish to buy or sell a stock. And finally, the changes to the time stamp will allow all participants to determine the age of each quote, and therefore any delays in the system.


We have thought a lot about how HFT can coexist with human traders and computers that aren't co-located or wired for speed. We believe a strong and stable market requires a diversity of participants, which isn't possible when speed is valued above everything else. If everything is wired for speed, then you can count on software engineers wringing every last line of analytical code out of their systems to gain that one extra cpu cycle that will put them ahead. Same goes for error checking. In fact, any code not involved in transmitting an order will be fair game in the race for speed. In an HFT only environment, reaction to news will be instantaneous: shoot first, ask questions later.

We wonder if those who talk about trading at the microsecond level fully realize the infrastructure required to handle that level of trading: just 1 quote per microsecond on 1,000 symbols is 1 billion quotes per second. That rate would saturate a terabit network (a future technology) and completely fill a terabyte drive in about 10 seconds. Is there really any room in that HFT vision of utopia for non-HFT participants with other strategies? And if there is, would these other participants still be required to bulk up on the same CPU's, network gear, and disk storage just to get the same trading functionality they had before?
Recently, an exchange suggested to us that traders who aren't co-located don't need to see every quote. We couldn't agree more and replied, "Fantastic. Then how about just sending the quotes that matter?"

At the time our reply was sarcasm, as it is impossible to know which quotes have value and which ones do not. But that got us thinking: what if there was a way to distinguish between quotes that matter and those that are just noise? What if there was a way to distinguish between quotes entered by people with full intentions of buying or selling stock, and quotes entered for the purpose of pinging for liquidity or pretending to show interest, or tricking other algorithms to reveal intentions, or any purpose other than, you know, actually buying or selling stock?

If you could tell which quotes were there for execution and ignore the rest, that would represent significant progress, a leap actually, towards achieving a fair and reasonable market. Likewise, for those who truly want to buy or sell stock, if they could indicate that their quote would stick around long enough that someone could reasonably execute against it, then it would carry more weight in the market than quotes that could be canceled on a whim.

So why not just mark quotes that intend to be executed with a special quote condition? Or even better, mark quotes that could be canceled in less than, say 250 milliseconds, with a special quote condition called immediate. For quotes not marked immediate, simply require that they remain executable for a certain amount of time (say 250 milliseconds) from the time they were created. You just have to make sure each quote is timestamped with the actual time it was created at the exchange.

By making these two simple changes (adding the immediate condition and ensuring timestamps reference the time a quote was created), equity quotes would become infinitely more valuable.  A quote from someone wishing to buy stock would automatically carry more value than a quote marked immediate, because it could be executed by more people. Everyone will be able to compute the exact age or delay in every quote (chalk it up to modern computing, trust us on this), and therefore determine if there is enough time to execute against it.

Of course, you still might miss a trade if another trader is faster, but that is completely acceptable. Missing a trade because someone cancels a quote before you even receive it, that is unacceptable.

The ability to monitor feed delays in real-time would be a strong incentive for making timely system improvements. It will also avoid the dangerous situation where hidden system delays slowly creep towards a tipping point, only to cross that point at the worst possible time, such as when shocking news hits the market. This is a very real danger in complex networked systems which often show no problems all the way up to 99.9% capacity, only to fail catastrophically if it pegs 100% for too long.

Technical Details
  1. Create a new quote condition type called immediate (see Appendix H for existing conditions). Quotes entered into the system that could be canceled within a certain amount of time (say 250 milliseconds) will use the new condition immediate. Immediate quotes are not eligible to update the NBBO: they are practically equivalent to flickering quotes as described in Reg NMS, which exchange centers can already ignore when routing orders. Essentially, we propose tagging flickering quotes with the quote condition immediate, making them ineligible to set the NBBO. Only quotes that will remain executable for a certain minimum amount of time (say 250 milliseconds) after the original timestamp, are eligible to set the NBBO and won't require the immediate tag.  

  2. Currently, every quote message has a timestamp field which is filled (replaced) by CQS when the quote is ready for transmission (instead of when the quote was created). That means any delays in the system up to that point in time are forever erased and hidden. This practice needs to stop immediately. The original timestamp created by the exchange when the quote record was first created must be retained throughout the life of the quote. We do not advocate adding another timestamp. The original timestamp created by the exchange at the time a quote is created should be what is transmitted in the quote message timestamp field. The end user, the trader or investor, does not care where the delay occurs. They only want to know the existence and extent of any delay. Adding another timestamp would increase the size of every quote message and require unnecessary software changes on every system processing these messages.



Publication Date: 10/17/2011

This report and all material shown on this website is published by Nanex, LLC and may not be reproduced, disseminated, or distributed, in part or in whole, by any means, outside of the recipient's organization without express written authorization from Nanex. It is a violation of federal copyright law to reproduce all or part of this publication or its contents by any means. This material does not constitute a solicitation for the purchase or sale of any securities or investments. The opinions expressed herein are based on publicly available information and are considered reliable. However, Nanex makes NO WARRANTIES OR REPRESENTATIONS OF ANY SORT with respect to this report. Any person using this material does so solely at their own risk and Nanex and/or its employees shall be under no liability whatsoever in any respect thereof.