Instruments and Symbols
Supported Instruments
Once the client has logged on, it should expect to receive a list of all instruments that are supported by the Metro instance. (An instrument can be considered to be the smallest tradeable unit of an exchange product.) It is not guaranteed that all instruments will come in a single message. Clients should assume that they may receive multiple SupportedInstruments messages. The SupportedInstruments message will be followed by a SupportedInstrumentsAck to notify the client that the initial snapshot has been received; a SupportedInstrumentsAck message will be sent to the client after intra-day instrument additions as well.
Syntax
SupportedInstruments <Instrument> <Instrument> ...
Example
SupportedInstruments S GE GE 105212 GE 112300 03/16/2020 1249140 2840237 0.005 CME=857493 2 2839949 1.0 2840139 -1.0
Field | Value | Repeating | Comment | Example |
---|---|---|---|---|
Header | SupportedInstrument | N | ||
Instrument Type | C, P, F, E, I, S, VS | N | option = C or P future = F equity = E index = I spread = S vol spread = VS |
S |
ParentSymbol | string | N | GE | |
ClassSymbol | string | N | GE | |
ClassID | int | N | 105212 | |
GroupSymbol | string | N | GE | |
GroupID | int | N | 112300 | |
Expiration | date | N | 03/16/2020 | |
MonthID | int | N | 1249140 | |
InstrumentID | int | N | 2840237 | |
MinPriceIncrement | double | N | 0.005 | |
ExchangeIdentifier | string | N | Exchange Security ID | CME=857493 |
NumLegs | int | Y | 2 | |
LegInstrumentID | int | Y | 2839949 | |
LegRatio | double | Y | 1.0 | |
LegInstrumentID | int | Y | 2840139 | |
LegRatio | double | Y | -1.0 |
Note
When available, additional values will be available for exchange identifiers. For example, the 914525|UD:1N: 20VT 200412914525
An instrument can be an option, future, equity, index, spread, or volatility spread. The is defined in the first field, which will then determine the remainder of the parameters:
An option is defined as:
<InstrumentType = C or P> <ParentSymbol> <ClassSymbol> <ClassID> <GroupSymbol> <GrouplID> <Strike> <Expiration> <MonthID> <InstrumentID> <UnderlyingInstrumentID <MinPriceIncrement> <Exchange>
A future is defined as:
<InstrumentType = F> <ParentSymbol> <ClassSymbol> <ClassID> <GroupSymbol> <GrouplID> <Expiration> <MonthID> <InstrumentID> <MinPriceIncrement> <Exchange>
An index is defined as:
<InstrumentType = I> <ParentSymbol> <ClassSymbol> <ClassID> <GroupSymbol> <GrouplID> <Symbol> <InstrumentID> <MinPriceIncrement> <Exchange>
An equity is defined as:
<InstrumentType = E> <ParentSymbol> <ClassSymbol> <ClassID> <GroupSymbol> <GrouplID> <Symbol> <InstrumentID> <MinPriceIncrement> <Exchange>
A spread (or strategy) is defined as:
<InstrumentType = S> <ParentSymbol> <ClassSymbol> <ClassID> <GroupSymbol> <GrouplID> <Expiration> <MonthID> <InstrumentID> <MinPriceIncrement> <Exchange> <NumLegs> <Leg1> <Leg2>
A leg is defined the same in both spreads and volatility spreads
<InstrumentID> <LegRatio>
A volatility (or "covered") spread is defined as:
<InstrumentType = VS> <ParentSymbol> <ClassSymbol> <ClassID> <GroupSymbol> <GrouplID> <Expiration> <MonthID> <InstrumentID> <MinPriceIncrement> <Exchange> <NumLegs> <Leg1> <Leg2> <NumVolLegs> <VolLeg1> <VolLeg2>
where a volatility leg is defined as:
<InstrumentID> <VLegRatio> <VLegPrice> <VLegDelta>
The InstrumentType indicates if the instrument defined is a Call, Put, Future, Equity, Index, or Strategy. When processing strategies, LegRatio will be an integer indicating the number of contracts necessary to buy/sell to complete the strategy (VLegRatio works the same way for the volatility legs of a volatility spread). InstrumentIDs, MonthIDs, and ClassIDs are the main keys used by Metro, and at least one will need to be provided when updates are requested or sent, depending on the granularity of the request.
Activate Symbol
The ActivateSymbol message enables a client to “activate” a specific portfolio symbol. Symbol activation will start market data and quoting for all options under the symbol. Activation will also allow all clients to receive various updates for this symbol. For instance, trade updates will not be received for an IBM option until the portfolio symbol IBM is activated.
Example
ActivateSymbol IBM