diff options
Diffstat (limited to 'python/risk/tranches.py')
| -rw-r--r-- | python/risk/tranches.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/python/risk/tranches.py b/python/risk/tranches.py index 76284a36..125dc72b 100644 --- a/python/risk/tranches.py +++ b/python/risk/tranches.py @@ -43,23 +43,24 @@ def insert_tranche_marks(portf, conn): "upfront", "running", "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({['%s'] * 12}) " + sql_str = (f"INSERT INTO tranche_risk VALUES({','.join(['%s'] * 12)}) " " ON CONFLICT (date, tranche_id) DO UPDATE " f"SET {update_str}") - print(sql_str) with conn.cursor() as c: for trade_id, trade in portf.items(): - c.execute(sql_str, (d, + c.execute(sql_str, (trade.value_date, trade_id, trade.clean_pv, - trace._accrued, + -trade._accrued * trade.notional, None, trade.duration, + trade.delta, trade.upfront, - trade.tranche_upfront, trade.tranche_running, - trade._indexpv().bond_price * 100, - trade._index.spread(), - trade._index.duration()) + 100 - float(trade._index.pv()) * 100, + trade._index._snacspread(trade._index.coupon(), + trade._index.recovery, + trade._index.maturities[0]) * 10000, + float(trade._index.duration())) ) conn.commit() |
