0

I have a table with the colunmns ISIN, Asset Class, Description, Nominal/Quantity, Market Value CHF. I would like to check how much is invested in a specific company, let's say Boeing. How do I find that out?

Here are some example rows:

ISIN            Asset Class                 Description         Nominal/Quantity    Market Value CHF
XS2507549496    Money market Investments    0 BMO 23 CD         USD 2'000'000       1'781'067
DE0001141786    Money market Investments    0 BRD 23 178        EUR 2'000'000       1'940'951
XS2547547146    Money market Investments    0 CBL 23 ECP        EUR 3'000'000       2'952'545
CH0419041345    Money market Investments    0 CEMBRA 23         CHF 17'000'000      16'833'400
CH0009755197    Swiss Franc bonds           4 EIDG 49           CHF 60'000          90'588
CH0198415074    Swiss Franc bonds           4 ENEL FIN 27 GMTN  CHF 2'000'000       2144000
XS2286044370    Foreign Currency bonds      0 ABB FIN 30        EUR 2'000'000       1'531'192
XS2273810510    Foreign Currency bonds      0 ATWN 26 EMTN      EUR 500'000         348'164
JP3830000000    Equities                    BROTHER IND RG      51'300              721'951
US1152361010    Equities                    BROWN & BROWN RG    12'631              665'763
US1156372096    Equities                    BROWN NVTGRG-B      16'304              990'747

I suspect Ctrl-F is not enough, is it? There are a bunch of description fields containing "boeing", but I'm not sure what the other digits and letters mean. Can there be other companies named Boeing and how do I tell them apart (let's say a company that produces toilet paper, that could probably call itself Boeing without having a problem with the aerospace company Boeing). Also there might be indirect investments, if there is an index fund on the list somewhere?

I tried looking up the ISINs to see if that information was more directly useful, but the first example wasn't even found. The second ISIN I tried was found and the information helped clear it up a bit (definitely nothing to do with Boeing).

$ curl 'https://api.openfigi.com/v3/mapping' \
--request POST \
--header 'Content-Type: application/json' \
--data '[{"idType":"ID_ISIN","idValue":"XS2507549496"}]'
[{"warning":"No identifier found."}]
$ curl 'https://api.openfigi.com/v3/mapping' \
--request POST \
--header 'Content-Type: application/json' \
--data '[{"idType":"ID_ISIN","idValue":"DE0001141786"}]'
[{"data":[{"figi":"BBG00LG5FJ24","name":"BUNDESOBLIGATION","ticker":"OBL 0 10/13/23 178","exchCode":"ALL GERMAN SE","compositeFIGI":null,"securityType":"EURO-ZONE","marketSector":"Govt","shareClassFIGI":null,"securityType2":"Govt","securityDescription":"OBL 0 10/13/23"}]}]

The table is from there (the portfolio of an institution related to a pension system) and I already converted it from PDF to .csv so I have clean regular data.

I hope that's the right site, I wasn't sure if I should maybe ask on https://quant.stackexchange.com/.

0

2 Answers 2

5

Unless you have access to a third party data provider like Bloomberg or Refinitiv that returns the ticker/name based on the ISIN, you'll have to go by the description.

There are a bunch of description fields containing "boeing", but I'm not sure what the other digits and letters mean.

Your list mixes fixed income and equities. The digits refer to the coupons/maturity dates. The letters refer to the ticker/name and other information, e.g. EMTN - European Medium Term Note.

If you know which company you're interested in, you can look at the investor relations section on their website to see the outstanding securities (various bonds/noes, preferred equity, common stock, etc.) and their tickers.

0

Since you have the csv, you can filter for the column with Equities, and search for BOEING.

Based on your question, it seem you know how to programme. If you load the csv into a DataFrame in a language of your choice, you should be able to quickly verify if and where Boeing is. For example, in Julia, assuming I have the csv file in a DataFrame called compenswiss, I can do the following:

compenswiss[[occursin(r"BOEING", s) for s in compenswiss[!,"Description"]], :]

This searches for the word BOEING (via regex) within the column Description, and provides the entire DataFrame that satisifies this criteria.

enter image description here

If you are unsure if this is correct, you could still use OpenSymbology as you tried:

ids = makeidentifier.(compenswiss[[occursin(r"BOEING", s) for s in compenswiss[!,"Description"]], :].ISIN)
data = fetchsecuritydata(ids)
[data[key] for (key,value) in data]
df = DataFrame([(key, unique(data[key].securityType)[1],  unique(data[key].ticker)[1], unique(data[key].exchCode)[1], unique(data[key].marketSector)[1])  for (key,value) in data])
rename!(df, :1 => :ISIN, :2 => :Tyoe, 3 => :Ticker, :4 => :Exchange, :5 => :Sektor)

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .