Article

Equity/Bond Portfolio Filtering using Refinitiv Machine Readable News - RDP Early Access

    Zoya Farberov
    Developer Advocate

Introducing the Use Case

Reading market news, the old-fashioned way is not sufficient anymore.  As the news stream, even filtered by one's portfolio holdings, can be broad, to enable the market participants to analyze news efficiently, Refinitiv provides news categorizations, news filtering capabilities and news ratings.  The ratings are called sentiment, and the sentiment that is conveyed in the news is qualified as positive, negative or neutral.  

Dash Portfolio Demo application:

  • Requests the referenceable, categorized news sentiment history,
  • Requests intraday pricing history,
  • Presents the data points in tables and charts,
  • Allows next to select, review and compare visually

The goal is to identify sustainable patterns, to be able to answer if in some cases, major and highly relevant news on the companies that are part of the sample portfolio of stocks have, in fact, influenced the market, and drove the price of the stock to change noticeably.   We also can optionally look up and review the full story for "outlier" or "pivot point" sentiment points, instead of reading all the stories

This use case was implemented for http://solutions.refinitiv.com/DeveloperDaySeries2019  as an example of RDP library usage.

 

 

RDP Capabilities Relevant to Use Case

New RDP library offers an easy to code, targeted, tiered access to the diverse sources of content, including realtime pricing, historical pricing, intraday and interday, news and news analytics. 

In the context of the use case at point, we are going to focus on

  • Intraday pricing history
  • News analytics
  • News

Python Dash Introduction

Dash is a time-saving Python framework for building web applications.  Written on top of Flask, Plotly.js, and React.js

Dash is an open source library, released under the permissive MIT license.

How it All Comes Together

Python example dashPort.py requests EDP content via RDP library, and makes it available via web using Dash framework, that takes case of asynchronous content callbacks as well as required user input.

 

 

Interacting with RDP - Content Tier

  1. We create an RDP Platform (cloud hosted) session : 

that we will use to request price history and news headlines in the easy and light function level

 

2.    And a NewsStory object

that will be used to obtain news stories and new sentiments or ratings.

 

3.    Request historical price summaries for N last days (for example, N=3 days) via platform session

 

4.    Request headlines for the companies in the portfolio, also via platform session

while parsing out and archiving storyId information from the result 

intending to next request full story data per obtained storyId

 

5.    Request stories corresponding to the headlines 

consequently, parsing out sentiments or ratings.

 

6.    Process the rating on any stories of high relevance to our portfolio companies that were rated 

 

Presenting via Dash - Presentation Tier 

Portfolio app is Dash and so it consists of two main parts, layout and interactions

Layout

The layout we have built looks like this:

 

 

Interaction via callbacks

We interact with the layout, populating it with RDP content, via two Dash callbacks thus:

1. RIC selection from Stock Select Dropdown causes requests for all content for the RIC, news headlines, news stories, news metadata and price history,

and driving the update of all the content areas on the layout

2.    Story selection from News Headlines Table drives the update of News Story Text:

 

Next Steps

  • The use case used as a vehicle in this article is quite specific, but the approach can be generalized to retrieve and make available any content that is available via RDP, via function or via object.
  • In 2020, we expect enhancements on the metadata of news service to become available, and as we will be able to target the stories that we pull more precisely, the retrieval approach can be fine-tuned further, the speed is expected to be improved, and more instruments simultaneously supported for this type of analytical interaction

References

http://solutions.refinitiv.com/DeveloperDaySeries2019

https://developers.refinitiv.com/article/discover-our-upcoming-refinitiv-data-platform-library-part-1

https://dash.plot.ly/

https://emea1.apps.cp.thomsonreuters.com/Apps/APIDocs/