Skip to main content

Python API for Refinitiv (Thomson Reuters) Enterprise Platform

Project description

PyRFA

version pyversion version platform license downloads

PyRFA is a Python API for accessing Refinitiv (Thomson Reuters) market data feeds known as Elektron, Thomson Reuter Enterprise Platform for Real-time (TREP-RT) or legacy RMDS. It supports subscription and publication of market data using OMM data message model.

application

Features

  • Subscription for MARKET_PRICE (level 1)
  • Subscription for MARKET_BY_ORDER (order book)
  • Subscription for MARKET_BY_PRICE (market depth)
  • Snapshot/streaming request
  • Multiple service subscription
  • Pause and resume subscription
  • OMM Posting
  • View
  • Dictionary download or use local files
  • Directory request
  • Symbol list request
  • Time-series request and decoder for IDN TS1
  • Custom domain MMT_HISTORY which can be used for intraday timeseries publishing
  • Non-interactive provider (full-cached) for MARKET_PRICE, MARKET_BY_ORDER, MARKET_BY_PRICE, SYMBOLLIST, HISTORY domains
  • Interactive provider for MARKET_PRICE domain
  • Debug mode
  • Logging
  • Low-latency mode
  • Subscription outbound NIC binding

Installation

PyRFA supports both Windows and Linux platforms. Simply install from PyPI using pip:

> pip install pyrfa

Windows users might need to install Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) or (x86).

Platform Availability

Windows

Version Release Date 64bit-Windows, Python 3.7 64bit-Windows, Python 3.6 64bit-Windows, Python 3.5 64bit-Windows, Python 3.4 64bit-Windows, Python 2.7 64bit-Windows, Python 2.6 32bit-Windows, Python 2.7 32bit-Windows, Python 2.6
8.5.3 9 Nov 18
7.7.0 17 Mar 17

Linux

Version Release Date 64bit-Linux, Python 3.7 64bit-Linux, Python 3.6 64bit-Linux, Python 3.5 64bit-Linux, Python 3.4 64bit-Linux/RHEL7, Python 2.7 64bit-Linux/RHEL6, Python 2.6
8.5.3 9 Nov 18

Example

import pyrfa
p = pyrfa.Pyrfa()
p.createConfigDb("./pyrfa.cfg")
p.acquireSession("Session1")
p.createOMMConsumer()
p.login()
p.directoryRequest()
p.dictionaryRequest()
p.marketPriceRequest("JPY=,EUR=")
end = False
while not end:
    try:
        for data in p.dispatchEventQueue(10):
            print(data)
    except KeyboardInterrupt:
        end = True

Output:

...
{'MTYPE': 'UPDATE', 'RIC': 'JPY=', 'SERVICE': 'IDN_RDF_SDS', 'IRGPRC': 0.24}
{'MTYPE': 'UPDATE', 'ASIA_NETCH': 0.7, 'SERVICE': 'IDN_RDF_SDS', 'RIC': 'JPY='}
{'MTYPE': 'UPDATE', 'BID_NET_CH': 0.26, 'RIC': 'JPY=', 'SERVICE': 'IDN_RDF_SDS'}
...

Support

Available support including API documentation, Replay Service guide, changelog, issue tracker:

Project details


Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page