How to get the current "Market Price" of an Option shown in Alpaca UI

Hello everyone,

I’m wondering how the market price on the Alpaca website is calculated or where it comes from? I have just checked all the available price data but none of it matches the market price displayed on the website.
The website is currently showing a market price of 111.50 for MSFT250117C00300000.
When I fire a get_option_latest_quote call to the API using AlpacaPy I get an ask price of “113.51” and a bid of “109.53”. Is the avg being used here?
When I fire a get_option_contract call, I get a close price of “106.61”.
If I call get_option_latest_trade, I get a price of “111.29”.
None match the market price of 111.50, can someone please clarify this for me?

Thanks,
Exolith

@Exolith The ‘market price’ shown for options is the last traded price (which could be awhile ago for thinly traded options). The Options Price Reporting Authority (OPRA) consolidates all option trading from all execution venues and reports them on their data feed. These are the prices reported if one has the paid Algo Trader Plus market data subscription.

Due to licensing restrictions, the free Basic data plan does not report current OPRA options data. However, to provide users with a free alternative, Alpaca reports ‘indicative’ pricing for current quotes and prices. These are calculated prices based upon the option’s ‘greeks’ using the Black Scholes model. While these are calculated (and not actual) prices they are ‘indicative’. You are probably using the free market data?

Hi @Dan_Whitnable_Alpaca , Thanks for the clarification!
Yes correct, I am currently using the free market data. Ie if I subscribe to the Algo Trader Plus Market data subscription, will I get the current “market price” that is also displayed on the website? Then i would use the close price value which i receive from the get_option_latest_trade call?
Thank you,
Exolith

@Exolith “if I subscribe to the Algo Trader Plus Market data subscription, will I get the current “market price” that is also displayed on the website?” Yes.

“Then i would use the close price value which i receive from the get_option_latest_trade call?” Depending upon what you are doing with the data, yes. Remember the ‘last trade’ 1) happened in the past and 2) you don’t know anything about the trade (eg was it someone’s buy market order or a sell). If you want to know what a market order would fill at, if placed now, then fetch the latest quote. Exactly like equities, market buys will generally fill at the ask and market sells at the bid.

@Dan_Whitnable_Alpaca Thank you very much for the clarification!

@Dan_Whitnable_Alpaca Hi Dan, May I know how accurate is the Black Scholes calculated price? Would it be good enough for live trading with per second frequency? Also if you have the option purchased and use the position.unrealized_plpc function, does it use the true market value or the Black Scholes? Additionally, I would also like to inquire about the web socket streaming data. Are they live market data? Thank you so much!