diff options
Diffstat (limited to 'python/risk/tranches.py')
| -rw-r--r-- | python/risk/tranches.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/python/risk/tranches.py b/python/risk/tranches.py index f4391f99..98d31357 100644 --- a/python/risk/tranches.py +++ b/python/risk/tranches.py @@ -37,15 +37,17 @@ def get_tranche_portfolio(date, conn, by_strat=False, fund="SERCGMAST"): return portf def insert_tranche_portfolio(portf, conn): - cols = ["clean_nav", "accrued", "theta", "duration", "delta", - "upfront", "running", "index_refprice", "index_refspread", + cols = ["clean_nav", "accrued", "duration", "delta", "gamma", + "theta", "upfront", "running", "corr_attach", "corr_detach", + "index_refprice", "index_refspread", "index_duration"] update_str = ",".join(f"{c} = EXCLUDED.{c}" for c in cols) - sql_str = (f"INSERT INTO tranche_risk VALUES({','.join(['%s'] * 12)}) " + sql_str = (f"INSERT INTO tranche_risk VALUES({','.join(['%s'] * 15)}) " " ON CONFLICT (date, tranche_id) DO UPDATE " f"SET {update_str}") with conn.cursor() as c: for (strat, trade_id), trade in portf.items(): + print(strat, trade_id) c.execute(sql_str, (trade.value_date, trade_id, trade.clean_pv, @@ -55,9 +57,9 @@ def insert_tranche_portfolio(portf, conn): trade.gamma, trade.theta(method="TLP"), trade.upfront, + trade.tranche_running, trade.rho[0], trade.rho[1], - trade.tranche_running, 100 - float(trade._index.pv()) * 100, trade._index._snacspread(trade._index.coupon(), trade._index.recovery, |
