question

Upvote
Accepted
68 2 3 4

List of stocks in an exchange via DSWS

Hi, how can I get a list of all stocks in an exchange (e.g. NYSE) via R DSWS API (even better if via R package DatastreamDSWS2R). What I am trying to get is the something analogous to what one would get via DFO's Navigator, pulling a list of stocks in an exchange, with a given set of filters (e.g. active, major, geographic location, etc). Thanks

datastream-apidsws-apir
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
52.7k 135 44 63

@gino.cenedese

I can download the historical constituents with LNYSEALL1121 but LNYSEALL1021 doesn't work.

You need to contact the Refinitiv Datastream Web Service support team directly via MyRefinitv to verify if the data is available in Datastream.

For the second question, yes, the code will work if there is a constituent list symbol that contains all stocks in the exchange. You can check with the Refinitiv Datastream Web Service support team for the constituent list symbol of LSE.

Yes, the DS navigator provides a better search than the API. The API provides the symbol lookup (DS.SYMBOLLOOKUP) for quick search but it has limited search functionality and doesn’t cover all content sets. Therefore, you can use the DS navigator to search for items and then export them to an excel file. Next, load an excel file by using the following code:

library(XML)
tables <- readHTMLTable("export.xls")
tables
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
52.7k 135 44 63

@gino.cenedese

Thanks for reaching out to us.

You can use the Datastream navigator to search for constituent lists and datatypes. Then use DatastreamDSWS2R to retrieve the data. For example, the constituent list for NYSE COMPOSITE is LNYSEALL.

1663121864586.png

The code to retrieve data looks like this:

data <- mydsws$listRequest(instrument = c("LNYSEALL"), 
                              datatype = c("MAJOR","CODOC","NAME","ESTAT"), 
                              requestDate = "0D")
data 

The output is:

1663122052913.png

Otherwise, you can contact the Refinitiv Datastream Web Service support team directly via MyRefinitv and ask for instruments and data types that can provide the required data.

I think that the DatastreamDSWS2R can't filter data, as mentioned in this thread.


1663121864586.png (20.3 KiB)
1663122052913.png (16.7 KiB)
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.

Upvote
68 2 3 4

hi @Jirapongse

thanks, that gets very close to what I am looking for, but this approach has two issues:

(1) I can't download the historical constituents. This may be a licensing issue (?). I tried to edit the requestDate, and also tried to append MMYY to the mnemonic, but it does not work.

(2) This in principle could work only for exchanges that also have an associated index that contains all stocks in the exchange. For some exchanges (even big ones like LSE), I am not sure if there is an analogous to the NYSE Composite Index.

With the DS navigator instead you can download all stocks that ever (?) traded in the exchange, so one can recreate history, and this can be done for any exchange, not only NYSE.

Do you agree, and is there an alternative?

thanks

Gino


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.