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