aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral')
-rw-r--r--python/collateral/__main__.py9
-rw-r--r--python/collateral/baml_fcm.py8
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)