By now we are all aware that trading of GME was halted 4 times on May 12, 2022. Because these halts coincided with a big spike (and then fall) in price, it’s a foregone conclusion that the halts are due to volatility. I think this is incorrect and that the volatility was CAUSED by the halts.
You’ve probably seen this screenshot from another Ape:
GME Halts on May 12, 2022
Unlike other stocks that were halted for LUDP (Limit Up/Down)…GME was halted for Reason Code “M”
Reason Code M
Reason Code M says “volatility trading pause” but also lists “Market Category Code = C”. I’ve looked through all of the abbreviations in every category – and this is the only “C”.
Market Participant Code C = Electronic Communications Network (ECN)
Now, what *exactly* is an ECN?
In other words, ECNs are the market makers and other exchanges that provide pricing data. So, at this point, it looks like GameStop trading was halted BECAUSE THE PRICE ON ONE OF THESE ECNs WAS VOLATILE. If the halt was due to the price on the actual market, then the reason code would be LUDP, like the other halts listed that day.
From here, I wanted to see what the stock actually did that triggered the halt.
This is where it gets interesting. Let’s look at reason code “M”. These codes are all standardized and are the same on all major exchanges.
Reason Code of “M” is the volatility trading pause when securities experience a price change of over 10% within a 5-minute period.
When a trade triggers a trading pause, NYSE Arca (OR ECN) will send the indictor to the single plan processor. This will result in the trading halt reason code and quote condition code “M” disseminated by CT/CQ to all data feed recipients. Pauses will last at least 5-minutes and end with an auction on the primary market similar to those held at the open beginning and close of each trading day.
Now, I don’t have access to the order book because I’m just a regular ape. However, anyone can go to trading view and get data down to the minute for all transactions.
GME Chart from May 12, 1 min incriment.
I went through minute by minute and took the Opening, High, Low, Closing, and Volume and manually plugged them all into an excel sheet – adding in the gaps for when the halts occurred.
From here, I made a formula that, for each minute, checks the previous 5 minutes for the high and low price, then adds or subtracts 10% to get the Reason M High and Low rolling threshold limits.
I set it to be green if it’s inside, and red if it exceeds the thresholds.
Here’s the thing: THE PRICE NEVER EXCEEDS THOSE THRESHOLDS.
If the Trading View Data is accurate – then there was NEVER any sale of GME that was sufficient to trigger the Reason Code M volatility halt.
MY INTERPRETATION OF THIS DATA
A market maker/ECN triggered the halt (reason code M, Market Category C). But there was never any sale that triggered it. (I would love more input on this).
Someone bought 10k shares in the low 90’s, triggered the halt, then dumped them in the 100’s
Look at the share price leading up to the first halt, and also the volume of shares traded. The price drops at 10:05 from 92 to 84…but then starts to rise. Over the next 10 minutes, it goes from 84 to 94 on next to nothing volume.
Look at 10:14, just before the first halt. There were only 700 shares traded, then it was halted. 5 minutes later the stock resumes trading for 28 seconds. In that 28 seconds, more than 10,800 shares were purchased between $94 and $99, then there was another halt.
The stock resumes trading at $102 ($3 higher than when the halt occurred). In the next :23 seconds the price goes up to $108, then gets halted again. Volume is 5k.
Trading resumes at $108 and, in the span of :17 seconds, drops to $102 and is halted again. Volume is 5k.
I don’t know if it’s exactly correlated, but the trading after halt one was 10,809 volume. The trading after halts 2 and 3 together is 10,816. That’s weirdly similar considering the trades were done in just a few seconds.
I think the halt was initiated by an ECN in response to liquidity/volume drying up. (i.e., the float is almost gone and they had to do something). So they triggered the halt, then bought and dumped shares. Once the liquidity increased, they could further short and/or ladder to get the price back down. Then, because we’re in the news again and the halt – everyone pours back in and there is volume to manipulate again.
There’s just literally no other reason I can see for the first halt at 10:14. It had gone up a couple of bucks in the previous few minutes but was relatively stable and unchanged immediately before the halt.
I don’t have access to the full order book. I would like to look at all of the orders that cleared during those halts and see if they originate from the same source. I also want to look at any options contracts or derivatives that were bought during the same time. I’d also like someone with wrinkles to explain any reason they know why the stock would be halted at 10:14 when there was low volume, and the price had not changed dramatically. (The price change came AFTER the first halt).
I think this points towards some kind of new fuckery – but I just don’t have the resources to drill down any further. Please review and let me know your thoughts or what else we can look at, or if I have missed something obvious.
Edit 1: there is a non-relevant typo in my sheet for the closing price at 10:11. It was $90.35, not $99.35.
Edit 2: credit to u/hank101 for this screenshot:
This obviously did not go through as an order, I am unsure if this would trigger a halt – but the spread looks fucky for sure.