diff options
Diffstat (limited to 'python/process_queue.py')
| -rw-r--r-- | python/process_queue.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/python/process_queue.py b/python/process_queue.py index 3ef14619..07669e09 100644 --- a/python/process_queue.py +++ b/python/process_queue.py @@ -61,21 +61,24 @@ def build_line(obj): def bbg_process(conn, session, trade): fields = ["MTG_FACTOR_SET_DT", "INT_ACC"] + fields_mtge = ["MTG_FACE_AMT", "START_ACC_DT"] + fields_corp = ["AMT_ISSUED", "PREV_CPN_DT"] with conn.cursor() as c: c.execute("SELECT identifier FROM securities WHERE identifier=%s", (trade['identifier'],)) if not c.fetchone(): - fields += ["MATURITY", "CRNCY", "NAME", "MTG_FACE_AMT", "FLOATER", - "FLT_SPREAD", "CPN", "CPN_FREQ", "FIRST_CPN_DT", "MTG_PAY_DELAY", - "DAY_CNT_DES", "START_ACC_DT"] + fields += ["MATURITY", "CRNCY", "NAME", "FLOATER", "FLT_SPREAD", "CPN", + "CPN_FREQ", "FIRST_CPN_DT", "MTG_PAY_DELAY", "DAY_CNT_DES"] bbg_id = (trade['cusip'] or trade['isin']) + ' Mtge' bbg_type = 'Mtge' - data = retrieve_data(session, [bbg_id], fields, overrides={'SETTLE_DT': trade['settle_date']}) + data = retrieve_data(session, [bbg_id], fields + fields_mtge, + overrides={'SETTLE_DT': trade['settle_date']}) if not data[bbg_id]: bbg_id = (trade['cusip'] or trade['isin']) + ' Corp' bbg_type = 'Corp' - data = retrieve_data(session, [bbg_id], fields, overrides={'SETTLE_DT': trade['settle_date']}) + data = retrieve_data(session, [bbg_id], fields + fields_corp, + overrides={'SETTLE_DT': trade['settle_date']}) bbg_data = data[bbg_id] if bbg_data.get('MTG_FACTOR_SET_DT', 0) == 0: @@ -105,14 +108,15 @@ def bbg_process(conn, session, trade): pay_delay = int(pay_delay.split(' ')[0]) with conn.cursor() as c: c.execute(sqlstr, (trade['identifier'], trade['cusip'], trade['isin'], - bbg_data['NAME'], bbg_data.get('MTG_FACE_AMT'), + bbg_data['NAME'], + bbg_data.get('MTG_FACE_AMT') or bbg_data.get('AMT_ISSUED'), bbg_data.get('MATURITY'), isfloater, bbg_data.get('FLT_SPREAD') if isfloater else None, bbg_data.get('CPN') if not isfloater else None, bbg_data.get('CPN_FREQ'), day_count, bbg_data.get('FIRST_CPN_DT'), pay_delay, bbg_data.get('CRNCY'), bbg_type, trade['asset_class'], - bbg_data.get('START_ACC_DT'))) + bbg_data.get('START_ACC_DT') or bbg_data.get('PREV_CPN_DT'))) conn.commit() #mark it at buy price if trade.buysell: |
