aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral_calc.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral_calc.py')
-rw-r--r--python/collateral_calc.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/python/collateral_calc.py b/python/collateral_calc.py
index e75e495a..960921ed 100644
--- a/python/collateral_calc.py
+++ b/python/collateral_calc.py
@@ -253,6 +253,7 @@ def baml_collateral(d):
df_margin.iloc[-1].to_dict())
except IntegrityError:
pass
+ df["date"] = d
return df
@@ -318,6 +319,7 @@ def wells_collateral(d):
df_margin.loc["ZZZZZ", ["VALUE_DATE", "CURRENT_IM"]].tolist())
except IntegrityError:
pass
+ df["date"] = d
return df
def sg_collateral(d):
@@ -386,6 +388,7 @@ def sg_collateral(d):
df_margin.to_sql("fcm_im", dawn_engine, if_exists='append', index=False)
except IntegrityError:
pass
+ df["date"] = d
return df
@@ -407,10 +410,11 @@ def ms_collateral(d, dawn_trades):
df = df.reset_index()
col_names= ['Strategy', 'Amount', 'Currency']
df.columns = col_names
- return pd.concat([df,
- pd.DataFrame.
- from_records([('M_CSH_CASH', -collat - df.Amount.sum(), "USD")],
- columns=col_names)])
+ df = df.append({"Strategy": "M_CSH_CASH",
+ "Amount": -collat - df.Amount.sum(),
+ "Currency": "USD"}, ignore_index=True)
+ df["date"] = d
+ return df
def load_gs_file(d, pattern):
@@ -480,6 +484,7 @@ def gs_collateral(d, dawn_trades):
df = df.append({'Strategy': "M_CSH_CASH",
'Amount': -collateral - df.Amount.sum(),
'Currency': "USD"}, ignore_index=True)
+ df['date'] = d
return df
@@ -500,6 +505,7 @@ def citi_collateral(d, dawn_trades):
df = df.append({"Strategy": "M_CSH_CASH",
"Amount": collateral - df.Amount.sum(),
"Currency": "USD"}, ignore_index=True)
+ df["date"] = d - bus_day
return df
@@ -516,7 +522,8 @@ def send_email(d, dfs):
'{}'
'<h3>At Wells Fargo:</h3>'
'{}'
- '</body><html>'.format(*(df.to_html(index=False) for df in dfs)))
+ '</body><html>'.format(*(df.drop("date", axis=1).
+ to_html(index=False) for df in dfs)))
em = ExchangeMessage()
em.send_email(f"IAM booking {d:%Y-%m-%d}", content,
['serenitas.otc@sscinc.com'],
@@ -527,6 +534,7 @@ if __name__ == "__main__":
import argparse
import logging
from dates import bus_day
+ from pandas.tseries.offsets import BDay
fh = SerenitasFileHandler("collateral_calc.log")
logger = logging.getLogger("collateral_calc")
logger.addHandler(fh)
@@ -550,19 +558,19 @@ if __name__ == "__main__":
dawn_trades = get_dawn_trades(args.workdate)
df_citi = citi_collateral(args.workdate, dawn_trades)
- args.workdate = args.workdate - bus_day
+ args.workdate = args.workdate - BDay()
try:
df_ms = ms_collateral(args.workdate, dawn_trades)
except FileNotFoundError as e:
logger.info(e)
- df_ms = ms_collateral(args.workdate-bus_day, dawn_trades)
+ df_ms = ms_collateral(args.workdate -bus_day, dawn_trades)
#df_sg = sg_collateral(d)
df_baml = baml_collateral(args.workdate)
try:
df_gs = gs_collateral(args.workdate, dawn_trades)
except FileNotFoundError as e:
logger.info(e)
- df_gs = gs_collateral(args.workdate-busday, dawn_trades)
+ df_gs = gs_collateral(args.workdate-bus_day, dawn_trades)
df_wells = wells_collateral(args.workdate)
df = pd.concat([df_gs.set_index("Strategy"),
df_ms.set_index("Strategy"),
@@ -572,7 +580,6 @@ if __name__ == "__main__":
keys=["GS", "MS", "CITI", "WF", "BAML"],
names=["broker", "strategy"]).reset_index()
df.strategy = df.strategy.str.replace("^(M_|SER_)?", "", 1)
-
conn = dbconn('dawndb')
sql_str = ("INSERT INTO strategy_im VALUES(%s, %s, %s, %s, %s) "
"ON CONFLICT (date, strategy, broker) DO UPDATE "