diff options
Diffstat (limited to 'python/collateral_calc.py')
| -rw-r--r-- | python/collateral_calc.py | 25 |
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 " |
