Chapter 8 – Options
Options can be traded on a broad variety of financial instruments:
- Equities.
- Currencies.
- Commodities.
- Interest rate and bond futures.
- Equity indices.
- Options on futures.
Tools for finding data
| Tool | Content |
|---|---|
OPTIONS | Main speed-guide for options. |
OPT/IR1 | Interest rate and bond options. |
OPT/FX1 | Foreign exchange options. |
OPS/FX1 | FX options volatilities. |
COMMOD/1 | Commodity options and futures. |
EQUITY/OPT1 | Equity options. |
0#COMMOD-ATM | Commodities at-the-money options chain. |
0#FINANCIAL-ATM | Financial at-the-money options chain. |
0#OPTIONS | Options chain, easier to drill down. |
Alternatively, all futures are available listed by country and exchange.
Example – Eurodollar 1 Year Midcurve option on CME:
- From the
FUTURESspeed-guide, go to the US futures and options speed-guideUS/FUTEX1. - In this display, double-click the CME page
CME/FUTEX1, or go straight to the relevant exchange if you know the three-letter exchange code (for exampleLIF/FUTEX1for LIFFE).
Chains are the easiest way of viewing options, as they allow you to look at the whole range of puts and calls; individual contracts can then be selected by double-clicking on them.




Equity cash options
Chains of options on cash equities
Chain RICs for cash equity options are made from the following components:
- Root RIC.
*(asterisk)..(dot).- Exchange identifier of the exchange where the option is traded.
- Optional option chain extension (for example
++for at-the-money options).
Examples:
0#LSEG*.L– all LSEG options traded on LIFFE.0#GDAX*.EX++– at-the-money DAX options traded on Eurex.
Option exchange identifiers
Option exchange identifiers can be found on page RULES3.
Examples:
- American Stock Exchange Options –
.A. - Australian Stock Exchange –
.AX. - Austrian Stock and Options Exchange –
.v. - Belgian FOX –
.b. - Boston Options Exchange (BOX) –
.B. - Chicago Board Options Exchange –
.W. - Copenhagen Stock Exchange –
.CO. - Deutsche Terminbörse –
.d. - European Options Exchange –
.E. - Eurex –
.EXor.dor.Z. - Finnish Options Exchange –
.h. - Stock Exchange of Hong Kong –
.HK. - Hong Kong Futures Exchange –
.HF. - International Securities Exchange –
.Y. - London Traded Options Market (LSE) –
.L. - MEFF Renta Variable –
.i.
#Import required Libraries
import lseg.data as ld
from lseg.data.discovery import Chain
import datetime
from IPython.display import display, clear_output
#Initial Session to LSEG Workspace
ld.open_session()
<lseg.data.session.Definition object at 0x2aa4531e310 {name='workspace'}>
#Example of how to retrieve LSEG Options
#Print out total number of instrument and the first 5 instruments
chain1 = Chain(name="0#LSEG*.L")
print(len(chain1.constituents))
print(chain1.constituents[:5])
1816
['LSEG5500F26.L', 'LSEG5500R26.L', 'LSEG5600F26.L', 'LSEG5600R26.L', 'LSEG5700F26.L']
#Example of how to retrieve Strike Price, Put/Call, Expiry Date of the first 5 options
rics1 = chain1.constituents[:5]
fields1 = ["STRIKE_PRC","PUTCALLIND","EXPIR_DATE"]
ld.get_data(
universe = rics1,
fields = fields1
)
| Instrument | STRIKE_PRC | PUTCALLIND | EXPIR_DATE | |
|---|---|---|---|---|
| 0 | LSEG5500F26.L | 5500 | CALL | 2026-06-19 |
| 1 | LSEG5500R26.L | 5500 | PUT | 2026-06-19 |
| 2 | LSEG5600F26.L | 5600 | CALL | 2026-06-19 |
| 3 | LSEG5600R26.L | 5600 | PUT | 2026-06-19 |
| 4 | LSEG5700F26.L | 5700 | CALL | 2026-06-19 |
Option exchange identifiers (continued)
- Nagoya –
.NG. - Norwegian Options Exchange –
.n. - MATIF Traded Options –
.m. - Milan ISO –
.MI. - Montreal Stock & Options –
.M. - OPRA –
.U. - Osaka Stock Exchange –
.OS. - Pacific Stock & Options Exchange –
.P. - Paris Traded Options –
.p. - Philadelphia Options Exchange –
.X. - Sao Paulo Bolsa de Valores –
.SA. - Stockholm Options Market –
.ST. - Swiss Options & Financial Futures Exchange –
.Z. - Tokyo Stock Exchange –
.T.
US options traded on OPRA
OPRA (Options Price Reporting Authority) reports prices on US equity, index, currency and interest rate options from:
- AMEX –
.A. - Boston –
.B. - Chicago –
.W. - ISE –
.Y. - Pacific –
.P. - Philadelphia –
.X.
Reuters provides two separate OPRA services:
OPRA Standard Service
- Available via Reuters real-time IDN.
- Includes:
- All currency and interest rate options.
- National Best Bid/Offer (NBBO) quotes on debt, equity and equity index options.
The NBBO quote shows:
- Last trade.
- Best bid and offer across all options exchanges.
- Identifier showing which exchanges those rates are offered on.
Note:
- When the market opens each day, quotes on contracts with no open interest are embargoed for 1.5 hours to ensure network reliability at peak times.
Finding OPRA data:
- Currency options on the Philadelphia Options Exchange:
- Start at
OPT/FX1and drill down by currency.
- Start at
- Interest-rate options on OPRA:
- Start at
OPT/IR1and drill down from there.
- Start at
- NBBO debt, equity and equity index options:
- Use the
Z#codes based on the RIC root.
- Use the
Structure of Z# codes:
Z#RICroot*.U
.U– suffix covering all OPRA exchanges.*– wildcard for strike prices.
Example:
Z#IBM*.U.
OPRA Premium Service
The OPRA Premium Service is available over a separate network – the OPRA Premium Delivery Network (OPDN).
- OPDN carries only OPRA data (no equities or news).
- Provides all US options data.
- Ensures all prices are available in real time (no embargoes).
- Allows quotes directly from individual exchanges within OPRA.
Chains on all OPRA exchanges
The easiest way to view a series of options is to use the generic .U suffix that covers all OPRA exchanges.
Structure:
0#RICroot*.U
Example:
0#IBM*.U
This displays calls (left) and puts (right) for different strike prices at the primary exchange. Double-click a specific call or put to display a quote on that contract.
#Example of how to retrieve IBM Options
#Print out total number of instrument and the first 5 instruments
chain2 = Chain(name="0#IBM*.U")
print(len(chain2.constituents))
print(chain2.constituents[:5])
2428
['IBMF122613000.U', 'IBMR122613000.U', 'IBMF122613500.U', 'IBMR122613500.U', 'IBMF122614000.U']
#Example of how to retrieve Strike Price, Put/Call, Expiry Date of the first 5 options
rics2 = chain2.constituents[:5]
fields2 = ["STRIKE_PRC","PUTCALLIND","EXPIR_DATE"]
ld.get_data(
universe = rics2,
fields = fields2
)
| Instrument | STRIKE_PRC | PUTCALLIND | EXPIR_DATE | |
|---|---|---|---|---|
| 0 | IBMF122613000.U | 130 | CALL | 2026-06-12 |
| 1 | IBMR122613000.U | 130 | PUT | 2026-06-12 |
| 2 | IBMF122613500.U | 135 | CALL | 2026-06-12 |
| 3 | IBMR122613500.U | 135 | PUT | 2026-06-12 |
| 4 | IBMF122614000.U | 140 | CALL | 2026-06-12 |
A useful way of finding options on an underlying instrument is to use Z# codes to display chains of chains.
Structure:
Z#RICroot*.U
- Use
.Ufor a general search across all OPRA exchanges. - Or use the primary exchange identifier instead.
You can double-click any code displayed to see a list of current prices for its puts or calls.
- Codes incorporating
V,W,X,YandZusually indicate LEAPS.
Example:
Z#IBM*.U– chains of IBM options across OPRA.
Tip: For a general search, use the
.Usuffix. For exchange-specific data, use the primary exchange identifier (for example.Yfor ISE).
#Example of how to retrieve U.S. listed options chain for IBM.
#Print out total number of instrument and the first 5 chain instruments
chain3 = Chain(name="Z#IBM*.U")
print(len(chain3.constituents))
print(chain3.constituents[:5])
1
['0#IBM*.U']
Monthly option chains
Reuters provides monthly option chains for Euronext-LIFFE equity and FTSE index options.
Current syntax for LIFFE monthly option chains:
RICroot MonthCode YearDigit * .Exchange
Example:
0#VODM5*.L– June 2025 contracts on Vodafone, LIFFE.
Where:
VOD– root for Vodafone.M– June.6– 2026.*– wildcard for strikes..L– LSE / LIFFE.
To see a list of all months on an equity option contract:
0#VOD*.L+.
For interest rate, FX and money market options, add + after the month and year code.
Example:
- Euribor on LIFFE: Jun 2026 futures contract is
FEIM6; the monthly options chain is0#FEIM6+.
At-the-money chains
At-the-money (ATM) chains currently exist for LIFFE equity options and FTSE index options.
- Information on new markets with ATM chains is usually announced on
NEWDATAnews codes (see pageDATA).
For a standard equity option, the ATM chains consist of:
- The at-the-money strike contracts (or closest value).
- 3 strikes below the at-the-money strike.
- 3 strikes above the at-the-money strike.
They track price movements of the underlying equities throughout the day. All contract expiries for the relevant strike prices are also included in the chain.
#Example of how to retrieve the June 2026 listed option chain for Vodafone on the London Stock Exchange.
#Print out total number of instrument and the first 5 chain instruments
chain4 = Chain(name="0#VODM6*.L")
print(len(chain4.constituents))
print(chain4.constituents[:5])
68
['VOD050F26.L', 'VOD050R26.L', 'VOD060F26.L', 'VOD060R26.L', 'VOD064F26.L']
#Example of how to retrieve Strike Price, Put/Call, Expiry Date of the first 5 options
rics4 = chain4.constituents[:5]
fields4 = ["STRIKE_PRC","PUTCALLIND","EXPIR_DATE"]
ld.get_data(
universe = rics4,
fields = fields4
)
| Instrument | STRIKE_PRC | PUTCALLIND | EXPIR_DATE | |
|---|---|---|---|---|
| 0 | VOD050F26.L | 50 | CALL | 2026-06-19 |
| 1 | VOD050R26.L | 50 | PUT | 2026-06-19 |
| 2 | VOD060F26.L | 60 | CALL | 2026-06-19 |
| 3 | VOD060R26.L | 60 | PUT | 2026-06-19 |
| 4 | VOD064F26.L | 64 | CALL | 2026-06-19 |
#Example of how to retrieve the all months listed option chain for Vodafone on the London Stock Exchange.
#Print out total number of instrument and the first 5 chain instruments
chain5 = Chain(name="0#VOD*.L")
print(len(chain5.constituents))
print(chain5.constituents[:5])
2394
['VOD050F26.L', 'VOD050R26.L', 'VOD060F26.L', 'VOD060R26.L', 'VOD064F26.L']
#Example of how to retrieve Strike Price, Put/Call, Expiry Date of the first 5 options
rics5 = chain5.constituents[:5]
fields5 = ["STRIKE_PRC","PUTCALLIND","EXPIR_DATE"]
ld.get_data(
universe = rics5,
fields = fields5
)
| Instrument | STRIKE_PRC | PUTCALLIND | EXPIR_DATE | |
|---|---|---|---|---|
| 0 | VOD050F26.L | 50 | CALL | 2026-06-19 |
| 1 | VOD050R26.L | 50 | PUT | 2026-06-19 |
| 2 | VOD060F26.L | 60 | CALL | 2026-06-19 |
| 3 | VOD060R26.L | 60 | PUT | 2026-06-19 |
| 4 | VOD064F26.L | 64 | CALL | 2026-06-19 |
The RIC structure for an at-the-money chain is:
0#RICroot*.Exchange++
Example:
0#LSEG*.L++– LSEG equity at-the-money chain on LIFFE.
The structure of single-option contracts
The best way to find a specific contract is usually to drill down from a speed-guide or display a chain based on the underlying instrument.
Nevertheless, it is useful to understand codes for single option contracts.