TIA Bloomberg обрабатывает недействительные тикеры - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть следующее:

import blpapi
import pandas as pd
from tia.bbg import LocalTerminal
import tia.bbg.datamgr as dm



mgr = dm.BbgDataManager()

tickers = mgr['GLEN LN EQUITY', 'AAPL US EQUITY',"a"] 

df = tickers.get_historical('PX_LAST', start = '31/1/2019', end = 
           '31/1/2019', currency='EUR')

Поскольку «a», очевидно, не является допустимым тикером, я получаю следующую ошибку:

raise Exception('SecurityError: %s' % ','.join(msgs))

Exception: SecurityError: (a, BAD_SEC, Null/Blank Security String [nid:191] 

Каков наилучший способ обработки потенциальнонедействительные тикеры?

Я пытался:

try:
    df = tickers.get_historical('PX_LAST', start = '31/1/2019', end = 
            '31/1/2019', currency='EUR')
except Exception:
     print("Could not validate ticker:")

Но это полностью останавливает запрос и не предоставляет никаких допустимых возвратов, на самом деле он говорит, что «df» не определен.

Вывод, если «a» не было в тикерах, был бы:

                 GLEN LN EQUITY  AAPL US EQUITY
date                                      
2019-01-31         3.54638       145.36245 

В идеале я бы хотел, чтобы недействительные тикеры были полностью пропущены и вывод был бы таким же, как если бы он былизначально там не было, т. е. так же, как указано выше.

1 Ответ

0 голосов
/ 21 февраля 2019

Нашел ответ: ignore_security_error = 1

df = tickers.get_historical('PX_LAST', start = '31/1/2019', end = 
        '31/1/2019', currency='EUR', ignore_security_error=1) 

игнорирует все плохие тикеры.

...