Кто-нибудь использовал пакеты Blpapi/Pdblp и т. Д. Для экспорта данных цепочки поставок (SPLC) из Bloomberg?

Я использую пакет pdblp для сбора данных о цепочке поставок. Но у меня две проблемы. Во-первых, это всего лишь первые пять поставщиков на текущий момент, даже не все. Кроме того, он не дает никаких исторических данных. Изменяя любую дату, вы все равно получите те же результаты. Я обыскал всю сеть, нет руководства по сбору данных о цепочке поставок от Bloomberg. Итак, мне было интересно, есть ли у кого-нибудь опыт или решение для этого. Спасибо огромное!

Ниже показаны мои коды, которые я использовал con.bulkref_hist() и con.bulkref() для сбора поставщиков APPLE Inc. Как показано в выходных данных, я получил только 5 поставщиков Apple? Не все и даже я не могу изменить дату.

import pdblp
con = pdblp.BCon(debug=True, port=8194, timeout=100000)
con.start()
con.bulkref('AAPL US Equity', 'SUPPLY_CHAIN_SUPPLIERS',ovrds=[('DZ414',"20100626")])


# Your code here, this should be a minimal reproducible example, see https://stackru.com/help/mcve
pdblp.pdblp:INFO:Sending Request:
ReferenceDataRequest = {
    securities[] = {
        "AAPL US Equity"
    }
    fields[] = {
        "SUPPLY_CHAIN_SUPPLIERS"
    }
    overrides[] = {
        overrides = {
            fieldId = "DZ414"
            value = "20100626"
        }
    }
}

pdblp.pdblp:INFO:Event Type: 'RESPONSE'
pdblp.pdblp:INFO:Message Received:
ReferenceDataResponse = {
    securityData[] = {
        securityData = {
            security = "AAPL US Equity"
            eidData[] = {
            }
            fieldExceptions[] = {
            }
            sequenceNumber = 0
            fieldData = {
                SUPPLY_CHAIN_SUPPLIERS[] = {
                    SUPPLY_CHAIN_SUPPLIERS = {
                        Equity Ticker = "2317 TT Equity"
                    }
                    SUPPLY_CHAIN_SUPPLIERS = {
                        Equity Ticker = "4938 TT Equity"
                    }
                    SUPPLY_CHAIN_SUPPLIERS = {
                        Equity Ticker = "2382 TT Equity"
                    }
                    SUPPLY_CHAIN_SUPPLIERS = {
                        Equity Ticker = "601138 CH Equity"
                    }
                    SUPPLY_CHAIN_SUPPLIERS = {
                        Equity Ticker = "2330 TT Equity"
                    }
                }
            }
        }
    }
}





dates = ["20100626"]
con.bulkref_hist("AAPL US Equity", ["DZ405"],dates)

pdblp.pdblp:INFO:Sending Request:
ReferenceDataRequest = {
    securities[] = {
        "AAPL US Equity"
    }
    fields[] = {
        "DZ405"
    }
    overrides[] = {
        overrides = {
            fieldId = "REFERENCE_DATE"
            value = "20100626"
        }
    }
}

или следующее:

pdblp.pdblp:INFO:Event Type: 'RESPONSE'
pdblp.pdblp:INFO:Message Received:
ReferenceDataResponse = {
    securityData[] = {
        securityData = {
            security = "AAPL US Equity"
            eidData[] = {
            }
            fieldExceptions[] = {
            }
            sequenceNumber = 0
            fieldData = {
                DZ405[] = {
                    DZ405 = {
                        Equity Ticker = "2317 TT Equity"
                    }
                    DZ405 = {
                        Equity Ticker = "4938 TT Equity"
                    }
                    DZ405 = {
                        Equity Ticker = "2382 TT Equity"
                    }
                    DZ405 = {
                        Equity Ticker = "601138 CH Equity"
                    }
                    DZ405 = {
                        Equity Ticker = "2330 TT Equity"
                    }
                }
            }
        }
    }
}

