Our last paper
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.
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
- 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
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
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
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
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
- Create a new quote condition type called immediate (see
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.
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.
Currently, every quote message has a timestamp field which is filled (replaced)
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