diff options
Diffstat (limited to 'python/position.py')
| -rw-r--r-- | python/position.py | 24 |
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() |
