aboutsummaryrefslogtreecommitdiffstats
path: root/python/bbg_helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/bbg_helpers.py')
-rw-r--r--python/bbg_helpers.py23
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"])