An inquiry about the fine details of a stop order as implemented by Alpaca: assuming I have a stop loss order to sell a stock with stop price 100.0. Will it be triggered (become a market order):
a) as soon as the NBBO bid is lower or equal to 100.0?
b) as soon as there is a trade executed with a price of 100.0 or lower?
c) something else?
Anyone from Alpaca? That’s important for fast paced trading.
In general, stop loss sell orders are triggered by a ‘valid’ trade occurring at or below the stop loss. It’s not based upon quotes but rather trades. A ‘valid’ trade is any trade which would normally be including in the calculation of the High, Low, or Close prices. So any trade which does not have any of the following conditions will trigger a stop.
Feed | Tape | Condition | Description |
---|---|---|---|
CTS | AB | B | Average Price Trade |
UTDF | C | W | Average Price Trade |
CTS/UTDF | ABC | 4 | Derivatively Priced |
CTS/UTDF | ABC | 7 | Qualified Contingent Trade (“QCT”) |
CTS/UTDF | ABC | 9 | Corrected Consolidated Close (per listing market) |
CTS/UTDF | ABC | C | Cash Sale |
CTS/UTDF | ABC | G | Bunched Sold Trade |
CTS/UTDF | ABC | H | Price Variation Trade |
CTS/UTDF | ABC | I | Odd Lot Trade |
CTS/UTDF | ABC | M | Market Center Official Close |
CTS/UTDF | ABC | N | Next Day |
CTS/UTDF | ABC | P | Prior Reference Price |
CTS/UTDF | ABC | Q | Market Center Official Open |
CTS/UTDF | ABC | R | Seller |
CTS/UTDF | ABC | T | Form T |
CTS/UTDF | ABC | U | Extended Trading Hours (Sold Out of Sequence) |
CTS/UTDF | ABC | V | Contingent Trade |
CTS/UTDF | ABC | Z | Sold (out of Sequence) |
In Alpaca paper trading those are the only rules. The reason I said ‘generally’ is our trading partners then may add a few rules on top of that in live trading. It’s not consistent between partners but some also add the constraint that the trade must have occurred within the NBBO quote. That’s practically always true but just a precaution. Some partners also require two consecutive trades or two trades within a given time. That’s to minimize sort of ‘false’ triggers. Again, that’s practically always true but something to consider.
For live stop loss orders, Alpaca sends those directly to our execution partners and their rules guide the order. Trailing stop orders however, are held by Alpaca and triggered by our logic. When it triggers, Alpaca submits either a plain market or limit order to our partners.
Hope that makes sense?
One other thing about stop sell orders. The stop price must be below the current bid price when the order is submitted. This causes issues for some users. So, when submitting a stop sell order, ensure the stop price is below both the last valid trade AND the current bid otherwise the order will be rejected.
Thanks for the detailed answer!
Just curious, is that public information who those execution partners are? I thought that as a broker, Alpaca sends the orders directly to the exchanges.