Limit Sell Order Not Executed Despite Being Below Bid

Hi, I am relatively new to Alpaca and over the past few days, I have been trying out a strategy that involves selling SPY call contracts on my paper account. I have been attempting to execute trades by submitting limit sell orders at prices slightly below the latest bid. For example, for the limit order 8f7a1055-5aaa-48b0-8817-a39e0c26d366, I submitted an order to sell at 176.25.

While the order was open, I used the WSS options client to stream live quotes. The following quotes were all pulled from the interval during which my order was active:

Ask-Bid | quote time stamp
177.25-179.66 2025-03-28 18:25:20.215197+00:00
177.91-180.28 2025-03-28 18:25:26.100120+00:00
176.81-178.02 2025-03-28 18:25:34.331495+00:00
176.62-179.74 2025-03-28 18:25:39.000081+00:00

In all of these cases, my ask was

  1. Below the lowest
  2. Below the highest bid

So from what I understand, the trade should have gone though. Is there something I am misunderstanding about the data or how order execution works?

Thank you!

Hi @Boldizsar_Szabo ,

Are you on the free ‘Basic’ data plan or on the paid ‘Algo Trader Plus’ plan? The data may not be fully accurate in the free plan. I am pasting a relevant reply which I obtained from Alpaca support:

Both this paid plan and the free plan provide ‘real time’ data. However, the paid plan provides actual real time OPRA data, while the free plan provides randomized ‘indicative’ data. This is similar to equity (ie stock) data. The paid plan provides full market real time SIP data, while the free plan provides real time data from a single exchange (the IEX exchange). The free plan data is primarily meant for algo testing and debug and should not be used for live trading decisions.

Let me know if this answers your question.

Thanks

@Boldizsar_Szabo It seems you are using the free data and connecting to the option stream at wss://stream.data.alpaca.markets/v1beta1/indicative? If that’s the case, as @sarahvignale mentioned, those quotes aren’t the real OPRA quotes, but rather are ‘indicative’ (ie randomized a bit from actual values).

I looked up your order and the actual OPRA quote at the time your order was submitted was bid:175.39 ask:176.6. Since your sell limit of 176.25 (ie the least you would sell for) was above the bid of 175.39 (ie the most anyone wanted to pay) your order did not fill.