question

Upvotes
Accepted
5 1 1 1

Historical Reference for RIC identifier: All identifier invalid. No Extraction performed

I try to extract the Historical reference for certain RICs. It works with ChainRICs but when I enter a RIC, there is an error of invalid identifier.

See the code example

 string[] requestedFieldNames = {
  
"RIC",
"RIC Root",
"Expiration Date"};

//Create the request
var extractionRequest = new HistoricalReferenceExtractionRequest()
{ IdentifierList = new InstrumentIdentifierList()
{ InstrumentIdentifiers = new[] { new InstrumentIdentifier { IdentifierType = IdentifierType.Ric, Identifier = "HOZ5" } }
},
Condition = new HistoricalReferenceCondition()
{ ReportDateRangeType = ReportDateRangeType.Range,
//QueryStartDate = new DateTimeOffset(new DateTime(2014, 1, 1)),
//QueryEndDate = new DateTimeOffset(new DateTime(2014, 1, 31))
QueryStartDate = new DateTimeOffset(new DateTime(2015, 12, 1)),
QueryEndDate = new DateTimeOffset(new DateTime(2015, 12, 4))
},
ContentFieldNames = requestedFieldNames
};
  //Extract - NOTE: If the extraction request takes more than 30 seconds the async mechansim will be used.  See Key Mechanisms 
var extractionResult = ExtractionsContext.ExtractWithNotes(extractionRequest);
var extractedRows = extractionResult.Contents;
dss-rest-apitick-history-rest-apiricshistoricalrest-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@dirk, considering your query, we moved it from the DSS to the TRTH forum, it seems more appropriate, and will help people discover it. AHS

Upvotes
Accepted
13.7k 26 8 12

@dirk, yes you are right of course. Sorry, my mistake, I was looking for a current instrument, not a historical one.

When I use your code I get a "Not found" error, and the extraction notes contain:

All identifiers were invalid.  No extraction performed.

Cause: by default historical instruments are not included in the results.

Solution: you need to add a validation option to allow historical instruments. The following code should get the data you want:

var extractionRequest = new HistoricalReferenceExtractionRequest()
{
    IdentifierList = new InstrumentIdentifierList()
    {
        InstrumentIdentifiers = new[] {
            new InstrumentIdentifier { IdentifierType = IdentifierType.Ric, Identifier = "HOZ5" }
        },
        ValidationOptions = new InstrumentValidationOptions() {
            AllowHistoricalInstruments = true
        }
    },
    Condition = new HistoricalReferenceCondition()
    {
        ReportDateRangeType = ReportDateRangeType.Range,
        QueryStartDate = new DateTimeOffset(new DateTime(2015, 12, 01)),
        QueryEndDate = new DateTimeOffset(new DateTime(2015, 12, 04))
    },
    ContentFieldNames = requestedFieldNames
};

Just to illustrate, the following code sets all validation options, and disables the user preferences for this call (because we are overriding them with our validation options):

var extractionRequest = new HistoricalReferenceExtractionRequest()
{
    IdentifierList = new InstrumentIdentifierList()
    {
        InstrumentIdentifiers = new[] {
            new InstrumentIdentifier { IdentifierType = IdentifierType.Ric, Identifier = "HOZ5" }
        },
        ValidationOptions = new InstrumentValidationOptions() {
            AllowHistoricalInstruments = true,
            AllowOpenAccessInstruments = false,
            UseExchangeCodeInsteadOfLipper = true,
            ExcludeFinrAsPricingSourceForBonds = false,
            UseConsolidatedQuoteSourceForCanada = false,
            UseConsolidatedQuoteSourceForUsa = false,
            UseUsQuoteInsteadOfCanadian = true
        },
        UseUserPreferencesForValidationOptions = false
    },
    Condition = new HistoricalReferenceCondition()
    {
        ReportDateRangeType = ReportDateRangeType.Range,
        QueryStartDate = new DateTimeOffset(new DateTime(2015, 12, 01)),
        QueryEndDate = new DateTimeOffset(new DateTime(2015, 12, 04))
    },
    ContentFieldNames = requestedFieldNames
};

Hope this helps.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
13.7k 26 8 12

@dirk, the RIC instrument identifier is defined correctly. The issue is that HOZ5 is not a valid RIC.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
5 1 1 1

Sorry, HOZ5 is a valid RIC. E.g. if I expand the ChainRIC 0#HO: I get HOZ5 as a RIC for the December 2015 Heating Oil Future.

Also, If I do the request 1) with the GUI or 2) creating instrument lists and a report template, it works. So this seems a Bug on your side.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
5 1 1 1

See here for HOZ5 as RIC

hoz5.png (12.6 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

see my answer above, HOZ5 is a valid RIC

Upvotes
1 0 0 1

Is it possible to match permno (identifier from CRSP) with RIC using a similar code to the one you used above?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.