diff options
Diffstat (limited to 'python/collateral/baml_fcm.py')
| -rw-r--r-- | python/collateral/baml_fcm.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/python/collateral/baml_fcm.py b/python/collateral/baml_fcm.py index f89bbc8f..b1459471 100644 --- a/python/collateral/baml_fcm.py +++ b/python/collateral/baml_fcm.py @@ -96,15 +96,18 @@ def collateral(d, positions, *, engine, fund="Serenitas", positions_irs, **kwarg "EFFDATE", "MATDATE", "LEG1ROLLCONV", + "FLOATINGINDEX", ], parse_dates=["MATDATE", "EFFDATE"], ) df_rates.loc[df_rates["DIRECTION"] == "Rec", "NOTIONAL"] *= -1 df_rates["FIXEDRATE"] = df_rates["FIXEDRATE"].round(4) - df_rates = df_rates.groupby(by=["MATDATE", "FIXEDRATE", "LEG1ROLLCONV"]).agg( - {"NOTIONAL": "sum", "NPV": "sum"} - ) - df_rates.index.names = ["maturity_date", "fixed_rate", "roll_day"] + _rate_index_mapping = {"USD-SOFR-COMPOUND": "SOFRRATE"} + df_rates["FLOATINGINDEX"] = df_rates["FLOATINGINDEX"].replace(_rate_index_mapping) + df_rates = df_rates.groupby( + by=["MATDATE", "FIXEDRATE", "LEG1ROLLCONV", "FLOATINGINDEX"] + ).agg({"NOTIONAL": "sum", "NPV": "sum"}) + df_rates.index.names = ["maturity_date", "fixed_rate", "roll_day", "float_index"] compare_notionals_rates(df_rates, positions_irs, "BAML") positions_irs["Amount"] = df_rates.reindex(positions_irs.index)["NPV"] positions_irs.folder.replace(STRATEGY_CASH_MAPPING, inplace=True) |
