diff options
Diffstat (limited to 'python/bbg_helpers.py')
| -rw-r--r-- | python/bbg_helpers.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/python/bbg_helpers.py b/python/bbg_helpers.py index ca570f0d..26facc6f 100644 --- a/python/bbg_helpers.py +++ b/python/bbg_helpers.py @@ -65,7 +65,8 @@ def get_pythonvalue(e): def field_array_todf(field): df = pd.DataFrame.from_dict([{str(e.name()): get_pythonvalue(e) for e in f.elements()} \ for f in field.values()]) - df = df.set_index('date') + if "date" in df: + df = df.set_index('date') return df def process_historical_msg(msg): @@ -92,10 +93,23 @@ def process_reference_msg(msg): return data def retrieve_data(session, securities, fields, overrides={}, - start_date=None, end_date=None): + start_date=None, end_date=None, frequency="DAILY"): + """ + Convenience function to retrieve data from the Bloomberg API. + + Parameters + ---------- + session : blpapi session + securities : iterable + list of tickers (with type, e.g.: ['CADUSD Curncy', '38145BAA9 Mtge'] + start_date : datetime.date + end_date : datetime.date + frequency : One of "DAILY", "MONTHLY", "QUARTERLY", "YEARLY" + """ refDataService = session.getService("//blp/refdata") if start_date: request = refDataService.createRequest("HistoricalDataRequest") + request.set("periodicitySelection", frequency) else: request = refDataService.createRequest("ReferenceDataRequest") for security in securities: @@ -121,10 +135,11 @@ if __name__=="__main__": testdate = pd.datetime(2013, 1, 1) hist_securities = ['CADUSD Curncy', "EURUSD Curncy"] hist_fields = ['PX_LAST'] - securities = ['38145BAA9 Mtge', '75157EAE2 Mtge', 'XS0295516776 Mtge'] + securities = ['004421BW2 Mtge', '75157EAE2 Mtge', 'XS0295516776 Mtge'] fields = ['CUR_CPN', 'START_ACC_DT'] with init_bbg_session(BBG_IP) as session: - hist_data = retrieve_data(session, hist_securities, hist_fields, start_date=testdate) + hist_data = retrieve_data(session, securities, hist_fields, start_date=testdate, + frequency="MONTHLY") overrides={'SETTLE_DT': testdate} ref_data = retrieve_data(session, securities, fields, overrides=overrides) struct_data = retrieve_data(session, securities, ["HIST_CASH_FLOW"]) |
