diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/position.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/python/position.py b/python/position.py index f7df233a..789c4afe 100644 --- a/python/position.py +++ b/python/position.py @@ -224,6 +224,27 @@ def update_swap_rates(conn, session, c.execute(sql_str, data[ticker]) conn.commit() +def update_cash_rates(conn, session, start_date=None): + securities = {"FEDL01 Index": "FED_FUND", + "US0001M Index": "1M_LIBOR", + "US0003M Index": "3M_LIBOR"} + if start_date is None: + data = retrieve_data(session, list(securities.keys()), + ["PX_LAST", "LAST_UPDATE_DT"]) + else: + data = retrieve_data(session, list(securities.keys()), + ["PX_LAST"], start_date=start_date.date()) + sql_str = "INSERT INTO rates VALUES(%s, %s, %s) ON CONFLICT DO NOTHING" + with conn.cursor() as c: + if start_date is None: + for k, v in data.items(): + c.execute(sql_str, (v["LAST_UPDATE_DT"], securities[k], v["PX_LAST"])) + else: + for k, v in data.items(): + for d, r in v["PX_LAST"].items(): + c.execute(sql_str, (d, securities[k], r)) + conn.commit() + def populate_cashflow_history(engine, session, workdate=None, fund="SERCGMAST"): securities = get_list(engine, workdate, fund=fund) data = retrieve_data(session, securities.index.tolist(), @@ -283,6 +304,7 @@ if __name__ == "__main__": populate_cashflow_history(dawn_engine, session, workdate, "BRINKER") update_fx(dawn_conn, session, ['EURUSD', 'CADUSD']) update_swap_rates(serenitas_conn, session) + data = update_cash_rates(serenitas_conn, session) for vol_type in ["N", "V"]: update_swaption_vol(serenitas_conn, session, vol_type=vol_type) serenitas_pool.putconn(serenitas_conn) |
