This morning, with SPY trading for a while between 416.50 and 417, with a penny spread, I placed a market order for 50 shares and saw, as soon as I hit the key, a print for 415 and change pop up and then in a flash disappear. And sure enough when I check the fill on my order, that 415 and something was my fill. Like wow, either the bid-ask on my screen for SPY is not accurate, by a substantial margin, or I was hit by a hidden HFT. Can anyone explain? Is this what payment for order flow is about? Needless to say I am not pleased with TOS today.
You offered to sell at any price, so you ripped yourself off. Guess you were in a hurry. TOS has nothing to do it with it, you hit your thumb with a hammer. Learn your tools.
"Never use a market order". Even if the bid and asked spreads are close, I use a limit order and put the in between the bid and ask as my limit price. Works for the most part. Market makers will play games of either raising the ask price (very high) or low balling the bid price at times. In those days, I do not bother selling or buying that stock or option. The next day, chances are good the prices have returned back to normal. Nobody is forcing you to pay the bid or ask price unless, you are desperate to get in or out at any price. In 99% of cases, it pays to wait the very next day.
I don't know TOS' capabilities but OP may well be better served by pegged to midpoint orders. Passive limit orders are a joke for many purposes.
Fuk market orders. I use the "MID" order on IB where it is supposed to get a price between the bid and ask (it will wait until it can), that seems to work very well. Have not seen a bad fill to date.
SPY has so much liquidity and trading venues it has a flashing quotes problem and is almost impossible to price protect. Pegging an order often won't help so the "least worst" idea is a limit order. Did you get screwed? Look at T/S data - not just the fill.
Seems very strange indeed. According to the chart below, 415 hit for only a minute, but in that minute, it was nowhere close to 416.50-417 range you mention. Something is definitely off. Any chance you're using delayed data? The 415 print happens at 10:22, but if your data is 20 minutes delayed, I can see why you thought it was still in that upper range.
The quotes you saw might not include odd lots. https://scan.stockcharts.com/discussion/295/round-lots-less-than-100-shares-and-chart-prices