aboutsummaryrefslogtreecommitdiffstats
path: root/python/pnl_explain.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pnl_explain.py')
-rw-r--r--python/pnl_explain.py10
1 files changed, 3 insertions, 7 deletions
diff --git a/python/pnl_explain.py b/python/pnl_explain.py
index 1074bf10..cec9e691 100644
--- a/python/pnl_explain.py
+++ b/python/pnl_explain.py
@@ -257,7 +257,7 @@ def get_pv(**kwargs):
if pnl_type == "swaption":
return get_swaption_pv(**kwargs)
elif pnl_type == "tranche":
- return get_tranche_pv2(**kwargs)
+ return get_tranche_pv(**kwargs)
else:
return get_bond_pv(**kwargs)
@@ -327,13 +327,9 @@ def get_pnl(df_instrument, asset_class: Literal["bond", "tranche", "swaption"]):
if asset_class == "bond":
return df_instrument.drop("notional", axis=1).groupby("date").sum().sum(axis=1)
elif asset_class == "tranche":
- df_pnl = df_instrument.groupby(level="id")[["pv", "accrued"]].diff().sum(axis=1)
- cashflows = (
- df_instrument.dropna(subset=["realized_accrued", "principal"], how="all")
- .fillna(0)
- .sum(axis=1)
+ return df_instrument.pv.diff() + df_instrument[["upfront", "accrued"]].sum(
+ axis=1
)
- return pd.concat([df_pnl, cashflows]).groupby("date").sum()
elif asset_class == "swaption":
return df_instrument.pv.diff() + df_instrument.daily