Authors
In part 1: we will (i) automatically find the Option (of choice) closest to At The Money (ATM) and (ii) calculate its Implied Volatility & Greeks. We focus below on Future (Monthly) Options on the Index '.STOXX50E' (EURO STOXX 50 EUR PRICE INDEX) ('EUREX') and '.SPX' (S&P 500 INDEX), although you can apply the logic below for another index. To find the ATM instrument, we simply and efficiently use the Search API. Usually, the calculation of the Black-Scholes-Merton model's Implied Volatility involves numerical techniques, since it is not a closed equation (unless restricting assumptions that log returns follow a standard normal distribution with mean is zero, $\mu$ = 0, and standard deviation is zero, $\sigma$ = 1, are made). If we used these techniques in calculating each Implied Volatility value on our computer, it would take several seconds - if not minutes - for each data point computed. I have chosen to use the Instrument Pricing Analytics (IPA) service in the Python Refinitiv Data Library instead, as this service allows me to send model specifications (and variables) and receive several (up to 100) computed Implied Volatility values in one go - in a few seconds. Not only does this save a great deal of time, but also many lines of code! Fianlly, we will put it all in one function.
In part 2: We will implement a functionality allowing us to apply all we did in Part 1 to expired options. You'll see, it's not as simple as it seems. We will then put it all in one function using Type Hints. This, in itself, will also be rather new and exciting!
Content
Now let's open our session with RD. You can find more information about sessions on EX-4.01.01-Sessions.ipynb.
| Instrument | PROV_SYMB | |
|---|---|---|
| 0 | DSMF4 |
| Instrument | RIC | |
|---|---|---|
| 0 | VOD.L | VOD.L |
refinitiv.data used in this code is version 1.3.0
numpy used in this code is version 1.23.1
pandas used in this code is version 1.3.5
pandas_market_calendarspytz used in this code is version 4.1.4
requests used in this code is version 2022.1
plotly used in this code is version 2.28.1
FYI (For Your Information), this is out Python version:
Python 3.10.5
EUREX Call Options¶
In this article, we will attempt to calculate the Implied Volatility (IV) for Future Options on 2 indexes (.STOXX50E & .SPX) trading 'ATM', meaning that the contract's strike price is at (or near - within x%) parity with (equal to) its current treading price (TRDPRC_1). We are also only looking for such Options expiring within a set time window; allowing for the option 'forever', i.e.: that expire whenever after date of calculation. To do so, we 1st have to find the option in question. To find live Options, we best use the Search API. To find Expired Options we will use functions created in Haykaz's amazing articles "Finding Expired Options and Backtesting a Short Iron Condor Strategy" & "Functions to find Option RICs traded on different exchanges"
Finding Live Options (using Search API)¶
Live Options, in this context, are Options that have not expired at time of computation. To be explicit:
- 'time of calculation' refers here to the time for which the calculation is done, i.e.: if we compute today an IV for an Option as if it was 3 days ago, 'time of calculation' is 3 days ago.
- 'time of computation' refers here to the time when we are computing the values, i.e.: if we compute today an IV for an Option as if it was 3 days ago, 'time of computation' is today.
As aforementioned, to find live Options, we best use the Search API: Here we look for options on .STOXX50E that mature on the 3rd friday of December 2023:
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 0 | Eurex EURO STOXX 50 Monthly Index Option 4300 ... | STXE43000L3.EX | 4300 | EUX | 2023-12-15 | [.STOXX50E] | 2023-03-09 05:27:25 | 2023-12-19 |
| 1 | Eurex EURO STOXX 50 Monthly Index Option 4500 ... | STXE45000L3.EX | 4500 | EUX | 2023-12-15 | [.STOXX50E] | 2023-03-09 05:15:11 | 2023-12-19 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 98 | Eurex EURO STOXX 50 Monthly Index Option 2800 ... | STXE28000L3.EX | 2800 | EUX | 2023-12-15 | [.STOXX50E] | 2023-03-09 05:16:35 | 2023-12-19 |
| 99 | Eurex EURO STOXX 50 Monthly Index Option 3825 ... | STXE38250L3.EX | 3825 | EUX | 2023-12-15 | [.STOXX50E] | 2023-03-09 03:51:31 | 2023-12-19 |
N.B.: When using the Filter in Search and playing with dates, it is good to read the API Playground Documentation; it mentions that: "Dates are written in ISO datetime format. The time portion is optional, as is the timezone (assumed to be UTC unless otherwise specified). Valid examples include 2012-03-11T17:13:55Z, 2012-03-11T17:13:55, 2012-03-11T12:00-03:30, 2012-03-11.":
Let's find the current underlying price, then we can pick the option with strike price closest to that, i.e.: the most 'At The Money'; note that this means that the option can be in or out the money, as long as it is the closest to at the money:
4212.59
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 36 | Eurex EURO STOXX 50 Monthly Index Option 4225 ... | STXE42250L3.EX | 4225 | EUX | 2023-12-15 | [.STOXX50E] | 2023-03-09 03:51:55 | 2023-12-19 |
In this instance, for this Call Option, 'STXE42250L3.EX', the strike price is 4225,
higher than the spot price of our underlying which is 4212.59.
The holder of this 'STXE42250L3.EX' option has the right (but not the obligation) to buy the underlying for 4225,
which, was the price of the underlying to stay the same till expiry (4212.59 on 2023-12-15),
means a loss of (4225 - 4212.59 =) 12.409999999999854.
This option, in this instance, is 'Out-The-Money'.
Function for Expiration Days¶
Most of the time, market agents will be interested in the next expiring Option, unless we are too close to it. We would not be interested, for example, in an option expiring in 1 hour, or even tomorrow, because that is so close (in time) that the information reflected in the Option's trades in the market does not represent future expectations of its underlying, but current expectations of it.
To implement such a logic, we need to know what are the expiry dates of the option that we are interested in. We are looking for a Python function narrowing our search to options expiring on the 3rd Friday of any one month. For info on this function, please read articles "Finding Expired Options and Backtesting a Short Iron Condor Strategy" & "Functions to find Option RICs traded on different exchanges"
full_dates: {2022: [datetime.date(2022, 1, 21), datetime.date(2022, 2, 18), datetime.date(2022, 3, 18), datetime.date(2022, 4, 14), datetime.date(2022, 5, 20), datetime.date(2022, 6, 17), datetime.date(2022, 7, 15), datetime.date(2022, 8, 19), datetime.date(2022, 9, 16), datetime.date(2022, 10, 21), datetime.date(2022, 11, 18), datetime.date(2022, 12, 16)]}
full_dates_str_dict: {2022: ['2022-01-21', '2022-02-18', '2022-03-18', '2022-04-14', '2022-05-20', '2022-06-17', '2022-07-15', '2022-08-19', '2022-09-16', '2022-10-21', '2022-11-18', '2022-12-16']}
dates: {2022: [21, 18, 18, 14, 20, 17, 15, 19, 16, 21, 18, 16]}
full_dates_day_dict: {2022: [21, 18, 18, 14, 20, 17, 15, 19, 16, 21, 18, 16]}
Function to find the next expiring Option outside the next x day window¶
Most of the time, market agents will be interested in the next expiring Option, unless we are too close to it. We would not be interested, for example, in an option expiring in 1 hour, or even tomorrow, because that is so close (in time) that the information reflected in the Option's trades in the market does not represent future expectations of its underlying, but current expectations of it.
E.g.: I would like to know what is the next Future (Monthly) Option (i) on the Index '.STOXX50E' (ii) closest to ATM (i.e.: with an underlying spot price closest to the option's strike price) (ii) Expiring in more than x days (i.e.: not too close to calculated time 't'), let's say 15 days:
'2023-09-27'
[datetime.datetime(2023, 1, 20, 0, 0), datetime.datetime(2023, 2, 17, 0, 0), datetime.datetime(2023, 3, 17, 0, 0), datetime.datetime(2023, 4, 21, 0, 0), datetime.datetime(2023, 5, 19, 0, 0), datetime.datetime(2023, 6, 16, 0, 0), datetime.datetime(2023, 7, 21, 0, 0), datetime.datetime(2023, 8, 18, 0, 0), datetime.datetime(2023, 9, 15, 0, 0), datetime.datetime(2023, 10, 20, 0, 0), datetime.datetime(2023, 11, 17, 0, 0), datetime.datetime(2023, 12, 15, 0, 0)]
datetime.datetime(2023, 10, 20, 0, 0)
Now we can look for the one option we're after:
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 0 | Eurex EURO STOXX 50 Monthly Index Option 4300 ... | STXE43000J3.EX | 4300 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:49:34 | 2023-10-24 |
| 1 | Eurex EURO STOXX 50 Monthly Index Option 4350 ... | STXE43500J3.EX | 4350 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:41:50 | 2023-10-24 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 154 | Eurex EURO STOXX 50 Monthly Index Option 3025 ... | STXE30250J3.EX | 3025 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:52:01 | 2023-10-24 |
| 155 | Eurex EURO STOXX 50 Monthly Index Option 1000 ... | STXE10000J3.EX | 1000 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:41:17 | 2023-10-24 |
And again, we can collect the closest to ATM:
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 14 | Eurex EURO STOXX 50 Monthly Index Option 4150 ... | STXE41500J3.EX | 4150 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:48:43 | 2023-10-24 |
Now we have our instrument:
'STXE41500J3.EX'
Refinitiv-provided Daily Implied Volatility¶
Refinitiv provides pre-calculated Implied Volatility values, but they are daily, and we will look into calculating them in higher frequencies:
'2023-09-20T10:27:45.460240'
'2023-09-27T10:27:46.761469'
Now things are getting tricky. Certain Expiered Options do not have TRDPRC_1 data historically. Some don't have SETTLE. Some have both... The below should capture TRDPRC_1 when it is available, but SETTLE might still be present in these instances. So we will need to build a logic to focus on the series with the most datapoints. Specifically: Get TRDPRC_1. If there are fewer TRDPRC_1 datapoionts than days (i.e.: if there's only daily data for this field), get SETTLE. Same again, if not SETTLE, then get the midpoint between BID and ASK.
| STXE41500J3.EX | Optn TRDPRC_1 Pr | |
|---|---|---|
| Timestamp | ||
| 2023-09-21 10:40:00 | 119.0 | |
| 2023-09-21 11:00:00 | 120.8 | |
| ... | ... | |
| 2023-09-27 07:20:00 | 69.4 | |
| 2023-09-27 08:00:00 | 77.6 |
Underlying Asset Price
Now let's get data for the underying, which we need to calculate IV:
Note also that one may want to only look at 'At Option Trade' datapoints, i.e.: Implied Volatility when a trade is made for the Option, but not when none is made. For this, we will use the 'At Trade' (AT) dataframes:
'.STOXX50E'
Opening Times Of Any One Exchange
If you are interested in the opening times of any one exchange, you can use the following:
1. we can check the META App to get more information about the RIC. If we take `STXE43750H3.EX` as an example, this RIC has ".EX" which is for the exchange.
2. Use the page EXCHID01 in Workspace (can be opened via Quote app) to look up the list of exchanges. Click on EXCHID07 as it is the page for exchanges ".EA to .FX".
3. From EXCHID07, you will see there's 2 .EX exchanges, Germany and Switzerland. Referencing the additional data from the META app, the RIC's country is Germany, so use DE/EXCH10 page
4. From DE/EXCH10 page, Hours would display the information including the timezone.
5. From there, you can find the exchange info page with trading hours for Options
You may find screens like this:
by searhing 'trading hours' in the Workspace search bar (at the top), then clickin gon Speed Guides. Looking in there, I found the below:
And get the info programatically like this:
' OESX/OSTX 07:30-08:50 08:50-17:30 17:30-20:30 '
There isn't nessesarily a trade every 10 min... However, for the statistical inferences that we will make further in the article, when we will calculate Implied Volatilities and therefore implement the Black Scholes model, we will need 'continuous timeseries' with which to deal. There are several ways to go from discrete time series (like ours, even if we go down to tick data), but for this article, we will 1st focus on making 'buckets' of 10 min. If no trade is made in any 10 min. bucket, we will assume the price to have stayed the same as previously, throughout the exchange's trading hours which are:
- 4am to 8pm ET for OPRA and
- typically 7:30am to 22:00 CET at the Eurex Exchange (EUREX)
thankfully this is simple. Let's stick with the EUREX for now:
| STXE41500J3.EX | Optn TRDPRC_1 Pr | |
|---|---|---|
| gmt | cet | |
| 2023-09-21 10:40:00 | 2023-09-21 12:40:00+02:00 | 119.0 |
| 2023-09-21 10:50:00 | 2023-09-21 12:50:00+02:00 | <NA> |
| ... | ... | ... |
| 2023-09-27 07:50:00 | 2023-09-27 09:50:00+02:00 | <NA> |
| 2023-09-27 08:00:00 | 2023-09-27 10:00:00+02:00 | 77.6 |
Our dataframe started at (Timestamp('2023-09-21 10:40:00+0000', tz='GMT'), Timestamp('2023-09-21 12:40:00+0200', tz='Europe/Berlin')),
and went on continuously till (Timestamp('2023-09-27 08:00:00+0000', tz='GMT'), Timestamp('2023-09-27 10:00:00+0200', tz='Europe/Berlin')),
so out of trading hours rows are removed
| STXE41500J3.EX | Optn TRDPRC_1 Pr | |
|---|---|---|
| gmt | cet | |
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | 119.0 |
| 2023-09-21 10:50:00+00:00 | 2023-09-21 12:50:00+02:00 | 119.0 |
| ... | ... | ... |
| 2023-09-27 07:50:00+00:00 | 2023-09-27 09:50:00+02:00 | 69.4 |
| 2023-09-27 08:00:00+00:00 | 2023-09-27 10:00:00+02:00 | 77.6 |
Note also that one may want to only look at 'At Option Trade' datapoints, i.e.: Implied Volatility when a trade is made for the Option, but not when none is made. For this, we will use the 'At Trade' (AT) dataframes:
| STXE41500J3.EX | Optn TRDPRC_1 Pr | |
|---|---|---|
| gmt | cet | |
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | 119.0 |
| 2023-09-21 11:00:00+00:00 | 2023-09-21 13:00:00+02:00 | 120.8 |
| ... | ... | ... |
| 2023-09-27 08:00:00+00:00 | 2023-09-27 10:00:00+02:00 | 77.6 |
Here, we can see that the EUERX index's exchange opens trading for Options at 8:50am and closes at 17:30. You can look a the TAS app on Workspace to check.
| .STOXX50E | TRDPRC_1 | |
|---|---|---|
| Timestamp | ||
| 2023-09-20 10:30:00+00:00 | 4261.19 | |
| 2023-09-20 10:40:00+00:00 | 4259.89 | |
| ... | ... | |
| 2023-09-27 08:10:00+00:00 | 4147.91 | |
| 2023-09-27 08:20:00+00:00 | 4149.99 |
| STXE41500J3.EX | Optn TRDPRC_1 Pr | underlying .STOXX50E TRDPRC_1 | |
|---|---|---|---|
| gmt | cet | ||
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | 119.0 | 4211.18 |
| 2023-09-21 11:00:00+00:00 | 2023-09-21 13:00:00+02:00 | 120.8 | 4214.9 |
| ... | ... | ... | ... |
| 2023-09-27 07:20:00+00:00 | 2023-09-27 09:20:00+02:00 | 69.4 | 4146.47 |
| 2023-09-27 08:00:00+00:00 | 2023-09-27 10:00:00+02:00 | 77.6 | 4152.58 |
Let's put it all in one data-frame, df. Some datasets will have data going from the time we sort for start all the way to end. Some won't because no trade happened in the past few minutes/hours. We ought to base ourselves on the dataset with values getting closer to end and ffill for the other column. As a result, the following if loop is needed:
| STXE41500J3.EX | Optn TRDPRC_1 Pr | underlying .STOXX50E TRDPRC_1 |
|---|---|---|
| gmt | cet | |
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | 119.0 |
| 2023-09-21 10:50:00+00:00 | 2023-09-21 12:50:00+02:00 | 119.0 |
| ... | ... | ... |
| 2023-09-27 07:50:00+00:00 | 2023-09-27 09:50:00+02:00 | 69.4 |
| 2023-09-27 08:00:00+00:00 | 2023-09-27 10:00:00+02:00 | 77.6 |
4150
'2023-09-19'
'2023-09-20T10:27:45.460240'
| EURIBOR3MD= | Fixing Value |
|---|---|
| Date | |
| 2023-09-19 | 3.934 |
| 2023-09-20 | 3.934 |
| 2023-09-21 | 3.955 |
| 2023-09-22 | 3.958 |
| 2023-09-25 | 3.977 |
| 2023-09-26 | 3.941 |
Euribor values are released daily at 11am CET, and it is published as such on Refinitiv:
You might be running your code after the latest Risk Free Rate published, so the most accurate such value after taht would be the latest value, thus the use of `ffill`:
| STXE41500J3.EX | Optn TRDPRC_1 Pr | underlying .STOXX50E TRDPRC_1 | EurRfRate |
|---|---|---|---|
| gmt | cet | ||
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | 119.0 | 4211.18 |
| 2023-09-21 10:50:00+00:00 | 2023-09-21 12:50:00+02:00 | 119.0 | 4214.46 |
| ... | ... | ... | ... |
| 2023-09-27 07:50:00+00:00 | 2023-09-27 09:50:00+02:00 | 69.4 | 4146.58 |
| 2023-09-27 08:00:00+00:00 | 2023-09-27 10:00:00+02:00 | 77.6 | 4152.58 |
Annualized Continuous Dividend Rate
We are going to assume no dividends.
Calculating IV
On the Developer Portal, one can see documentation about the Instrument Pricing Analytics service that allows access to calculating functions (that use to be called 'AdFin'). This service is accessible via several RESTful endpoints (in a family of endpoints called 'Quantitative Analytics') which can be used via RD. However, while we are going to build towards a Class that will put all our concepts together, I 1st want to showcase the several ways in which we can collect the data we're are after, for (i) all trades & (ii) at option trades only (i.e.: not every trade of the underlying) and (a) using the RD delivery layer & (b) the RD content layer:
Data returned this far was time-stamped in the GMT Time Zone, we need to re-calibrate it to the timezone of our machine:
IPA can only accept up to 100 request at a time. If there are more elements in our request list, we need to 'chunk' it:
This is the cell, next coming up below, that has a rather high chance of failing. This is because there is no error handling of any kind, just in case there are issues on the servers where we are retreiving data. The Content Layer functions do have such error handing steps, and therefore is considerably less likely to fail or run into errors.
Batch of 100 requests no. 1/2 started
Batch of 100 requests no. 1/2 ended
Batch of 100 requests no. 2/2 started
Batch of 100 requests no. 2/2 ended
| AverageSoFar | AverageType | BarrierLevel | BarrierType | BreakEvenDeltaAmountInDealCcy | BreakEvenDeltaAmountInReportCcy | BreakEvenPriceInDealCcy | BreakEvenPriceInReportCcy | CallPut | CbbcOptionType | ... | VegaAmountInReportCcy | VegaPercent | Volatility | VolatilityPercent | VolatilityType | VolgaAmountInDealCcy | VolgaAmountInReportCcy | YearsToExpiry | ZommaAmountInDealCcy | ZommaAmountInReportCcy |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 191 | None | NaN | None | 0.355624 | 0.355624 | 4219.4 | 4219.4 | CALL | ... | 41.166987 | 4.116699 | 16.692590 | 16.692590 | Calculated | -0.919557 | -0.919557 | 0.063014 | -0.013864 | ||
| 192 | None | NaN | None | 0.360421 | 0.360421 | 4219.4 | 4219.4 | CALL | ... | 41.159331 | 4.115933 | 16.120708 | 16.120708 | Calculated | 2.189009 | 2.189009 | 0.063014 | -0.014816 | ||
| 193 | None | NaN | None | 0.366663 | 0.366663 | 4227.6 | 4227.6 | CALL | ... | 41.116616 | 4.111662 | 17.345784 | 17.345784 | Calculated | 9.356929 | 9.356929 | 0.063014 | -0.012711 |
Content Layer
As may (or may not) have been apparent aboe, the delivery layer does not offer any error hendling management. The server where we're requestig for data may be busy, so we may get unsuccessful messages back. You could build error handing logic yourself, but let's not reinvent the wheel when the RD Python Library exists!
Batch of 100 requests no. 1/2 started
Batch of 100 requests no. 1/2 ended
Batch of 97 requests no. 2/2 started
Batch of 97 requests no. 2/2 ended
| AverageSoFar | AverageType | BarrierLevel | BarrierType | BreakEvenDeltaAmountInDealCcy | BreakEvenDeltaAmountInReportCcy | BreakEvenPriceInDealCcy | BreakEvenPriceInReportCcy | CallPut | CbbcOptionType | CbbcType | CharmAmountInDealCcy | CharmAmountInReportCcy | ColorAmountInDealCcy | ColorAmountInReportCcy | ConversionRatio | DailyVolatility | DailyVolatilityPercent | DaysToExpiry | DealCcy | DeltaAmountInDealCcy | DeltaAmountInReportCcy | DeltaExposureInDealCcy | DeltaExposureInReportCcy | DeltaHedgePositionInDealCcy | DeltaHedgePositionInReportCcy | DeltaPercent | DividendType | DividendYieldPercent | DvegaDtimeAmountInDealCcy | DvegaDtimeAmountInReportCcy | EndDate | ErrorMessage | ExerciseStyle | FixingCalendar | FixingDateArray | FixingEndDate | FixingFrequency | FixingNumbers | FixingStartDate | ForecastDividendYieldPercent | GammaAmountInDealCcy | GammaAmountInReportCcy | GammaPercent | Gearing | HedgeRatio | InstrumentCode | InstrumentDescription | InstrumentTag | Leverage | LotSize | LotsUnits | MarketDataDate | MarketValueInDealCcy | MoneynessAmountInDealCcy | MoneynessAmountInReportCcy | OptionPrice | OptionPriceSide | OptionTimeStamp | OptionType | PremiumOverCashInDealCcy | PremiumOverCashInReportCcy | PremiumOverCashPercent | PremiumPerAnnumInDealCcy | PremiumPerAnnumInReportCcy | PremiumPerAnnumPercent | PremiumPercent | PricingModelType | PricingModelTypeList | ResidualAmountInDealCcy | ResidualAmountInReportCcy | RhoAmountInDealCcy | RhoAmountInReportCcy | RhoPercent | RiskFreeRatePercent | SevenDaysThetaAmountInDealCcy | SevenDaysThetaAmountInReportCcy | SevenDaysThetaPercent | SpeedAmountInDealCcy | SpeedAmountInReportCcy | Strike | ThetaAmountInDealCcy | ThetaAmountInReportCcy | ThetaPercent | TimeValueInDealCcy | TimeValueInReportCcy | TimeValuePerDay | TimeValuePercent | TotalMarketValueInDealCcy | TotalMarketValueInDealCcy | TotalMarketValueInReportCcy | TotalMarketValueInReportCcy | UltimaAmountInDealCcy | UltimaAmountInReportCcy | UnderlyingCcy | UnderlyingPrice | UnderlyingPriceSide | UnderlyingRIC | UnderlyingTimeStamp | ValuationDate | VannaAmountInDealCcy | VannaAmountInReportCcy | VegaAmountInDealCcy | VegaAmountInReportCcy | VegaPercent | Volatility | VolatilityPercent | VolatilityType | VolgaAmountInDealCcy | VolgaAmountInReportCcy | YearsToExpiry | ZommaAmountInDealCcy | ZommaAmountInReportCcy | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | <NA> | NaN | None | 0.405318 | 0.405318 | 4269.0 | 4269.0 | CALL | <NA> | -0.640398 | -0.640398 | -0.010471 | -0.010471 | 0 | 1.137092 | 1.137092 | 29 | EUR | 6.25043 | 6.25043 | -6.25043 | -6.25043 | -26321.686034 | -26321.686034 | 0.625043 | HistoricalYield | 3.36275 | -3063.740497 | -3063.740497 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.017762 | 0.017762 | 0.001776 | 35.388067 | -1.59989 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 22.119064 | 10 | UNITS | 2023-09-21 10:40:00 | 119.0 | 101.474217 | 101.474217 | 119.0 | User | Default | Vanilla | 57.82 | 57.82 | 1.373012 | 727.734483 | 727.734483 | 17.281011 | 2.825811 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 19.661623 | 19.661623 | 1.966162 | 3.955 | -100.137886 | -100.137886 | -10.013789 | -0.000003 | -0.000003 | 4150 | -14.305412 | -14.305412 | -1.430541 | 57.82 | 57.82 | 0.000473 | 1.373012 | 1190 | 1190 | 1190 | 1190 | -3536.388733 | -3536.388733 | EUR | 4211.18 | User | .STOXX50E | Default | 2023-09-21 10:40:00 | -0.570353 | -0.570353 | 44.483776 | 44.483776 | 4.448378 | 18.050781 | 18.050781 | Calculated | 217.060823 | 217.060823 | 0.079452 | -0.008973 | -0.008973 | |||
| 1 | <NA> | NaN | None | 0.408508 | 0.408508 | 4269.0 | 4269.0 | CALL | <NA> | -0.693442 | -0.693442 | -0.010495 | -0.010495 | 0 | 1.107898 | 1.107898 | 29 | EUR | 6.337198 | 6.337198 | -6.337198 | -6.337198 | -26707.86898 | -26707.86898 | 0.63372 | HistoricalYield | 3.36275 | -3083.046904 | -3083.046904 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.018078 | 0.018078 | 0.001808 | 35.41563 | -1.577984 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 22.443587 | 10 | UNITS | 2023-09-21 10:50:00 | 119.0 | 101.553253 | 101.553253 | 119.0 | User | Default | Vanilla | 54.54 | 54.54 | 1.294116 | 686.451724 | 686.451724 | 16.288011 | 2.823612 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 19.958896 | 19.958896 | 1.99589 | 3.955 | -96.997814 | -96.997814 | -9.699781 | -0.000003 | -0.000003 | 4150 | -13.856831 | -13.856831 | -1.385683 | 54.54 | 54.54 | 0.000446 | 1.294116 | 1190 | 1190 | 1190 | 1190 | -4287.69038 | -4287.69038 | EUR | 4214.46 | User | .STOXX50E | Default | 2023-09-21 10:50:00 | -0.632799 | -0.632799 | 44.170843 | 44.170843 | 4.417084 | 17.587328 | 17.587328 | Calculated | 258.185203 | 258.185203 | 0.079452 | -0.009223 | -0.009223 | |||
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 196 | <NA> | NaN | None | 0.366663 | 0.366663 | 4227.6 | 4227.6 | CALL | <NA> | 0.188226 | 0.188226 | -0.017922 | -0.017922 | 0 | 1.092682 | 1.092682 | 23 | EUR | 5.349917 | 5.349917 | -5.349917 | -5.349917 | -22215.958173 | -22215.958173 | 0.534992 | ImpliedYield | 0.276 | -3292.071586 | -3292.071586 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.022136 | 0.022136 | 0.002214 | 53.512629 | -1.869188 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 28.628812 | 10 | UNITS | 2023-09-27 08:00:00 | 77.6 | 100.062169 | 100.062169 | 77.6 | User | Default | Vanilla | 75.02 | 75.02 | 1.806588 | 1190.534783 | 1190.534783 | 28.669762 | 1.868718 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 13.314312 | 13.314312 | 1.331431 | 3.977 | -124.986257 | -124.986257 | -12.498626 | -0.000002 | -0.000002 | 4150 | -17.85518 | -17.85518 | -1.785518 | 75.02 | 75.02 | 0.000785 | 1.806588 | 776 | 776 | 776 | 776 | -187.151273 | -187.151273 | EUR | 4152.58 | User | .STOXX50E | Default | 2023-09-27 08:00:00 | -0.102687 | -0.102687 | 41.116616 | 41.116616 | 4.111662 | 17.345784 | 17.345784 | Calculated | 9.356929 | 9.356929 | 0.063014 | -0.012711 | -0.012711 |
| STXE41500J3.EX | AverageSoFar | AverageType | BarrierLevel | BarrierType | BreakEvenDeltaAmountInDealCcy | BreakEvenDeltaAmountInReportCcy | BreakEvenPriceInDealCcy | BreakEvenPriceInReportCcy | CallPut | CbbcOptionType | CbbcType | CharmAmountInDealCcy | CharmAmountInReportCcy | ColorAmountInDealCcy | ColorAmountInReportCcy | ConversionRatio | DailyVolatility | DailyVolatilityPercent | DaysToExpiry | DealCcy | DeltaAmountInDealCcy | DeltaAmountInReportCcy | DeltaExposureInDealCcy | DeltaExposureInReportCcy | DeltaHedgePositionInDealCcy | DeltaHedgePositionInReportCcy | DeltaPercent | DividendType | DividendYieldPercent | DvegaDtimeAmountInDealCcy | DvegaDtimeAmountInReportCcy | EndDate | ErrorMessage | ExerciseStyle | FixingCalendar | FixingDateArray | FixingEndDate | FixingFrequency | FixingNumbers | FixingStartDate | ForecastDividendYieldPercent | GammaAmountInDealCcy | GammaAmountInReportCcy | GammaPercent | Gearing | HedgeRatio | InstrumentCode | InstrumentDescription | InstrumentTag | Leverage | LotSize | LotsUnits | MarketDataDate | OptnMrktValueInDealCcy-TRDPRC_1 | MoneynessAmountInDealCcy | MoneynessAmountInReportCcy | OptionPrice | OptionPriceSide | OptionTimeStamp | OptionType | PremiumOverCashInDealCcy | PremiumOverCashInReportCcy | PremiumOverCashPercent | PremiumPerAnnumInDealCcy | PremiumPerAnnumInReportCcy | PremiumPerAnnumPercent | PremiumPercent | PricingModelType | PricingModelTypeList | ResidualAmountInDealCcy | ResidualAmountInReportCcy | RhoAmountInDealCcy | RhoAmountInReportCcy | RhoPercent | RiskFreeRatePercent | SevenDaysThetaAmountInDealCcy | SevenDaysThetaAmountInReportCcy | SevenDaysThetaPercent | SpeedAmountInDealCcy | SpeedAmountInReportCcy | Strike | ThetaAmountInDealCcy | ThetaAmountInReportCcy | ThetaPercent | TimeValueInDealCcy | TimeValueInReportCcy | TimeValuePerDay | TimeValuePercent | TotalMarketValueInDealCcy | TotalMarketValueInDealCcy | TotalMarketValueInReportCcy | TotalMarketValueInReportCcy | UltimaAmountInDealCcy | UltimaAmountInReportCcy | UnderlyingCcy | UnderlyingPrice | UnderlyingPriceSide | UnderlyingRIC | UnderlyingTimeStamp | ValuationDate | VannaAmountInDealCcy | VannaAmountInReportCcy | VegaAmountInDealCcy | VegaAmountInReportCcy | VegaPercent | ImpliedVolatility | VolatilityPercent | VolatilityType | VolgaAmountInDealCcy | VolgaAmountInReportCcy | YearsToExpiry | ZommaAmountInDealCcy | ZommaAmountInReportCcy | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gmt | cet | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | <NA> | NaN | None | 0.405318 | 0.405318 | 4269.0 | 4269.0 | CALL | <NA> | -0.640398 | -0.640398 | -0.010471 | -0.010471 | 0 | 1.137092 | 1.137092 | 29 | EUR | 6.25043 | 6.25043 | -6.25043 | -6.25043 | -26321.686034 | -26321.686034 | 0.625043 | HistoricalYield | 3.36275 | -3063.740497 | -3063.740497 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.017762 | 0.017762 | 0.001776 | 35.388067 | -1.59989 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 22.119064 | 10 | UNITS | 2023-09-21 10:40:00 | 119.0 | 101.474217 | 101.474217 | 119.0 | User | Default | Vanilla | 57.82 | 57.82 | 1.373012 | 727.734483 | 727.734483 | 17.281011 | 2.825811 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 19.661623 | 19.661623 | 1.966162 | 3.955 | -100.137886 | -100.137886 | -10.013789 | -0.000003 | -0.000003 | 4150 | -14.305412 | -14.305412 | -1.430541 | 57.82 | 57.82 | 0.000473 | 1.373012 | 1190 | 1190 | 1190 | 1190 | -3536.388733 | -3536.388733 | EUR | 4211.18 | User | .STOXX50E | Default | 2023-09-21 10:40:00 | -0.570353 | -0.570353 | 44.483776 | 44.483776 | 4.448378 | 18.050781 | 18.050781 | Calculated | 217.060823 | 217.060823 | 0.079452 | -0.008973 | -0.008973 | |||
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 2023-09-27 08:00:00+00:00 | 2023-09-27 10:00:00+02:00 | <NA> | NaN | None | 0.366663 | 0.366663 | 4227.6 | 4227.6 | CALL | <NA> | 0.188226 | 0.188226 | -0.017922 | -0.017922 | 0 | 1.092682 | 1.092682 | 23 | EUR | 5.349917 | 5.349917 | -5.349917 | -5.349917 | -22215.958173 | -22215.958173 | 0.534992 | ImpliedYield | 0.276 | -3292.071586 | -3292.071586 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.022136 | 0.022136 | 0.002214 | 53.512629 | -1.869188 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 28.628812 | 10 | UNITS | 2023-09-27 08:00:00 | 77.6 | 100.062169 | 100.062169 | 77.6 | User | Default | Vanilla | 75.02 | 75.02 | 1.806588 | 1190.534783 | 1190.534783 | 28.669762 | 1.868718 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 13.314312 | 13.314312 | 1.331431 | 3.977 | -124.986257 | -124.986257 | -12.498626 | -0.000002 | -0.000002 | 4150 | -17.85518 | -17.85518 | -1.785518 | 75.02 | 75.02 | 0.000785 | 1.806588 | 776 | 776 | 776 | 776 | -187.151273 | -187.151273 | EUR | 4152.58 | User | .STOXX50E | Default | 2023-09-27 08:00:00 | -0.102687 | -0.102687 | 41.116616 | 41.116616 | 4.111662 | 17.345784 | 17.345784 | Calculated | 9.356929 | 9.356929 | 0.063014 | -0.012711 | -0.012711 |
Batch of 100 requests no. 1/1 started
Batch of 100 requests no. 1/1 ended
| AverageSoFar | AverageType | BarrierLevel | BarrierType | BreakEvenDeltaAmountInDealCcy | BreakEvenDeltaAmountInReportCcy | BreakEvenPriceInDealCcy | BreakEvenPriceInReportCcy | CallPut | CbbcOptionType | CbbcType | CharmAmountInDealCcy | CharmAmountInReportCcy | ColorAmountInDealCcy | ColorAmountInReportCcy | ConversionRatio | DailyVolatility | DailyVolatilityPercent | DaysToExpiry | DealCcy | DeltaAmountInDealCcy | DeltaAmountInReportCcy | DeltaExposureInDealCcy | DeltaExposureInReportCcy | DeltaHedgePositionInDealCcy | DeltaHedgePositionInReportCcy | DeltaPercent | DividendType | DividendYieldPercent | DvegaDtimeAmountInDealCcy | DvegaDtimeAmountInReportCcy | EndDate | ErrorMessage | ExerciseStyle | FixingCalendar | FixingDateArray | FixingEndDate | FixingFrequency | FixingNumbers | FixingStartDate | ForecastDividendYieldPercent | GammaAmountInDealCcy | GammaAmountInReportCcy | GammaPercent | Gearing | HedgeRatio | InstrumentCode | InstrumentDescription | InstrumentTag | Leverage | LotSize | LotsUnits | MarketDataDate | MarketValueInDealCcy | MoneynessAmountInDealCcy | MoneynessAmountInReportCcy | OptionPrice | OptionPriceSide | OptionTimeStamp | OptionType | PremiumOverCashInDealCcy | PremiumOverCashInReportCcy | PremiumOverCashPercent | PremiumPerAnnumInDealCcy | PremiumPerAnnumInReportCcy | PremiumPerAnnumPercent | PremiumPercent | PricingModelType | PricingModelTypeList | ResidualAmountInDealCcy | ResidualAmountInReportCcy | RhoAmountInDealCcy | RhoAmountInReportCcy | RhoPercent | RiskFreeRatePercent | SevenDaysThetaAmountInDealCcy | SevenDaysThetaAmountInReportCcy | SevenDaysThetaPercent | SpeedAmountInDealCcy | SpeedAmountInReportCcy | Strike | ThetaAmountInDealCcy | ThetaAmountInReportCcy | ThetaPercent | TimeValueInDealCcy | TimeValueInReportCcy | TimeValuePerDay | TimeValuePercent | TotalMarketValueInDealCcy | TotalMarketValueInDealCcy | TotalMarketValueInReportCcy | TotalMarketValueInReportCcy | UltimaAmountInDealCcy | UltimaAmountInReportCcy | UnderlyingCcy | UnderlyingPrice | UnderlyingPriceSide | UnderlyingRIC | UnderlyingTimeStamp | ValuationDate | VannaAmountInDealCcy | VannaAmountInReportCcy | VegaAmountInDealCcy | VegaAmountInReportCcy | VegaPercent | Volatility | VolatilityPercent | VolatilityType | VolgaAmountInDealCcy | VolgaAmountInReportCcy | YearsToExpiry | ZommaAmountInDealCcy | ZommaAmountInReportCcy | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 41 | None | NaN | None | 0.347016 | 0.347016 | 4218.6 | 4218.6 | CALL | None | 0.528664 | 0.528664 | -0.017678 | -0.017678 | 0.0 | 1.105255 | 1.105255 | 23.0 | EUR | 4.925191 | 4.925191 | -4.925191 | -4.925191 | -20357.489414 | -20357.489414 | 0.492519 | ImpliedYield | 0.276 | -3313.848835 | -3313.848835 | 2023-10-20T00:00:00Z | EURO | None | None | None | None | 0.0 | None | None | 0.022050 | 0.022050 | 0.002205 | 60.252770 | -2.030378 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | None | 29.675641 | 10.0 | UNITS | 2023-09-27T07:10:00Z | 68.6 | 99.598554 | 99.598554 | 68.6 | User | Default | Vanilla | 85.26 | 85.26 | 2.062739 | 1353.039130 | 1353.039130 | 32.734765 | 1.659675 | BlackScholes | [BlackScholes, Binomial] | 0.0 | 0.0 | 12.234798 | 12.234798 | 1.223480 | 3.977 | -124.839444 | -124.839444 | -12.483944 | -3.074284e-07 | -3.074284e-07 | 4150.0 | -17.834206 | -17.834206 | -1.783421 | 68.60 | 68.60 | 0.000722 | 1.659675 | 686.0 | 686.0 | 686.0 | 686.0 | -71.824334 | -71.824334 | EUR | 4133.34 | User | .STOXX50E | Default | 2023-09-27T07:10:00Z | 0.141601 | 0.141601 | 41.109461 | 41.109461 | 4.110946 | 17.545386 | 17.545386 | Calculated | 2.706310 | 2.706310 | 0.063014 | -0.012553 | -0.012553 | |||
| 42 | None | NaN | None | 0.360312 | 0.360312 | 4219.4 | 4219.4 | CALL | None | 0.310198 | 0.310198 | -0.019318 | -0.019318 | 0.0 | 1.015855 | 1.015855 | 23.0 | EUR | 5.218328 | 5.218328 | -5.218328 | -5.218328 | -21637.639606 | -21637.639606 | 0.521833 | ImpliedYield | 0.276 | -3292.569362 | -3292.569362 | 2023-10-20T00:00:00Z | EURO | None | None | None | None | 0.0 | None | None | 0.023887 | 0.023887 | 0.002389 | 59.747406 | -1.916323 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | None | 31.178155 | 10.0 | UNITS | 2023-09-27T07:20:00Z | 69.4 | 99.914940 | 99.914940 | 69.4 | User | Default | Vanilla | 72.93 | 72.93 | 1.758845 | 1157.367391 | 1157.367391 | 27.912113 | 1.673713 | BlackScholes | [BlackScholes, Binomial] | 0.0 | 0.0 | 13.022035 | 13.022035 | 1.302203 | 3.977 | -116.931367 | -116.931367 | -11.693137 | -1.363708e-06 | -1.363708e-06 | 4150.0 | -16.704481 | -16.704481 | -1.670448 | 69.40 | 69.40 | 0.000728 | 1.673713 | 694.0 | 694.0 | 694.0 | 694.0 | -64.161454 | -64.161454 | EUR | 4146.47 | User | .STOXX50E | Default | 2023-09-27T07:20:00Z | -0.036472 | -0.036472 | 41.178550 | 41.178550 | 4.117855 | 16.126200 | 16.126200 | Calculated | 2.073210 | 2.073210 | 0.063014 | -0.014800 | -0.014800 | |||
| 43 | None | NaN | None | 0.366663 | 0.366663 | 4227.6 | 4227.6 | CALL | None | 0.188226 | 0.188226 | -0.017922 | -0.017922 | 0.0 | 1.092682 | 1.092682 | 23.0 | EUR | 5.349917 | 5.349917 | -5.349917 | -5.349917 | -22215.958173 | -22215.958173 | 0.534992 | ImpliedYield | 0.276 | -3292.071586 | -3292.071586 | 2023-10-20T00:00:00Z | EURO | None | None | None | None | 0.0 | None | None | 0.022136 | 0.022136 | 0.002214 | 53.512629 | -1.869188 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | None | 28.628812 | 10.0 | UNITS | 2023-09-27T08:00:00Z | 77.6 | 100.062169 | 100.062169 | 77.6 | User | Default | Vanilla | 75.02 | 75.02 | 1.806588 | 1190.534783 | 1190.534783 | 28.669762 | 1.868718 | BlackScholes | [BlackScholes, Binomial] | 0.0 | 0.0 | 13.314312 | 13.314312 | 1.331431 | 3.977 | -124.986257 | -124.986257 | -12.498626 | -1.618946e-06 | -1.618946e-06 | 4150.0 | -17.855180 | -17.855180 | -1.785518 | 75.02 | 75.02 | 0.000785 | 1.806588 | 776.0 | 776.0 | 776.0 | 776.0 | -187.151273 | -187.151273 | EUR | 4152.58 | User | .STOXX50E | Default | 2023-09-27T08:00:00Z | -0.102687 | -0.102687 | 41.116616 | 41.116616 | 4.111662 | 17.345784 | 17.345784 | Calculated | 9.356929 | 9.356929 | 0.063014 | -0.012711 | -0.012711 |
Batch of 44 requests no. 1/1 started
Batch of 44 requests no. 1/1 ended
| STXE41500J3.EX | AverageSoFar | AverageType | BarrierLevel | BarrierType | BreakEvenDeltaAmountInDealCcy | BreakEvenDeltaAmountInReportCcy | BreakEvenPriceInDealCcy | BreakEvenPriceInReportCcy | CallPut | CbbcOptionType | CbbcType | CharmAmountInDealCcy | CharmAmountInReportCcy | ColorAmountInDealCcy | ColorAmountInReportCcy | ConversionRatio | DailyVolatility | DailyVolatilityPercent | DaysToExpiry | DealCcy | DeltaAmountInDealCcy | DeltaAmountInReportCcy | DeltaExposureInDealCcy | DeltaExposureInReportCcy | DeltaHedgePositionInDealCcy | DeltaHedgePositionInReportCcy | DeltaPercent | DividendType | DividendYieldPercent | DvegaDtimeAmountInDealCcy | DvegaDtimeAmountInReportCcy | EndDate | ErrorMessage | ExerciseStyle | FixingCalendar | FixingDateArray | FixingEndDate | FixingFrequency | FixingNumbers | FixingStartDate | ForecastDividendYieldPercent | GammaAmountInDealCcy | GammaAmountInReportCcy | GammaPercent | Gearing | HedgeRatio | InstrumentCode | InstrumentDescription | InstrumentTag | Leverage | LotSize | LotsUnits | MarketDataDate | OptnMrktValueInDealCcy-TRDPRC_1 | MoneynessAmountInDealCcy | MoneynessAmountInReportCcy | OptionPrice | OptionPriceSide | OptionTimeStamp | OptionType | PremiumOverCashInDealCcy | PremiumOverCashInReportCcy | PremiumOverCashPercent | PremiumPerAnnumInDealCcy | PremiumPerAnnumInReportCcy | PremiumPerAnnumPercent | PremiumPercent | PricingModelType | PricingModelTypeList | ResidualAmountInDealCcy | ResidualAmountInReportCcy | RhoAmountInDealCcy | RhoAmountInReportCcy | RhoPercent | RiskFreeRatePercent | SevenDaysThetaAmountInDealCcy | SevenDaysThetaAmountInReportCcy | SevenDaysThetaPercent | SpeedAmountInDealCcy | SpeedAmountInReportCcy | Strike | ThetaAmountInDealCcy | ThetaAmountInReportCcy | ThetaPercent | TimeValueInDealCcy | TimeValueInReportCcy | TimeValuePerDay | TimeValuePercent | TotalMarketValueInDealCcy | TotalMarketValueInDealCcy | TotalMarketValueInReportCcy | TotalMarketValueInReportCcy | UltimaAmountInDealCcy | UltimaAmountInReportCcy | UnderlyingCcy | UnderlyingPrice | UnderlyingPriceSide | UnderlyingRIC | UnderlyingTimeStamp | ValuationDate | VannaAmountInDealCcy | VannaAmountInReportCcy | VegaAmountInDealCcy | VegaAmountInReportCcy | VegaPercent | ImpliedVolatility | VolatilityPercent | VolatilityType | VolgaAmountInDealCcy | VolgaAmountInReportCcy | YearsToExpiry | ZommaAmountInDealCcy | ZommaAmountInReportCcy |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gmt | cet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2023-09-21 10:40:00+00:00 | 2023-09-21 12:40:00+02:00 | <NA> | NaN | None | 0.405318 | 0.405318 | 4269.0 | 4269.0 | CALL | <NA> | -0.640398 | -0.640398 | -0.010471 | -0.010471 | 0 | 1.137092 | 1.137092 | 29 | EUR | 6.25043 | 6.25043 | -6.25043 | -6.25043 | -26321.686034 | -26321.686034 | 0.625043 | HistoricalYield | 3.36275 | -3063.740497 | -3063.740497 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.017762 | 0.017762 | 0.001776 | 35.388067 | -1.59989 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 22.119064 | 10 | UNITS | 2023-09-21 10:40:00 | 119.0 | 101.474217 | 101.474217 | 119.0 | User | Default | Vanilla | 57.82 | 57.82 | 1.373012 | 727.734483 | 727.734483 | 17.281011 | 2.825811 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 19.661623 | 19.661623 | 1.966162 | 3.955 | -100.137886 | -100.137886 | -10.013789 | -0.000003 | -0.000003 | 4150 | -14.305412 | -14.305412 | -1.430541 | 57.82 | 57.82 | 0.000473 | 1.373012 | 1190 | 1190 | 1190 | 1190 | -3536.388733 | -3536.388733 | EUR | 4211.18 | User | .STOXX50E | Default | 2023-09-21 10:40:00 | -0.570353 | -0.570353 | 44.483776 | 44.483776 | 4.448378 | 18.050781 | 18.050781 | Calculated | 217.060823 | 217.060823 | 0.079452 | -0.008973 | |||
| 2023-09-21 11:00:00+00:00 | 2023-09-21 13:00:00+02:00 | <NA> | NaN | None | 0.408127 | 0.408127 | 4270.8 | 4270.8 | CALL | <NA> | -0.684186 | -0.684186 | -0.010336 | -0.010336 | 0 | 1.129721 | 1.129721 | 29 | EUR | 6.323656 | 6.323656 | -6.323656 | -6.323656 | -26653.579203 | -26653.579203 | 0.632366 | HistoricalYield | 3.36275 | -3080.599046 | -3080.599046 | 2023-10-20 | EURO | <NA> | <NA> | NaT | <NA> | 0 | NaT | <NA> | 0.017752 | 0.017752 | 0.001775 | 34.891556 | -1.581364 | STXE41500J3.EX | IndexOption_EURO_STXE41500J3.EX | <NA> | 22.064221 | 10 | UNITS | 2023-09-21 11:00:00 | 120.8 | 101.563855 | 101.563855 | 120.8 | User | Default | Vanilla | 55.9 | 55.9 | 1.326247 | 703.568966 | 703.568966 | 16.692424 | 2.866023 | BlackScholes | [BlackScholes, Binomial] | 0 | 0 | 19.897513 | 19.897513 | 1.989751 | 3.955 | -98.998021 | -98.998021 | -9.899802 | -0.000003 | -0.000003 | 4150 | -14.142574 | -14.142574 | -1.414257 | 55.9 | 55.9 | 0.000457 | 1.326247 | 1208 | 1208 | 1208 | 1208 | -4028.476227 | -4028.476227 | EUR | 4214.9 | User | .STOXX50E | Default | 2023-09-21 11:00:00 | -0.611776 | -0.611776 | 44.225089 | 44.225089 | 4.422509 | 17.933765 | 17.933765 | Calculated | 246.998342 | 246.998342 | 0.079452 | -0.008907 |
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 14 | Eurex EURO STOXX 50 Monthly Index Option 4150 ... | STXE41500J3.EX | 4150 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:48:43 | 2023-10-24 |
This representation will allow us to see several graphs at different scales stacked above one another. This way, we can see if the change in Implied Volatility is caused by a movement in the underlying or the Option price itself:
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 14 | Eurex EURO STOXX 50 Monthly Index Option 4150 ... | STXE41500J3.EX | 4150 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:48:43 | 2023-10-24 |
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 14 | Eurex EURO STOXX 50 Monthly Index Option 4150 ... | STXE41500J3.EX | 4150 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:48:43 | 2023-10-24 |
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 14 | Eurex EURO STOXX 50 Monthly Index Option 4150 ... | STXE41500J3.EX | 4150 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:48:43 | 2023-10-24 |
| DocumentTitle | RIC | StrikePrice | ExchangeCode | ExpiryDate | UnderlyingQuoteRIC | InsertDateTime | RetireDate | |
|---|---|---|---|---|---|---|---|---|
| 14 | Eurex EURO STOXX 50 Monthly Index Option 4150 ... | STXE41500J3.EX | 4150 | EUX | 2023-10-20 | [.STOXX50E] | 2023-03-09 03:48:43 | 2023-10-24 |
Creating a class with PEP 3107 (a.k.a.: Type Hints)
AHave a look at Part 2, an article using PEP 3107 (and PEP 484) (and some decorators).
Conclusion
As you can see, not only can we use IPA to gather large amounts of bespoke, calculated, values, but be can also portray this insight in a simple, quick and relevent way. The last cell in particular loops through our built fundction to give an updated graph every 5 seconds using 'legacy' technologies that would work in most environments (e.g.: Eikon Codebook).
References
Brilliant: Black-Scholes-Merton
What is the RIC syntax for options in Refinitiv Eikon?
Functions to find Option RICs traded on different exchanges
Making your code faster: Cython and parallel processing in the Jupyter Notebook