I'm trying to process the streaming data from RDP in Python receiving updates on multiple RICs. It seems to me that the only class from the https://pypi.org/project/refinitiv-dataplatform/ library that can handle multiple RICs is StreamingPrices(). Unfortunately when I'm running my code below, I don't receive any data.
streaming_prices = rdp.StreamingPrices(
universe=['EUR='],
fields=['BID', 'ASK'],
on_update=lambda streaming_price, instrument_name, f:
print("Update received for {}: {}".format(instrument_name, f))
)
streaming_prices.open()
while True: time.sleep(0.2)
The log looks as follows:
2020-02-28 09:44:28,347 Login to websocket successful
2020-02-28 09:44:48,347 Receive ping from server ...
2020-02-28 09:44:48,348 ... send pong response
2020-02-28 09:45:08,346 Receive ping from server ...
2020-02-28 09:45:08,346 ... send pong response
...
On the other hand, when I use the ItemStream() class with the following code, it works perfectly. But ItemStream() cannot handle multiple RICs, so it's not a solution to my problem.
streaming_prices = rdp.ItemStream(
session=rdp.get_default_session(),
name='EUR=',
fields=['BID', 'ASK'],
on_update=lambda s, msg:
print("Update received: {}".format(msg)))
streaming_prices.open()
while True: time.sleep(0.2)
The log looks the same, but I can see the updates being printed in the console:
Update received: {'ID': 1, 'Type': 'Update', 'UpdateType': 'Unspecified', 'DoNotConflate': True, 'Key': {'Service': 'ELEKTRON_DD', 'Name': 'EUR='}, 'SeqNumber': 43854, 'Fields': {'BID': 1.1029, 'ASK': 1.1033}}
Update received: {'ID': 1, 'Type': 'Update', 'UpdateType': 'Unspecified', 'DoNotConflate': True, 'Key': {'Service': 'ELEKTRON_DD', 'Name': 'EUR='}, 'SeqNumber': 43918, 'Fields': {'BID': 1.103, 'ASK': 1.1033}}
Update received: {'ID': 1, 'Type': 'Update', 'UpdateType': 'Unspecified', 'DoNotConflate': True, 'Key': {'Service': 'ELEKTRON_DD', 'Name': 'EUR='}, 'SeqNumber': 43982, 'Fields': {'BID': 1.103, 'ASK': 1.1033}}
Update received: {'ID': 1, 'Type': 'Update', 'UpdateType': 'Unspecified', 'DoNotConflate': True, 'Key': {'Service': 'ELEKTRON_DD', 'Name': 'EUR='}, 'SeqNumber': 44046, 'Fields': {'BID': 1.1029, 'ASK': 1.1033}}