PyRFA

PyRFA enables Python users to access real-time Thomson Reuters market data systems e.g. Elektron, TREP-RT, RDF-D, legacy RMDS -- delivered via a high-speed network. It empowers Python applications with market information from Thomson Reuters global data feeds and leverage on Python's vast mathematic and analytic libraries. Either you want to incorporate market data into quant modeling or embed it in a web site, it's never been easier.


PyRFA is available from PyPI with support on both Windows and Linux. PyRFA can be installed with pip command:

pip install pyrfa

Example

Below is an example of a PyRFA consumer application. Data updates are in Python tuple and dict format which can be used immediately.

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:
updates = p.dispatchEventQueue(100)
if updates:
for u in updates:
print(u['SERVICE'] + " - " + u['RIC'])
for k,v in u.items():
print("%15s %g" % (k,v) if type(v) is float else "%15s %s" % (k,v))
except KeyboardInterrupt:
end = True

Output:

NIP - EUR=
ACT_TP_2 B
ACT_TP_3 B
SERVICE NIP
ACT_TP_1 B
MTYPE UPDATE
BID_NET_CH -0.0007
RIC EUR=
...

Implementation

RFA Interfaces
PyRFA hides complicated layers of RFA classes and takes care of redundant function calls in C++, internally encodes and decodes messages then exposes the simplest interfaces to a user and yet maintain strict concepts of RFA such as Session, Config Database, Event Queue.

Why Python?
Python programming language works well with C/C++ libraries like RFA. Its core libraries allow building extension in C++ and export interfaces to Python. With huge range of supported libraries, users find Python is a language of choice when building either a standalone application or web framework with scalability and robustness.

Threading Model
PyRFA extensively implements RFA threading models to ensure that a user can still select between latency or throughput constraints at the configuration level.

C/C++ Underneath
Performance matters. Our software design pattern ensures PyRFA performance to be as close as to a native RFA C++ application.

License
PyRFA is free software and released under MIT License.

But Why Free?
It is made out from our own needs and we use it in-house extensively.
 
 

Features

Streaming or Snapshot
Supports market price, depth and order book subscription via OMM messaging.

Authentication
Supports native Thomson Reuters DAC auth including Username, Position and App ID.

Time-series
Ability to download and decode time-series data from TS1 service with selectable peroid.
See an example.

Data Publication
Full-cached non-interactive data publication capability for standard OMM level 1, 2, depth, order book, symbol list and service directory.

Build Your Own Historical Database

Only with PyRFA that allows you to build your own indexed time-series and store the data in TREP-RT platform for internal distribution leveraging on OMM custom domain.

Linux vs. Windows
PyRFA supports for both 32/64bit Windows and 64bit Linux. Requires Python 2.6 or later.

Python Data Type
PyRFA outputs decoded data into native Python data type such as tuple and dict allowing quick access of data records.

Other Goodies
Include dictionary download, symbol list, service direcotry listing, NIC binding, logging and more.
 

Documentation

Check out API documentation

Support

Check out PyRFA Enterprise Support