Get opening quote price for all identifiers for each trading day

Hi everyone,


It seems like that when I do an API call to TickMarketDepthData with a list of identifiers, I don't get/see all identifiers in the API response. Could there be that some identifiers don't trade on specific days, so there is no price change and hence there are no mentions of those identifiers in the results? If that is the case, is there a way I could get the Opening price for each identifier for each trading day through some other API endpoints?


Example of the issue I mentioned above:


list_of_identifiers = [{'Identifier': 'ES1000C8', 'IdentifierType': 'Ric'},
{'Identifier': 'ES1000F8', 'IdentifierType': 'Ric'},
{'Identifier': 'ES1000I7', 'IdentifierType': 'Ric'}]
result = trth.extractions.tick_market_depth_data(
identifiers=list_of_identifiers,
fields=['Ask Price', 'Bid Price'],
start=dt.datetime(2017, 9, 14),
end=dt.datetime(2017, 9, 15)
levels=3,
)
print(result.text) => this will return only market data for {'Identifier': 'ES1000I7', 'IdentifierType': 'Ric'}

Best Answer

  • zoya faberov
    zoya faberov ✭✭✭✭✭
    Answer ✓

    Hi @ivan.lovrencic ,

    Looking into the results for these instruments on my side with ValidationOptions (I have run naked request with Postman, as it was quicker) - there appears to have been a HALT in trading on the first two instruments on that day:

    #RIC,Domain,Date-Time,GMT Offset,Type,MsgClass/FID number,UpdateType/Action,FID Name,FID Value,FID Enum String,PE Code,Template Number,Key/Msg Sequence Number,Alias Underlying RIC,Market Depth RIC,Number of FIDs
    ES1000C8,Market Price,2017-09-14T20:15:00.158552622Z,-5,Legacy Level 2,UPDATE,UNSPECIFIED,,,,4269,,336,,ES1000C8m,2
    ,,,,FID,6517,,HALT_REASN,0,
    ,,,,FID,6615,,HALT_RSN,0," "
    ES1000C8,Market Price,2017-09-14T20:29:30.125826671Z,-5,Legacy Level 2,UPDATE,UNSPECIFIED,,,,4269,,352,,ES1000C8m,2
    ,,,,FID,6517,,HALT_REASN,0,
    ,,,,FID,6615,,HALT_RSN,0," "

    In my understanding, this should be the reason why there was no BIDs and ASKs, to learn more you may wish to engage with Refinitiv content experts directly vi Refinitiv Helpdesk Online -> Content -> DSS

Answers

  • zoya faberov
    zoya faberov ✭✭✭✭✭

    Hello @ivan.lovrencic ,

    All 3 instruments appear to be historical, in the Extraction Notes I see

    "...\nHistorical Instrument <RIC,ES1000C8> expanded to 1 RIC: ES1000C8.\nHistorical Instrument <RIC,ES1000F8> expanded to 1 RIC: ES1000F8.\nHistorical Instrument <RIC,ES1000I7> expanded to 1 RIC: ES1000I7.\nTotal instruments after instrument expansion = 3..."

    Therefore, ValidationOptions are required to request:

    {
    "ExtractionRequest": {
    "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.TickHistoryMarketDepthExtractionRequest",
    "ContentFieldNames": [
    "Ask Price",
    "Ask Size",
    "Bid Price",
    "Bid Size"
    ],
    "IdentifierList": {
    "@odata.type": "#DataScope.Select.Api.Extractions.ExtractionRequests.InstrumentIdentifierList",
    "InstrumentIdentifiers": [
    { "Identifier": "ES1000C8", "IdentifierType": "Ric" },
    { "Identifier": "ES1000F8", "IdentifierType": "Ric" },
    { "Identifier": "ES1000I7", "IdentifierType": "Ric"}
    ],
    "ValidationOptions": {
                   "AllowHistoricalInstruments": true,
                   "AllowInactiveInstruments": true
               },
               "UseUserPreferencesForValidationOptions": false

    },
    "Condition": { ...

    With .NET SDK:

     IdentifierList = InstrumentIdentifierList.Create(
    new[]

    new InstrumentIdentifier { Identifier = "ES1000C8", IdentifierType = IdentifierType.Ric }
    },
     new InstrumentValidationOptions
                 
                       AllowHistoricalInstruments = true
                   },
                   false),

    Find more detail on .NET SDK in Refinitiv DSS C# Example Application


  • Hi @zoya faberov , thank you so much for your fast reply!


    I added these fields to my request, but unfortunately, it did not help. For some reason, the last identifier is still the only one that returns some data, while the first two don't show up in the response.


    Does it work for you? Maybe, it's something with my code.