Skip to main content

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​

ToolContent
OPTIONSMain speed-guide for options.
OPT/IR1Interest rate and bond options.
OPT/FX1Foreign exchange options.
OPS/FX1FX options volatilities.
COMMOD/1Commodity options and futures.
EQUITY/OPT1Equity options.
0#COMMOD-ATMCommodities at-the-money options chain.
0#FINANCIAL-ATMFinancial at-the-money options chain.
0#OPTIONSOptions chain, easier to drill down.

Alternatively, all futures are available listed by country and exchange.

Example – Eurodollar 1 Year Midcurve option on CME:

  1. From the FUTURES speed-guide, go to the US futures and options speed-guide US/FUTEX1.
  2. 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 example LIF/FUTEX1 for 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.

Options

Interest Rate and Bond Options

Foreign Exchange Options

FX options volatilities

Equity cash options​

Chains of options on cash equities​

Chain RICs for cash equity options are made from the following components:

  1. Root RIC.
  2. * (asterisk).
  3. . (dot).
  4. Exchange identifier of the exchange where the option is traded.
  5. 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 – .EX or .d or .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
)
InstrumentSTRIKE_PRCPUTCALLINDEXPIR_DATE
0LSEG5500F26.L5500CALL2026-06-19
1LSEG5500R26.L5500PUT2026-06-19
2LSEG5600F26.L5600CALL2026-06-19
3LSEG5600R26.L5600PUT2026-06-19
4LSEG5700F26.L5700CALL2026-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/FX1 and drill down by currency.
  • Interest-rate options on OPRA:
    • Start at OPT/IR1 and drill down from there.
  • NBBO debt, equity and equity index options:
    • Use the Z# codes based on the RIC root.

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
)
InstrumentSTRIKE_PRCPUTCALLINDEXPIR_DATE
0IBMF122613000.U130CALL2026-06-12
1IBMR122613000.U130PUT2026-06-12
2IBMF122613500.U135CALL2026-06-12
3IBMR122613500.U135PUT2026-06-12
4IBMF122614000.U140CALL2026-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 .U for 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, Y and Z usually indicate LEAPS.

Example:

  • Z#IBM*.U – chains of IBM options across OPRA.

Tip: For a general search, use the .U suffix. For exchange-specific data, use the primary exchange identifier (for example .Y for 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 is 0#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 NEWDATA news codes (see page DATA).

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
)
InstrumentSTRIKE_PRCPUTCALLINDEXPIR_DATE
0VOD050F26.L50CALL2026-06-19
1VOD050R26.L50PUT2026-06-19
2VOD060F26.L60CALL2026-06-19
3VOD060R26.L60PUT2026-06-19
4VOD064F26.L64CALL2026-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
)
InstrumentSTRIKE_PRCPUTCALLINDEXPIR_DATE
0VOD050F26.L50CALL2026-06-19
1VOD050R26.L50PUT2026-06-19
2VOD060F26.L60CALL2026-06-19
3VOD060R26.L60PUT2026-06-19
4VOD064F26.L64CALL2026-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.