aboutsummaryrefslogtreecommitdiffstats
path: root/python/position.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/position.py')
-rw-r--r--python/position.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/python/position.py b/python/position.py
index f2dc4f8e..d1e289e6 100644
--- a/python/position.py
+++ b/python/position.py
@@ -52,6 +52,22 @@ def update_securities(session, fields):
df = pd.DataFrame.from_dict(df, orient='index')
return securities.merge(df, left_on='bbg_id', right_index=True)
+def update_fx(session, conn, currencies):
+ securities = [c + ' Curncy' for c in currencies]
+ data = retreive_data(session, securities, ['FIXED_CLOSING_PRICE_NY'])
+ d = process_msgs(data)
+ colnames = ['date']
+ values = [pd.datetime.today()]
+ for k, v in d.items():
+ currency_pair = k.split(' ')[0].lower()
+ colnames.append(currency_pair)
+ values.append(v['FIXED_CLOSING_PRICE_NY'])
+ sqlstr = 'INSERT INTO fx({0}) VALUES({1})'.format(",".join(colnames),
+ ",".join(["%s"]*len(values)))
+ with conn.cursor() as c:
+ c.execute(sqlstr, values)
+ conn.commit()
+
def populate_cashflow_history(session, conn, workdate):
securities = get_list(workdate)
securities['bbg_id'] = securities.cusip.where(securities.cusip.notnull(), securities['isin']) + \
@@ -64,7 +80,6 @@ def populate_cashflow_history(session, conn, workdate):
if to_insert is not None:
identifier = securities.loc[k,'identifier']
to_insert['identifier'] = identifier
- print(identifier)
with conn.cursor() as c:
c.execute("DELETE FROM cashflow_history WHERE identifier=%s", (identifier,))
conn.commit()
@@ -85,4 +100,11 @@ if __name__=="__main__":
workdate = pd.datetime.today()
conn = engine.raw_connection()
with init_bbg_session('192.168.0.4', 8194) as session:
+ df = update_securities(session, ['START_ACC_DT', 'CUR_CPN'])
populate_cashflow_history(session, conn, workdate)
+ update_fx(session, conn, ['EURUSD', 'CADUSD'])
+ with conn.cursor() as c:
+ c.executemany("UPDATE securities SET start_accrued_date=%(START_ACC_DT)s "
+ ",coupon=%(CUR_CPN)s WHERE identifier=%(identifier)s",
+ df.to_dict('records'))
+ conn.commit()