Filtering fields and/or record types using REST Tick History API

ekhosid
ekhosid Newcomer

Is there a way to limit the list of fields and/or record types (trades vs. bid/ask) when using REST API? The default mode is sending too many records that are discarded but take up bandwidth and extra time to evaluate.

Thank you.

Best Answer

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

    H Eugene @ekhosid,

    You will be able to specify fids into raw extraction request, please see

    REST API Reference -> TickHistoryRawExtractionRequest -> Condition -> Fids

    At the bottom, change Request/Response examples to "Create TickHistoryRaw" and you should see the example naked request:

    image

    Raw Extraction Tutorial goes in detail on how to filter fids.

    Also, in the latest version of REST SDK Example you will find it shown in .Net code:

      Condition = new TickHistoryRawCondition()
                    {
                        DaysAgo = null,
                        MessageTimeStampIn = TickHistoryTimeOptions.GmtUtc,
                        QueryEndDate = null,  // Note that since the time ranges are specified in the list, there is no range specified in the condition.
                        QueryStartDate = null,
                        ReportDateRangeType = ReportDateRangeType.PerIdentifier,
                        ExtractBy = TickHistoryExtractByMode.Ric,
                        SortBy = TickHistorySort.SingleByRic,
                        DomainCode = TickHistoryRawDomain.MarketPrice,
                        DisplaySourceRIC = false,
                        Fids = "25"
                    }

    However, if you are not using the latest or very recent version of the example, then this condition example is not included in the example yet. If you do not see it, please download Latest .Net SDK Example.

    Let us know how this works for you.

Answers

  • zoya faberov
    zoya faberov ✭✭✭✭✭

    Hello @ekhosid,

    The online documentation REAST API Reference, can help you look up the complete specification for your required request type/template:

    • Follow Extractions -> On Deman Extraction -> Extract With Notes
    • Then select your required request from ExtractionRequest dropdown
    • To see the complete spec on that request.

    Many request types allow for the selection of fields to return.

    If you include your request, we can be more specific by looking at that request type.

  • Hi @zoya faberov

    I'm using ExtractRaw method with ExtractionRequest. ExtractionRequest does have an option to specify fields and it works for other requests but not for

    var result = await ExtractionsContext.ExtractRawAsync(
    new TickHistoryRawExtractionRequest
    {
    Condition = new TickHistoryRawCondition
    {
    ReportDateRangeType = ReportDateRangeType.Range,
    QueryStartDate = startDate,
    QueryEndDate = endDate,
    ExtractBy = TickHistoryExtractByMode.Ric,
    MessageTimeStampIn = TickHistoryTimeOptions.GmtUtc,
    SortBy = TickHistorySort.SingleByRic,
    DomainCode = TickHistoryRawDomain.MarketPrice,
    DisplaySourceRIC = true
    },
    IdentifierList = new InstrumentIdentifierList
    {
    InstrumentIdentifiers = instruments.ToArray(),
    ValidationOptions = new InstrumentValidationOptions
    {
    AllowHistoricalInstruments = true,
    },
    },
    });

    I had tried to retrieve available fields using

    var availableFields = ExtractionsContext.GetValidContentFieldTypes(ReportTemplateTypes.TickHistoryRaw);

    but it returns no records.


    Eugene



  • @zoya faberov

    That's exactly what I needed. Thank you very much!


    Eugene