¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Getting last Expired Option Price


 

Hi, I try to get the expiration price of an option (let's say SPY) expired 2 months ago.
I tried to get the Close of the last trading day using reqHistoricalData:
IContract.exchange="SMART"
IContract.conId=458962807?????? //SPY 2021-01-22 Call 386
IContract.includeExpired=true
IBClient.ClientSocket.reqHistoricalData(1,IContract,"20210125 02:00:00 CET","1 W","1 day","TRADES",0,1,0,Null)

But I get an error 200 No security definition has been found for the request
Which sounds logical, according to the historical data limitations:
unavailable historical data: Expired options, FOPs, warrants and structured products

So, does anyone knows how to get the last price of an expired option (the expiration price kept for assignment calculations by OCC and IB) via API (and not FLEX queries)?


 

It would be easier to figure out official closing price for the underlying and calculate option prices yourself.


On Sat, Mar 13, 2021, 10:36 Francois G via <namasteparis=[email protected]> wrote:
Hi, I try to get the expiration price of an option (let's say SPY) expired 2 months ago.
I tried to get the Close of the last trading day using reqHistoricalData:
IContract.exchange="SMART"
IContract.conId=458962807?????? //SPY 2021-01-22 Call 386
IContract.includeExpired=true
IBClient.ClientSocket.reqHistoricalData(1,IContract,"20210125 02:00:00 CET","1 W","1 day","TRADES",0,1,0,Null)

But I get an error 200 No security definition has been found for the request
Which sounds logical, according to the historical data limitations:
unavailable historical data: Expired options, FOPs, warrants and structured products

So, does anyone knows how to get the last price of an expired option (the expiration price kept for assignment calculations by OCC and IB) via API (and not FLEX queries)?


Matthias Frener
 

I'm also usng the underlying. Expired OTM options are 0$, price of ITM is the different from strike to underlying closing price (they have no more time value at expiry).

Am Sa., 13. M?rz 2021 um 15:07?Uhr schrieb §¡§Ý§Ö§Ü§ã§Ñ§ß§Õ§â §¹§Ö§â§ß§Ú§Ü§à§Ó <me@...>:

It would be easier to figure out official closing price for the underlying and calculate option prices yourself.

On Sat, Mar 13, 2021, 10:36 Francois G via <namasteparis=[email protected]> wrote:
Hi, I try to get the expiration price of an option (let's say SPY) expired 2 months ago.
I tried to get the Close of the last trading day using reqHistoricalData:
IContract.exchange="SMART"
IContract.conId=458962807?????? //SPY 2021-01-22 Call 386
IContract.includeExpired=true
IBClient.ClientSocket.reqHistoricalData(1,IContract,"20210125 02:00:00 CET","1 W","1 day","TRADES",0,1,0,Null)

But I get an error 200 No security definition has been found for the request
Which sounds logical, according to the historical data limitations:
unavailable historical data: Expired options, FOPs, warrants and structured products

So, does anyone knows how to get the last price of an expired option (the expiration price kept for assignment calculations by OCC and IB) via API (and not FLEX queries)?


 

Thanks for your answers. That's what I thought at first, but when I ask for the underlying past quotes, I can see a discrepancy between historical data using reqhistoricaldata, and what is displayed on the graph. Using RTH or not, and setting RTH graph parameter, figures differ for all (open, high, low, close)


 

Hi Mattias & Alexandre,
To get the underlying closing price, do you use reqHistoricalData for the expiration date?
Using Regular Trading Hours (RTH) = 1 or 0 ?
The closing price of the underlying for option calculation is normally based on the price AFTER market close, so RTH=0
Please confirm.


Matthias Frener
 

I actually the closing the pricing of the current trading day.
Maybe we have different use-cases, but I only need expired option prices for the daily?settlement. So I use last price just after markte close.
The exact value (used on monthly balance) will than later sync from FlexQuery after the transaction shows up there.

Am Di., 16. M?rz 2021 um 10:19?Uhr schrieb Francois G via <namasteparis=[email protected]>:

Hi Mattias & Alexandre,
To get the underlying closing price, do you use reqHistoricalData for the expiration date?
Using Regular Trading Hours (RTH) = 1 or 0 ?
The closing price of the underlying for option calculation is normally based on the price AFTER market close, so RTH=0
Please confirm.