Кто-нибудь использовал пакеты 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'