question

Upvotes
Accepted
89 2 6 9

problem with downloading RIC

I'm trying to get RIC:1UROH1m (Raw Legacy Market Depth, (MP) domain) with the code

This RIC is available through DataScope, but cannot be obtained through the code. What could be the problem?

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("1UROH1m"));
                    if (result != null)
                    {
                        var startDate = new DateTimeOffset(2021, 02, 08, 0, 0, 0, TimeSpan.Zero);//result.FirstDate;
                        var lastDate = new  DateTimeOffset(2021, 02, 08, 23, 59, 59, TimeSpan.Zero);//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();
        }
    }

}


tick-history-rest-apiricsrest-apiDownload
1uroh1m.png (70.8 KiB)
icon clock
10 |1500

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

Upvotes
Accepted
89 2 6 9

jirapongse.phuriphanvichai

my file content is different.

Why is this happening?

How to achieve 100% match?


78.png (258.8 KiB)
icon clock
10 |1500

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

@s61670

The timestamp looks different. The timestamp of my output starts at 2021-02-08T00:00:00.311051987Z. However, your output starts at 2021-02-08T06:00:00.012983049Z. It may relate to the conditions in the request or settings in the DSS preferences.

ReportDateRangeType = ReportDateRangeType.Range,
QueryStartDate = new DateTimeOffset(2021, 02, 8, 0, 0, 0, TimeSpan.Zero),
QueryEndDate = new DateTimeOffset(2021, 02, 9, 0, 0, 0, TimeSpan.Zero),      
ExtractBy = TickHistoryExtractByMode.Ric,
MessageTimeStampIn = TickHistoryTimeOptions.GmtUtc,
SortBy = TickHistorySort.SingleByRic,
View = TickHistoryMarketDepthViewOptions.LegacyLevel2,
DisplaySourceRIC = true


1615276437043.png (25.4 KiB)
Upvotes
89 2 6 9

I understand that you can download history using RIC:1UROH1, but I want to use RIC: 1UROH1m, if this RIC:1UROH1m is available in DataScope, why can't I get it through the code? so that the messages look like pictures from Excel

icon clock
10 |1500

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

Upvote
38.1k 71 35 53

@s61670

I can use the below to get the data of 1UROH1m properly.

var extractionResult = ExtractionsContext.ExtractRaw(
                         new TickHistoryMarketDepthExtractionRequest
                         {
                             Condition = new TickHistoryMarketDepthCondition
                             {
                                 ReportDateRangeType = ReportDateRangeType.Range,
                                 QueryStartDate = new DateTimeOffset(2021, 02, 8, 0, 0, 0, TimeSpan.Zero),
                                 QueryEndDate = new DateTimeOffset(2021, 02, 9, 0, 0, 0, TimeSpan.Zero),         
                                 ExtractBy = TickHistoryExtractByMode.Ric,
                                 MessageTimeStampIn = TickHistoryTimeOptions.GmtUtc,
                                 SortBy = TickHistorySort.SingleByRic,
                                 View = TickHistoryMarketDepthViewOptions.LegacyLevel2,
                                 DisplaySourceRIC = true

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

You may check the notes to verfiy the problem.

 foreach(var str in extractionResult.Notes)
 {
     Console.WriteLine(str);
 }

1615273866868.png (256.7 KiB)
icon clock
10 |1500

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

Click below to post an Idea Post Idea