aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/collateral_calc.py34
1 files changed, 27 insertions, 7 deletions
diff --git a/python/collateral_calc.py b/python/collateral_calc.py
index 47a9bda8..ab52db5c 100644
--- a/python/collateral_calc.py
+++ b/python/collateral_calc.py
@@ -297,8 +297,16 @@ def load_gs_file(d, pattern):
glob(f"{pattern}*{d.strftime('%d_%b_%Y')}*"))
except StopIteration:
raise FileNotFoundError(f"GS {pattern} file not found for date {d}")
- df = pd.read_excel(fname, skiprows=9, skipfooter=77)
- return df
+ return pd.read_excel(fname, skiprows=9, skipfooter=77)
+
+
+def load_citi_file(d):
+ try:
+ fname = next((DAILY_DIR / "CITI_reports").
+ glob(f"262966_Portfolio_{d.strftime('%Y%m%d')}*"))
+ except StopIteration:
+ raise FileNotFoundError(f"CITI file not found for date {d}")
+ return pd.read_excel(fname, skiprows=6, skipfooter=2)
def get_dawn_trades():
@@ -335,11 +343,6 @@ def gs_collateral(d, dawn_trades):
df['Currency'] = 'USD'
df = df.reset_index()
df.columns = ['Strategy', 'Amount', 'Currency']
- # TODO: need to break down SWO_CDIXOP between IG and HY
- # df.Strategy = df.Strategy.replace({'SWAP_CDINDT': 'IGTCDSCSH',
- # 'GENERIC_IRSIRD': 'IRDEVCSH',
- # 'SWO_CDIXOP': 'IGCDSCSH',
- # 'FX': 'M_CSH_CASH'})
df.Amount *= -1
df = df.append({'Strategy': "M_CSH_CASH",
'Amount': -collateral - df.Amount.sum(),
@@ -348,6 +351,22 @@ def gs_collateral(d, dawn_trades):
return df
+def citi_collateral(d, dawn_trades):
+ df = load_citi_file(d)
+ df = df[['Trade ID', 'Market Value', 'BasicAmt']]
+ df = df.merge(dawn_trades, how='left', left_on='Trade ID', right_on='cpty_id')
+ df = df.groupby('folder').sum()
+ df = df.sum(axis=1).to_frame(name='Amount')
+ df['Currency'] = 'USD'
+ df = df.reset_idnex()
+ df.columns = ['Strategy', 'Amount', 'Currency']
+ df.amount *=1
+ df = df.append({"Strategy": "M_CSH_CASH",
+ "Amount": - collateral - df.Amount.sum(),
+ "Currency": "USD"}, ignore_index=True)
+ return df
+
+
def send_email(df_ms, df_baml, df_gs):
pd.set_option('display.float_format', '{:.2f}'.format)
content = HTMLBody('<html><body>'
@@ -374,6 +393,7 @@ if __name__ == "__main__":
#download_sftp_files(d)
download_baml_files()
dawn_trades = get_dawn_trades()
+ df_citi = citi_collateral(d, dawn_trades)
try:
df_ms = ms_collateral(d, dawn_trades)
except FileNotFoundError as e: