Eikon API - results incorrect for RICs at the BACK of list when multiple RICs requested

Using VS2022 C# EikonDataAPI 0.4.9. I have an issue when requesting data for multiple RICs, if a RIC is toward the end of the list then the results are sometimes incorrect. I've stripped it down to a basic example (https://github.com/TokyoDerm/eikon_api_issue). The output I get from this program is below. The result when the test RIC is at the front of the list is correct, $0.24. When the test RIC is at the back of the list then it returns zero.
EMBE132209700.U CLOSE_ASK=0.24 [FRONT of list]
EMBE132209700.U CLOSE_ASK=0 [BACK of list]
The problem is not 100% reproducible from one day to the next so, if possible, please try to check this out today. Also, FYI I tried it with two separate accounts with the same results. Please advise if you can reproduce it on your side and if you can advise a solution. Thanks!
Best Answer
-
The problem happens when converting the JSON to Deedle dataframe.
The first item contains an integer (5) so all data in this column will be an integer. Therefore, it will change a floating-point value (0.35) to an integer (0).
I will look at the code and find a way to fix it.
0
Answers
-
Please enable the debug log in the API so we can verify the raw response. You need to add Microsoft.Extensions.Logging.Console 2.2.0.0.
The code looks like this:
using System;
using System.Collections.Generic;
using System.Linq;
using EikonDataAPI;
using Deedle;
using Microsoft.Extensions.Logging;
namespace EDAPIDotnetFramework
{
internal class Program
{
static void Main(string[] args)
{
IEikon eikon = Eikon.CreateDataAPI();
eikon.GetLoggerFactory().AddConsole(LogLevel.Debug);
eikon.SetAppKey("app key");
Frame<int, string> data;
string testRic = "EMBE132209700.U";
string testField = "CLOSE_ASK";
// 19 option rics
var baseList = new List<string>() { "EDQ202209750.U", "EEMM192404600.U", "EEMR172204500.U", "EGLEE202206500.U", "EGLER172204000.U", "EIXM202306000.U", "EIXQ202207000.U", "ELA202335000.U", "ELE202226000.U", "ELE202227000.U", "ELE202228000.U", "ELE202229000.U", "ELE202231000.U", "EMBA192408900.U", "EMBA202309500.U", "EMBE132209100.U", "EMBE132209350.U", "EMBE202209400.U", "EMBG152209000.U" };
var testRicList = new List<string>() { testRic };
var fields = new List<string>() { testField };
// create list of 20 rics with testRic being the first in the list
var frontOfList = testRicList.Concat(baseList);
data = eikon.GetData(frontOfList, fields);
var closeAskFront = data.Rows[0][testField];
Console.WriteLine($"{testRic} {testField}={closeAskFront} [FRONT of list]");
// create list of 20 rics with testRic being the last in the list
var backOfList = baseList.Concat(testRicList);
data = eikon.GetData(backOfList, fields);
var closeAskBack = data.Rows[19][testField];
Console.WriteLine($"{testRic} {testField}={closeAskBack} [BACK of list]");
Console.ReadLine();
return;
}
}
}Then, we can verify the raw response.
0 -
Jirapongse, Thanks for getting back. I'm using .NET Framework 4.6.1 which does not support the logging code above. I did upgrade the sample app to use .NET Core 3.1 and confirmed that it actually fixes the problem but the bad news is, I can't upgrade my own app (I tried!) due to dependent libraries. So I'd like to find a solution with .NET Framework 4.6.1 if that's possible. Please advise how I can get you the diagnostics you require on that version.
0 -
You can use the GetDataRaw method instead. This method will return a string.
Then, check the value or compare it with .NET Core 3.1 application. To compare the data, you need to run the applications at the same time.
0 -
@Jirapongse, Ok progress - on .NET Framework 4.6.1, GetRawData() actually returns the correct data but GetData() doesn't. Below is the Deedle Frame returned from GetData() and also the string returned from GetRawData(). Any ideas? Thanks.
0 -
0
-
Please try Version 0.5.0.
0 -
@Jirapongse, Version 0.5.0 fixed it. Impressive turnaround time.. Thank you!
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 685 Datastream
- 1.4K DSS
- 616 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 252 ETA
- 557 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 653 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 229 TRKD
- 917 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