Stop orders are marketable orders after triggering. Most likely there was a trade at 20.35 or above and then your order triggered, you got price improvement. EDIT: Time and sales doesn't report a trade at 20.35 but it could've been internalized at Schwab.
If you're going to "trade" with 15¢ stops, you may as well run your money through a paper-shredder and save several months of heartache.
The level -2 on the 16th shows no orders were filled above $20.30 on this very liquid stock. What they did is called a 'trade through'. This goes against Reg NMS rule 611. They also failed to report the trade on NMS. You have a valid gripe. I would fight to get that trade reversed, meaning you get credited with the profit you should have had. Rule 611, otherwise known as the Order Protection Rule, aims to ensure that both institutional and retail investors get the best possible price for a given trade by comparing quotes on multiple exchanges. If a better price is quoted elsewhere, the trade must be routed there for execution, and not "traded through" at its current exchange. Schwab sends their orders to the biggest sharks out there. Just look at their 606 reports, orders are sent to the likes of Citadel, UBS, Two Sigma, G1X. No wonder you got raped on that trade. Us more experienced traders use brokers that don't take payment for order flow & will only fill orders after a single or double tick (print) which guards against this type of thuggery.
Schwab have replied with the following “You are correct the high was $20.30, but the stop loss order was triggered because the ask price has reached $20.35. Stop orders are base on either the ask or the bid price, not the actual execution price. Please contact us if you have any further questions or concerns. We appreciate your business.” Meanwhile thank you for your constructive answer. I appreciate all the comments but yours is definitely the most insightful
Strange. Typically the default trigger for a stop is the last trade price. Then again Schwab isn't for professional traders.
That response by the broker is ridiculous. The crossed the market to trade way through the protected NMS quote and failed to report the trade in NMS. From what I can tell there are two violations here. I would report this to FINRA and find a better broker. https://www.sec.gov/divisions/marketreg/rule611faq.pdf
On a serious note... For a short sale, buy-stop orders trigger a market order to buy back when the ask price is equal to, or greater than, the stop price entered. https://www.schwab.com/active-trade...requently-asked-questions-about-short-selling This is different than a sell stop. A standard sell-stop order is triggered when an execution occurs at or below the stop price. When this occurs, a market order to sell is sent to the marketplace and your position will be closed out at the next available price. https://www.schwab.com/active-trader/insights/content/be-defensive-use-stop-orders Hmph.....Learned something new.
Break your order apart, and use a conditional rather than a true stop loss. When I place a stop, I use the bid greater than X (on a short position stop). That way it doesn't trigger if the spread widens or there's an outside-of-spread tick. It'll cost a few pennies in the execution to do this (usually), but I find that preferable to getting stopped out early. It makes it so the bid x ask spread must pass through your stop to trigger (don't let this go during extended hours!!!). I'd guess almost a quarter of my outright trades get my stop inside the spread without triggering. The answer to paying the additional loss for this is to move your position size down to keep the loss the same. (And seriously, why isn't this an off-the-shelf offering from exchanges?!!!) Edit: Added benefit, no one sees your order until it goes to market. So no getting hit by widening spreads (which I suspect happened to you)