If it had not been for Nanex's stellar forensic analysis of last year's flash crash, the SEC would still have no idea who to scapegoat for the unprecedented HFT quote stuffing incursion that cost the Dow 1,000 points in a matter of minutes, when virtually everything that could go wrong for broken market structure, did go wrong. Yet for all its fantastic insight, Nanex has traditionally been a post-facto, and at best concurrent, warning indicator. Until now. If Nanex is correct, and if tomorrow's trading session is as volatile as many expect, which will likely occur at a time of complete market illiquidity (the vote is expected to take place at 1pm Greek time, so 6 am EDT), we may well see the next culprit in the broken market structure rear its head. And no, it's not shares or ETFs this time. In fact, it's a long lost friend of major market crashes... Options.
With the Greek deal culminating before the open, we could have a serious issue tomorrow: Today between 10:35 and 11:17, algorithms running on multiple option exchanges (6 or more), drove excessively high quote rates for SPY options (and 2 or three other symbols that I haven't identified yet). Fortunately this was a quiet trading period. A total of about 400,000,000 excessive quotes were generated -- that is, compared and scaled to the previous day. In one 100ms period, 2,000 SPY option contracts had about 16,000 fluttering quotes (some combination of nominal changes in bid, bid size, ask, ask size) resulting in saturating/delaying all SPY options on that line. These events occurred several times per minute during the interval. If these algorithms include more symbols, or if they run again during an active market, we will see severe problems. It is shocking to see this so widely distributed across so many exchanges and contracts simultaneously.
As a reminder, Nanex proved beyond a reasonable doubt (only further validated by the SEC's stern refusal to acknowledge it, and idiotic insistence to blame Waddel and Reed for singlehandedly breaking the stock market) that it was the kind of HFT algo induced quote-stuffing and massive churning patterns that Nanex is now seeing in the option realm. Should there be an even modest deviation from the expected and thus priced in (and it is again time to load up those Syntagma square cameras), tomorrow has all the hallmark warning signs of yet another Greece-induced flash crash.
We have been warning that 2011 is a carbon copy of 2010 for months now. It will be supremely ironic if Greece is again the cause for the historic market wipeout event of the year.
And while we are on the topic of irregular option activity, we would like to present some further just released thoughts on option quote stuffing and OPRA time stamping of options trades courtesy of Harold Lanier:
Immediate regulations should be put in place to:
- Force the Option Price Reporting Authority (OPRA) to time stamp all option data as it occurs not when it can be pushed out of the queue.
- Force the nine Option Exchanges to stop allowing “Quote Stuffing.”
OPRA transmits option quote data via 48 different lines. Each line is designated for symbols in a specified alphabetic range. For example, line 1 is for options between A and ADMZZ, and line 38 is for SPY – SPYZZ. This document will focus on line #38 because it is easier to research only one option chain rather than the other lines where multiple option chains would be required. It should be noted that all lines appear to work similarly though the gates are set at different levels for each.
The attached chart uses the color scale on the left to plot the quote rate in quotes per second for the 48 lines plus a total quote rate for all lines. The X-axis is time in milliseconds starting at 15:14:59:000 and ending at 15:15:01:200, the Y-axis is the quote rate in quotes per second. The bold black line is the sum of all of the 48 quote rates. In this chart the Total (Black line) makes a big spike at around 15:49:59:650 up to about 1.5M quotes per second. This spike is within the OPRA limits of 3.5M quotes per second.
At approximately the same time notice the bluish/purple line (#38) spikes up to about 150,000 and then flat-tops for about 100 ms then moves up to about 275,000 for a period and then drops back off. This flat-top behavior occurs frequently throughout the day in all channels. Statistically, a flattop like this can not happen unless the data flow is being controlled by a governor/gate which is assumed to be done by OPRA.
Since the chart is plotted in quotes per second and each instant is a millisecond, then it is assumed that the initial gate setting for line #38 is 150 (150,000/1000) quotes at any one instant. There are approximately 2,152 SPY option symbols. It would therefore take approximately 14.35 ms to completely update the SPY option chain for one exchange. There are 9 exchanges so to update all exchanges’ quotes (19,368) would take 129.12 ms. As can be seen the flat top gate is increased to 275 after 100 ms which allows more data to flow. Using gate two, the time to update all exchanges is reduced to about 116 ms. This demonstrates that any significant market move creates a significant data delay.
The immediate issue with this gated system is that the data coming out at 116 ms is actually information from 116 ms ago though it is time stamped as current data. This improper time stamping is a significant problem. Data should be time stamped when generated, not when pushed out of the system. Obviously, proper time stamping is necessary for a trader to make knowledgeably trades. The inability for researchers to adequately understand what actually happened during the “Flash Crash” is further evidence for this need.
In a previous post to the SEC’s Concept Release questionnaire
It was assumed that the eventual intent was to use “Quote Stuffing” to clog up the entire option market. Now, understanding the 48 different broadcast lines, it is obvious that the attacks are actually at specific stocks at different times. Since the post it has been demonstrated to the SEC’s Compliance Inspectors that unnecessary high quote rates are now being broadcast from all option exchanges. With rates reaching as high as 7,000 quotes per second on a single option symbol and a day where 4,487 attacks were in excess of 1000 quotes per second on just the BBO data.
On June 17, 2011, the same day as the chart above, the best bid on the SPY_20110630_137_Call flip flopped back and forth between ISE 83 contracts at 0.01 and C2OE 150 contracts at 0.01 all day long at a rate of approximately 100 changes per second.
oSPY_1130F137|09:30:04.125|ISEX| 0.01| 83|NationalBBO
oSPY_1130F137|09:30:04.125|C2 | 0.01| 150|NationalBBO
oSPY_1130F137|15:14:59.650|C2 | 0.01| 150|NationalBBO
oSPY_1130F137|15:14:59.650|ISEX| 0.01| 83|NationalBBO
oSPY_1130F137|16:00:00.000|C2 | 0.01| 150|NationalBBO
oSPY_1130F137|16:00:00.000|ISEX| 0.01| 83|NationalBBO
Detailed time and sales by exchange shows that the C2OE was placing and canceling its 150 contract order at a continuous rate of about 50 times per second for the whole day. All of the option exchanges are now charging cancellation fees to supposedly stop this type of public activity. At $2 per cancellation the above placing an order and cancelling would cost a trader about $2.34million for the day. It is safe to assume that the activity is not being done by the public. This narrows the search for the bad guys down to those exempt from Exchange cancellation fees.
Unnecessary activity like this adds to the data flow that has to be handled by OPRA to broadcast quotes. It is obvious that strategically placed burst of data chatter (Quote Stuffing) can easily blind one of the option market data lines without appearing to disrupt the total OPRA stream. Quote Stuffing must be stopped.
Proper time stamping should assist in detection of data delays. OPRA certainly publishes statistical numbers such as average quote delays which are presumably used to determine if OPRA is meeting its mandates. All time stamping, both in the option market and the equities market should be done as the event occurs, not when the information is finally pushed out of the queue.