diff options
Diffstat (limited to 'python/collateral')
| -rw-r--r-- | python/collateral/__main__.py | 9 | ||||
| -rw-r--r-- | python/collateral/baml_fcm.py | 8 |
2 files changed, 11 insertions, 6 deletions
diff --git a/python/collateral/__main__.py b/python/collateral/__main__.py index 52aa2d5f..b491265e 100644 --- a/python/collateral/__main__.py +++ b/python/collateral/__main__.py @@ -131,13 +131,12 @@ for fund in funds: parse_dates=["maturity"], ) positions_rates = pd.read_sql_query( - "SELECT cleared_trade_id, notional, effective_date, maturity_date, payreceive, fixed_rate, folder, currency " - "FROM irs " - "WHERE fund=%s AND trade_date < %s", + "SELECT maturity_date, (fixed_rate /100)::NUMERIC(4, 4) as fixed_rate, currency, roll_day, notional, folder " + "FROM list_ir_positions(%s, %s) ", dawn_engine, params=(fund_mapping[fund], workdate), - index_col=["cleared_trade_id"], - parse_dates=["effective_date", "maturity_date"], + index_col=["maturity_date", "fixed_rate", "roll_day"], + parse_dates=["maturity_date"], ) df[(fund, fcm.upper())] = run_collateral( fcm, fund, positions, positions_rates, workdate, dawn_engine diff --git a/python/collateral/baml_fcm.py b/python/collateral/baml_fcm.py index 1d986941..f89bbc8f 100644 --- a/python/collateral/baml_fcm.py +++ b/python/collateral/baml_fcm.py @@ -95,10 +95,16 @@ def collateral(d, positions, *, engine, fund="Serenitas", positions_irs, **kwarg "NOTIONAL", "EFFDATE", "MATDATE", + "LEG1ROLLCONV", ], - index_col=["CLEAREDTRADEID"], 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"] 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) |
