should be level 10 and get level 5

s61670
s61670 Explorer

RIC 1UROH1 ("0#1URO)

using the code, I get Level 5 in tick history.

Although in real time it should be level 10

checked on other RICs ("0#ECSS), I also get level 5 in tick history

this is not correct as the data provider has 10 levels

Please help

code:

using System;
using System.Linq;
using System.Diagnostics;
using System.IO;
using ThomsonReuters.Dss.Api.StandardExtractions;
using ThomsonReuters.Dss.Api;
using ThomsonReuters.Dss.Api.Content;
using ThomsonReuters.Dss.Api.Extractions;
using ThomsonReuters.Dss.Api.Extractions.ExtractionRequests;
using ThomsonReuters.Dss.Api.Extractions.ReportExtractions;
using ThomsonReuters.Dss.Api.Extractions.ReportTemplates;
using ThomsonReuters.Dss.Api.Extractions.Schedules;
using ThomsonReuters.Dss.Api.Extractions.SubjectLists;
using ThomsonReuters.Dss.Api.Search;
using ThomsonReuters.Dss.Core.RestApi;

namespace RefinitivHistoryTesting
{
    class Program
    {
        static void Main(string[] args)
        {
            //-----------------------------------------------------------------
            //Connect and authenticate to the DSS server:
            //-----------------------------------------------------------------
            Uri dssUri = new Uri("https://hosted.datascopeapi.reuters.com/RestApi/v1/");
            string dssUserName = "****";
            string dssUserPassword = "*****";

            var out_dir = @.\Storage\;
            var SearchContext = new SearchContext(dssUri, dssUserName, dssUserPassword);
            var ExtractionsContext = new ExtractionsContext(dssUri, dssUserName, dssUserPassword);
            var availableMbPFields = ExtractionsContext.GetValidContentFieldTypes(ReportTemplateTypes.TickHistoryRaw);
            var availableLL2Fields = ExtractionsContext.GetValidContentFieldTypes(ReportTemplateTypes.TickHistoryMarketDepth);
            var availableTnSFields = ExtractionsContext.GetValidContentFieldTypes(ReportTemplateTypes.TickHistoryTimeAndSales);


            ExtractionsContext.Options.AutomaticDecompression = true;

            var dateRange = DateTimeRange.Create(
                new DateTimeOffset(2008, 01, 01, 0, 0, 0, TimeSpan.Zero),
                new DateTimeOffset(2020, 12, 22, 0, 0, 0, TimeSpan.Zero));

            var request = new HistoricalChainResolutionRequest
            {
                ChainRics = new[] { "0#1URO:" },//{ "0#1URO:" },
                Range = dateRange
            };

            var chain_results = SearchContext.HistoricalChainResolution(request);
            foreach (var chain in chain_results)
            {
                Console.WriteLine("Chain Identifier: {0} {1}, Constituents: {2}", chain.IdentifierType, chain.Identifier, chain.Constituents.Count());
                foreach (var constituent in chain.Constituents)
                {
                    var searchResults = SearchContext.HistoricalSearch(
                        HistoricalSearchRequest.Create(
                            constituent.Identifier, constituent.IdentifierType, dateRange, HistoricalResultsBy.Ric, null));

                    //foreach (var result in from pos in searchResults where pos.DomainCode == "8" select pos)
                    //foreach (var result in searchResults)

                    var result = searchResults.FirstOrDefault(pos => pos.Identifier.Contains("UROH1"));
                    if (result != null)
                    {
                        var startDate = result.FirstDate;
                        var lastDate = result.LastDate;
                        Console.WriteLine("{0},\t {1},\t {2},\t {3},\t {4}", result.Identifier, result.IdentifierType, startDate, lastDate, result.DomainCode);
          var extractionResult = ExtractionsContext.ExtractRaw(
              new TickHistoryMarketDepthExtractionRequest
              {
                  Condition = new TickHistoryMarketDepthCondition
                  {
                      ReportDateRangeType = ReportDateRangeType.Range,
                      QueryStartDate = startDate, //new DateTimeOffset(2016, 07, 25, 20, 0, 0, TimeSpan.Zero),
                      QueryEndDate = lastDate, //new DateTimeOffset(2016, 08, 02, 19, 59, 59, TimeSpan.Zero),
                      NumberOfLevels = 10,
                      ExtractBy = TickHistoryExtractByMode.Ric,
                      MessageTimeStampIn = TickHistoryTimeOptions.GmtUtc,
                      SortBy = TickHistorySort.SingleByRic,
                      View = TickHistoryMarketDepthViewOptions.LegacyLevel2,

                  },
                  ContentFieldNames = availableLL2Fields.Select(f => f.Name).ToArray(),
                  IdentifierList = new InstrumentIdentifierList
                  {
                      InstrumentIdentifiers = new[]
                      {
                         InstrumentIdentifier.Create( result.IdentifierType, result.Identifier)
                      },
                      ValidationOptions = new InstrumentValidationOptions
                      {
                          AllowHistoricalInstruments = true
                      }
                  },
             
                    });

                        using (var response = ExtractionsContext.RawExtractionResultOperations.GetReadStream(extractionResult))
                        using (var reader = new StreamReader(response.Stream))
                        {
                            var fileName = out_dir + "_" + result.Identifier + "_" + startDate.DateTime.ToString("dd.MM.yyyy") + "_" + lastDate.DateTime.ToString("dd.MM.yyyy") + "_MarketByPrice.txt";
                            using (var fileStream = File.Create(fileName))
                                response.Stream.CopyTo(fileStream);
                        }
                        
                    }
                }
            }

            Console.WriteLine("Press Enter to exit");
            Console.ReadLine();
        }
    }

}


Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @s61670

    I have used the same code to get the LegacyLevel2 TickHistoryMarketDepth of 1UROH1.

    The output contains the BEST_BID10 and BEST_ASK10 that represent the 10th level.

    image

Welcome!

It looks like you're new here. Sign in or register to get started.

Welcome!

It looks like you're new here. Sign in or register to get started.