aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral/baml_fcm.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral/baml_fcm.py')
-rw-r--r--python/collateral/baml_fcm.py35
1 files changed, 29 insertions, 6 deletions
diff --git a/python/collateral/baml_fcm.py b/python/collateral/baml_fcm.py
index 6b7e6df8..d6a676f8 100644
--- a/python/collateral/baml_fcm.py
+++ b/python/collateral/baml_fcm.py
@@ -70,18 +70,41 @@ def collateral(d, positions, engine):
.reset_index(["folder", "currency"])
)
df = df.rename(columns={"folder": "Strategy", "currency": "Currency"})
+ col_names = [
+ "Statement Date",
+ "AT",
+ "AT CCY",
+ "Beginning Balance",
+ "CDS Initial Coupon",
+ "CDS Trade Variation",
+ "Price Aligned Interest",
+ "Clearing Fee",
+ "Commission",
+ "Cash Amounts",
+ "Ending Balance",
+ "Account Value at Market",
+ "Net P&L",
+ "Initial Margin Requirement",
+ "Margin Excess/Deficit",
+ ]
df_margin = pd.read_csv(
DAILY_DIR / "BAML_reports" / f"OTC_Moneyline_{d:%Y%m%d}.CSV",
- usecols=["Statement Date", "AT CCY", "Initial Margin Requirement"],
+ usecols=col_names,
parse_dates=["Statement Date"],
+ index_col=["Statement Date"],
)
- df_margin.columns = ["date", "currency", "amount"]
- df_margin["account"] = "V0NSCLMFCM"
+ df_margin.AT = df_margin.AT.replace(
+ {"Q4": "EUR", "F4": "EUR", "Q1": "USD", "F2": "USD", "9Z": "ZZZZZ",}
+ )
+ df_margin = df_margin.set_index("AT", append=True)
+ df_margin = df_margin.groupby(level=(0, 1)).sum()
+ df_margin = df_margin.reset_index()
+ col_names.pop(2)
try:
+ place_holders = ",".join(["%s"] * (len(col_names) - 1))
engine.execute(
- "INSERT INTO fcm_im "
- "VALUES(%(date)s, %(account)s, %(currency)s, %(amount)s)",
- df_margin.iloc[-1].to_dict(),
+ f"INSERT INTO fcm_moneyline VALUES(%s, 'V0NSCLMFCM', {place_holders})",
+ list(df_margin[col_names].itertuples(index=False)),
)
except IntegrityError:
pass