aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk/tranches.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/risk/tranches.py')
-rw-r--r--python/risk/tranches.py17
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()