For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
2 0 0 1

How to get all RIC data which I contracted using python websocket API?

I am using Python's websocket API to get real-time prices for financial instruments, how can I get all the prices for my contracts?

Looking at the program here(https://github.com/Refinitiv/websocket-api/blob/master/Applications/Examples/RDP/python/market_price_rdpgw_client_cred_auth.py), it seems that only a single commodity code can be specified for the argument RIC.

Is the only way to get prices for multiple commodities is to run multiple programs with different arguments?

python#technologyrdp-apipython apiricsrefinitiv-realtime-optimisedrdp
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
Accepted
24.7k 54 17 14

Hello @GFIT junichi.kayamoto

The WebSocket API supports a Batch request that you can specify multiple RICs in a single request message as follows:

"ID":2,
  "Key":{
    "Name":
    [
       'VOD.L',
       'BT.L',
       'BP.L'
    ],
  }

You can find more detail on the WebSocket API tutorial: Make a Batch Request for Multiple Items page.

The Python example is the market_price_batch_view.py file on GitHub (see send_market_price_request() function). This example is for the deployed RTDS connection, but you can apply the Batch Logic to the RTO connection too.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
2 0 0 1

@wasin.w

Thank you for quick reply!

I confirmed the above Python example and I think I can do it!

I have another question about this.

Can I specify which I retrieve fields (ask, bid, quote_time, etc.) of price data by editing the following key "View" in the dictionary ?

The following code is in the python script that you sent (https://github.com/Refinitiv/websocket-api/blob/master/Applications/Examples/python/market_price_batch_view.py).

mp_req_json = {
        'ID': 2,
        'Key': {
            'Name': [
                'TRI.N',
                'IBM.N',
                'T.N'
            ],
        },
        'View': [
            'BID',
            'ASK',
            'BIDSIZE'
        ]
    }
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
24.7k 54 17 14

Hello @GFIT junichi.kayamoto

Yes, you can use the View feature to specify which fields you want to subscribe to.

Example View JSON message:

{
  "ID":2,
  "Key":{
    "Name":"VOD.L"
  },
  "View":[
    "BID",
    "ASK",
    "BIDSIZE"
  ]
}

The View can be combined with the Batch subscription as shown in the https://github.com/Refinitiv/websocket-api/blob/master/Applications/Examples/python/market_price_batch_view.py example.

You can find more detail about the View feature on the WebSocket Tutorial: Filtering the Field List – specifying a View page.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.