Skip to content

Commit add64f8

Browse files
authored
Merge pull request #819 from openfin-johans/patch-4
Adding optional market identifiers to the Instrument context
2 parents 5631b9c + f98d28e commit add64f8

6 files changed

Lines changed: 48 additions & 21 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
1010

1111
### Changed
1212

13+
* Updated definition of the `Instrument` context type to include optional market identifiers ([#819](https://github.com/finos/FDC3/pull/819))
14+
1315
### Deprecated
1416

1517
### Fixed

docs/context/ref/Instrument.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ Notes:
1515
- Not all applications will use the same instrument identifiers, which is why FDC3 allows for multiple to be specified.
1616
In general, the more identifiers an application can provide, the easier it will be to achieve interoperability.
1717

18+
- The `market` map can be used to further specify the instrument and help achieve interoperability between disparate data sources. This is especially useful when using an `id` field that is not globally unique.
19+
1820
- It is valid to include extra properties and metadata as part of the instrument payload, but the minimum requirement
1921
is for at least one instrument identifier to be provided.
2022

21-
- Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant for stock tickers specifically,
22-
if the identifier you want to share is not a stock ticker, or one of the other standardised ones, rather define
23-
a property that makes it clear what value it is. This makes it easier for target applications.
23+
- Try to only use instrument identifiers as intended. E.g. the `ticker` property is meant for tickers as used by an exhange.
24+
If the identifier you want to share is not a ticker or one of the other standardised fields, define
25+
a property that makes it clear what value represents. Doing so will make interpretation easier for the developers of target applications.
2426

2527
## Type
2628

@@ -32,19 +34,23 @@ https://fdc3.finos.org/schemas/next/instrument.schema.json
3234

3335
## Details
3436

35-
| Property | Type | Required | Example Value |
36-
|-------------|---------|----------|---------------------|
37-
| `type` | string | Yes | `"fdc3.instrument"` |
38-
| `name` | string | No | `"Microsoft"` |
39-
| `id.ticker` | string | No | `"MSFT"` |
40-
| `id.BBG` | string | No | `"MSFT:US"` |
41-
| `id.CUSIP` | string | No | `"594918104"` |
42-
| `id.FDS_ID` | string | No | `"P8R3C2-R"` |
43-
| `id.FIGI` | string | No | `"BBG000BPH459"` |
44-
| `id.ISIN` | string | No | `"US5949181045"` |
45-
| `id.PERMID` | string | No | `"4295907168"` |
46-
| `id.RIC` | string | No | `"MSFT.OQ"` |
47-
| `id.SEDOL` | string | No | `"2588173"` |
37+
| Property | Type | Required | Example Value | More Info |
38+
|-----------------------------|---------|----------|--------------------------|--------------------------------------------------------|
39+
| `type` | string | Yes | `"fdc3.instrument"` | |
40+
| `name` | string | No | `"Microsoft"` | |
41+
| `id.ticker` | string | No | `"MSFT"` | |
42+
| `id.BBG` | string | No | `"MSFT:US"` | https://www.bloomberg.com/ |
43+
| `id.CUSIP` | string | No | `"594918104"` | https://www.cusip.com/ |
44+
| `id.FDS_ID` | string | No | `"P8R3C2-R"` | https://www.factset.com/ |
45+
| `id.FIGI` | string | No | `"BBG000BPH459"` | https://www.openfigi.com/ |
46+
| `id.ISIN` | string | No | `"US5949181045"` | https://www.isin.org/ |
47+
| `id.PERMID` | string | No | `"4295907168"` | https://permid.org/ |
48+
| `id.RIC` | string | No | `"MSFT.OQ"` | https://www.refinitiv.com/ |
49+
| `id.SEDOL` | string | No | `"2588173"` | https://www.lseg.com/sedol |
50+
| `market.MIC` | string | No | `"XNAS"` | https://en.wikipedia.org/wiki/Market_Identifier_Code |
51+
| `market.name` | string | No | `"NASDAQ - All Markets"` | |
52+
| `market.COUNTRY_ISOALPHA2` | string | No | `"US"` | |
53+
| `market.BBG` | string | No | `"US"` | https://www.bloomberg.com/ |
4854

4955
## Example
5056

@@ -56,6 +62,9 @@ const instrument = {
5662
ticker: "MSFT",
5763
RIC: "MSFT.OQ",
5864
ISIN: "US5949181045"
65+
},
66+
market: {
67+
MIC: "XNAS"
5968
}
6069
}
6170

docs/context/ref/InstrumentList.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,15 @@ const instruments = {
4343
type: "fdc3.instrument",
4444
id: {
4545
ticker: "AAPL"
46+
},
47+
market: {
48+
MIC: "XNAS"
4649
}
4750
},
4851
{
4952
type: "fdc3.instrument",
5053
id: {
51-
ticker: "MSFT"
54+
ISIN: "US5949181045"
5255
}
5356
},
5457
]
@@ -73,4 +76,4 @@ Intents
7376
- [ViewQuote](../../intents/ref/ViewQuote)
7477

7578
FINOS Financial Objects
76-
- [InstrumentList](https://fo.finos.org/docs/objects/instrumentlist)
79+
- [InstrumentList](https://fo.finos.org/docs/objects/instrumentlist)

docs/intents/ref/ViewNews.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ const instrument = {
3232
type: 'fdc3.instrument',
3333
name: 'International Business Machines',
3434
id: {
35-
ticker: 'ibm'
35+
ticker: 'IBM'
36+
},
37+
market: {
38+
MIC: "XNYS"
3639
}
3740
}
3841

@@ -51,4 +54,4 @@ Context
5154

5255

5356
Intents
54-
- [ViewAnalysis](ViewAnalysis)
57+
- [ViewAnalysis](ViewAnalysis)

docs/references.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ The following normative documents contain provisions, which, through reference i
1111
- **Community Specification license**, [https://github.com/CommunitySpecification/1.0]
1212
- **ISO 3166-1**, _Codes for the representation of names of countries and their subdivisions – Part 1: Country codes_, [https://www.iso.org/iso-3166-country-codes.html].
1313
- **ISO 8601-1:2019**, _Date and time — Representations for information interchange — Part 1: Basic rules_, [https://www.iso.org/standard/70907.html]
14+
- **ISO 10383:2012**, _Securities and related financial instruments — Codes for exchanges and market identification (MIC)_, [https://www.iso.org/standard/61067.html]
1415
- **JSON Schema**, [https://json-schema.org/].
1516
- **OpenAPI Standard v3.0**, [https://www.openapis.org/].
1617
- **RFC 2119**, _Keywords for use in RFCs to Indicate Requirement Levels, March 1997_, [https://datatracker.ietf.org/doc/html/rfc2119].

src/context/schemas/instrument.schema.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,16 @@
1919
"SEDOL": { "type": "string" },
2020
"ticker": { "type": "string" }
2121
}
22+
},
23+
"market": {
24+
"type": "object",
25+
"properties": {
26+
"MIC": { "type": "string" },
27+
"name": { "type": "string" },
28+
"COUNTRY_ISOALPHA2": { "type": "string" },
29+
"BBG": { "type": "string" }
30+
}
2231
}
2332
},
2433
"required": ["id"]
25-
}
34+
}

0 commit comments

Comments
 (0)