Мои результаты в обоих методах следующие. Не все поставщики.

date | ticker | field | name | value | position
-- | -- | -- | -- | -- | --
20100626 | AAPL US Equity | DZ405 | Equity Ticker | 2317 TT Equity | 0
20100626 | AAPL US Equity | DZ405 | Equity Ticker | 4938 TT Equity | 1
20100626 | AAPL US Equity | DZ405 | Equity Ticker | 2382 TT Equity | 2
20100626 | AAPL US Equity | DZ405 | Equity Ticker | 601138 CH Equity | 3
20100626 | AAPL US Equity | DZ405 | Equity Ticker | 2330 TT Equity | 4

2 ответа

Решение
In [1]: from xbbg import blp
In [2]: blp.bds('AAPL US Equity', 'SUPPLY_CHAIN_SUPPLIERS', Supply_Chain_Count_Override=10)
Out[2]:
                   equity_ticker
AAPL US Equity    2317 TT Equity
AAPL US Equity    4938 TT Equity
AAPL US Equity    2382 TT Equity
AAPL US Equity  601138 CH Equity
AAPL US Equity    2330 TT Equity
AAPL US Equity  034220 KS Equity
AAPL US Equity  005930 KS Equity
AAPL US Equity    INTC US Equity
AAPL US Equity     JBL US Equity
AAPL US Equity    2324 TT Equity

Кстати, DZ414 отсутствует в списке доступных переопределений для SUPPLY_CHAIN_SUPPLIERS, а значение может быть только C или R.

Я выполнил процедуру, описанную вами, и получаю следующую ошибку!!

Нужно ли подключать xbbg как пакет pdblp? Я слышал, xbbg не требует подключения.

from xbbg import blp
blp.bds('AAPL US Equity', 'SUPPLY_CHAIN_SUPPLIERS', Supply_Chain_Count_Override=10)


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-35-5b733d802a54> in <module>
      1 from xbbg import blp
----> 2 blp.bds('AAPL US Equity', 'SUPPLY_CHAIN_SUPPLIERS', Supply_Chain_Count_Override=10)

C:\Users\jnamdar\AppData\Local\Continuum\anaconda3\lib\site-packages\xbbg\core\conn.py in wrapper(*args, **kwargs)
     84         _, new = create_connection(port=port, timeout=timeout, restart=restart)
     85         res = func(**{
---> 86             k: v for k, v in all_kw.items() if k not in ['raw', 'col_maps']
     87         })
     88         if new: delete_connection()

C:\Users\jnamdar\AppData\Local\Continuum\anaconda3\lib\site-packages\xbbg\blp.py in bds(tickers, flds, **kwargs)
    142         f'{assist.info_qry(tickers=tickers, flds=flds)}'
    143     )
--> 144     data = con.bulkref(tickers=tickers, flds=flds, ovrds=ovrds)
    145     if not kwargs.get('cache', False): return [data]
    146 

C:\Users\jnamdar\AppData\Local\Continuum\anaconda3\lib\site-packages\pdblp\pdblp.py in bulkref(self, tickers, flds, ovrds)
    461         setvals = []
    462         request = self._create_req('ReferenceDataRequest', tickers, flds,
--> 463                                    ovrds, setvals)
    464         logger.info('Sending Request:\n{}'.format(request))
    465         self._session.sendRequest(request, identity=self._identity)

C:\Users\jnamdar\AppData\Local\Continuum\anaconda3\lib\site-packages\pdblp\pdblp.py in _create_req(self, rtype, tickers, flds, ovrds, setvals)
    191             pass
    192 
--> 193         request = self.refDataService.createRequest(rtype)
    194         for t in tickers:
    195             request.getElement('securities').appendValue(t)

AttributeError: 'BCon' object has no attribute 'refDataService'
Другие вопросы по тегам