Class InstrumentProfile
Represents basic profile information about market instrument. Please see Instrument Profile Format documentation for complete description.
public class InstrumentProfile
- Inheritance
-
InstrumentProfile
- Inherited Members
Constructors
InstrumentProfile()
Initializes a new instance of the InstrumentProfile class.
public InstrumentProfile()
InstrumentProfile(InstrumentProfile)
Initializes a new instance of the InstrumentProfile class, creating a deep copy of the provided instrument profile.
public InstrumentProfile(InstrumentProfile ip)
Parameters
ip
InstrumentProfileThe InstrumentProfile instance to copy.
Remarks
This constructor is used for creating a new instance of the InstrumentProfile class with the same properties as the given instance. It performs a deep copy, ensuring that the new instance does not share references with the original, making it safe from modifications to the original instance.
Properties
AdditionalUnderlyings
Gets or sets additional underlyings for options, including additional cash. It shall use following format:
<VALUE> ::= <empty> | <LIST>
<LIST> ::= <AU> | <AU> <semicolon> <space> <LIST>
<AU> ::= <UNDERLYING> <space> <SPC>
the list shall be sorted by <UNDERLYING>.
public string AdditionalUnderlyings { get; set; }
Property Value
Examples
"SE 50", "FIS 53; US$ 45.46".
BaseCurrency
Gets or sets base currency of currency pair (FOREX instruments). It shall use three-letter currency code similarly to Currency.
public string BaseCurrency { get; set; }
Property Value
CFI
Gets or sets classification of Financial Instruments code. It is a mandatory field for OPTION instruments as it is the only way to distinguish Call/Put type, American/European exercise, Cash/Physical delivery. It shall use six-letter CFI code from ISO 10962 standard. It is allowed to use 'X' extensively and to omit trailing letters (assumed to be 'X'). See ISO 10962 on Wikipedia.
public string CFI { get; set; }
Property Value
Examples
"ESNTPB", "ESXXXX", "ES", "OPASPS".
CUSIP
Gets or sets committee on Uniform Security Identification Procedures code. It shall use nine-letter code assigned by CUSIP Services Bureau. See CUSIP on Wikipedia.
public string CUSIP { get; set; }
Property Value
Examples
"38259P508".
Country
Gets or sets country of origin (incorporation) of corresponding company or parent entity. It shall use two-letter country code from ISO 3166-1 standard. See ISO 3166-1 on Wikipedia.
public string Country { get; set; }
Property Value
Examples
"US", "RU".
Currency
Gets or sets currency of quotation, pricing and trading. It shall use three-letter currency code from ISO 4217 standard. See ISO 4217 on Wikipedia.
public string Currency { get; set; }
Property Value
Examples
"USD", "RUB".
Description
Gets or sets description of instrument, preferable an international one in Latin alphabet.
public string Description { get; set; }
Property Value
Examples
"Google Inc.", "Mini Gold Futures,Jun-2009,ETH".
ExchangeData
Gets or sets exchange-specific data required to properly identify instrument when communicating with exchange. It uses exchange-specific format.
public string ExchangeData { get; set; }
Property Value
Exchanges
Gets or sets list of exchanges where instrument is quoted or traded. It shall use the following format:
<VALUE> ::= <empty> | <LIST>
<IST> ::= <MIC> | <MIC> <semicolon>
<LIST> the list shall be sorted by MIC.
public string Exchanges { get; set; }
Property Value
Examples
"ARCX;CBSX;XNAS;XNYS".
Expiration
Gets or sets day id of expiration.
public int Expiration { get; set; }
Property Value
Examples
DayUtil.GetYearMonthDayByDayId(20090117).
ExpirationStyle
Gets or sets expiration cycle style, such as "Weeklys", "Quarterlys".
public string ExpirationStyle { get; set; }
Property Value
ICB
Gets or sets industry Classification Benchmark. It shall use four-digit number from ICB catalog. See ICB on Wikipedia or ICB homepage.
public int ICB { get; set; }
Property Value
Examples
"9535".
ISIN
Gets or sets international Securities Identifying Number. It shall use twelve-letter code from ISO 6166 standard. See ISO 6166 on Wikipedia or ISIN on Wikipedia.
public string ISIN { get; set; }
Property Value
Examples
"DE0007100000", "US38259P5089".
LastTrade
Gets or sets day id of last trading day.
public int LastTrade { get; set; }
Property Value
Examples
DayUtil.GetYearMonthDayByDayId(20090117).
LocalDescription
Gets or sets description of instrument in national language. It shall be empty if same as Description.
public string LocalDescription { get; set; }
Property Value
LocalSymbol
Gets or sets identifier of instrument in national language. It shall be empty if same as Symbol.
public string LocalSymbol { get; set; }
Property Value
MMY
Gets or sets maturity month-year as provided for corresponding FIX tag (200). It can use several different formats depending on data source.
- YYYYMM – if only year and month are specified
- YYYYMMDD – if full date is specified
- YYYYMMwN – if week number (within a month) is specified
public string MMY { get; set; }
Property Value
Multiplier
Gets or sets market value multiplier.
public double Multiplier { get; set; }
Property Value
Examples
"100", "33.2".
OPOL
Gets or sets official Place Of Listing, the organization that have listed this instrument. Instruments with multiple listings shall use separate profiles for each listing. It shall use Market Identifier Code (MIC) from ISO 10383 standard. See ISO 10383 on Wikipedia or MIC homepage.
public string OPOL { get; set; }
Property Value
Examples
"XNAS", "RTSX".
OptionType
Gets or sets type of option. It shall use one of following values.
- STAN = Standard Options
- LEAP = Long-term Equity AnticiPation Securities
- SDO = Special Dated Options
- BINY = Binary Options
- FLEX = FLexible EXchange Options
- VSO = Variable Start Options
- RNGE = Range
public string OptionType { get; set; }
Property Value
PriceIncrements
Gets or sets minimum allowed price increments with corresponding price ranges. It shall use following format:
<VALUE> ::= <empty> | <LIST>
<LIST> ::= <INCREMENT> | <RANGE> <semicolon> <space> <LIST>
<RANGE> ::= <INCREMENT> <space> <UPPER_LIMIT>
the list shall be sorted by <UPPER_LIMIT>.
public string PriceIncrements { get; set; }
Property Value
Examples
"0.25", "0.01 3; 0.05".
Product
Gets or sets product for futures and options on futures (underlying asset name).
public string Product { get; set; }
Property Value
Examples
"/YG".
SEDOL
Gets or sets stock Exchange Daily Official List. It shall use seven-letter code assigned by London Stock Exchange. See SEDOL on Wikipedia or SEDOL on LSE.
public string SEDOL { get; set; }
Property Value
Examples
"2310967", "5766857".
SIC
Gets or sets standard Industrial Classification. It shall use four-digit number from SIC catalog. See SIC on Wikipedia or SIC structure.
public int SIC { get; set; }
Property Value
Examples
"7371".
SPC
Gets or sets shares per contract for options.
public double SPC { get; set; }
Property Value
Examples
"1", "100".
SettlementStyle
Gets or sets settlement price determination style, such as "Open", "Close".
public string SettlementStyle { get; set; }
Property Value
Strike
Gets or sets strike price for options.
public double Strike { get; set; }
Property Value
Examples
"80", "22.5".
Symbol
Gets or sets identifier of instrument, preferable an international one in Latin alphabet. It is a mandatory field. It may not be empty.
public string Symbol { get; set; }
Property Value
Examples
"GOOG", "/YGM9", ".ZYEAD".
TradingHours
Gets or sets trading hours specification. See Schedule.GetInstance(string).
public string TradingHours { get; set; }
Property Value
Type
Gets or sets type of instrument. It takes precedence in conflict cases with other fields. It is a mandatory field. It may not be empty.
public string Type { get; set; }
Property Value
Examples
"STOCK", "FUTURE", "OPTION".
Underlying
Gets or sets primary underlying symbol for options.
public string Underlying { get; set; }
Property Value
Examples
"C", "/YGM9".
Methods
AddNonEmptyCustomFieldNames(ICollection<string>)
Adds names of non-empty custom fields to the specified collection.
public bool AddNonEmptyCustomFieldNames(ICollection<string> targetFieldNames)
Parameters
targetFieldNames
ICollection<string>The collection to which the names of non-empty custom fields will be added.
Returns
- bool
true
iftargetFieldNames
changed as a result of the call; otherwise,false
.
Equals(object?)
Determines whether the specified object is equal to the current object.
public override bool Equals(object? obj)
Parameters
obj
objectThe object to compare with the current object.
Returns
- bool
true
if the specified object is equal to the current object; otherwise,false
.
GetDateField(string)
Gets the day id value of the date field with the specified name. See GetYearMonthDayByDayId(int).
public int GetDateField(string name)
Parameters
name
stringThe name of the date field.
Returns
- int
The day id field value.
GetField(string)
Gets the value of the field with the specified name.
public string GetField(string name)
Parameters
name
stringThe name of the field.
Returns
- string
The field value, or an empty string if the field does not exist.
GetHashCode()
Returns a hash code value for this object.
public override int GetHashCode()
Returns
- int
A hash code value for this object.
GetNumericField(string)
Gets the numeric value of the field with the specified name.
public double GetNumericField(string name)
Parameters
name
stringThe name of the field.
Returns
- double
The numeric field value.
SetDateField(string, int)
Sets the day id value of the date field with the specified name. See GetDayIdByYearMonthDay(int).
public void SetDateField(string name, int value)
Parameters
SetField(string, string)
Sets the value of the field with the specified name.
public void SetField(string name, string value)
Parameters
SetNumericField(string, double)
Sets the numeric value of the field with the specified name.
public void SetNumericField(string name, double value)
Parameters
ToString()
Returns a string representation of the instrument profile.
public override string ToString()
Returns
- string
The string representation.