aboutsummaryrefslogtreecommitdiffstats
path: root/python/collateral/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/collateral/__main__.py')
-rw-r--r--python/collateral/__main__.py24
1 files changed, 10 insertions, 14 deletions
diff --git a/python/collateral/__main__.py b/python/collateral/__main__.py
index 69c4ee12..37e8c2ff 100644
--- a/python/collateral/__main__.py
+++ b/python/collateral/__main__.py
@@ -5,8 +5,7 @@ from importlib import import_module
from utils import SerenitasFileHandler
from utils.db import dawn_engine, dbconn
-from .common import get_bilateral_trades, send_email
-from pandas.tseries.offsets import BDay
+from .common import get_bilateral_trades, send_email, prev_business_day
import argparse
import datetime
@@ -31,7 +30,7 @@ parser.add_argument(
"-s", "--send-email", action="store_true", help="send email to Globeop"
)
args = parser.parse_args()
-counterparties = ["citi", "baml_isda", "ms", "gs", "bnp", "baml_fcm", "wells", "cs"]
+counterparties = ("citi", "baml_isda", "ms", "gs", "bnp", "baml_fcm", "wells", "cs")
if args.download:
em = ExchangeMessage()
for cp in counterparties:
@@ -39,7 +38,7 @@ if args.download:
for fund in ("Serenitas", "Brinker", "BowdSt"):
cp_mod.download_files(em, fund=fund)
-args.workdate -= BDay()
+workdate = prev_business_day(args.workdate)
cp_dict = {
"Serenitas": {
@@ -56,12 +55,11 @@ def run_collateral(cp, fund, positions, workdate, engine):
lookback = 0
while lookback < 2:
try:
- return cp_mod.collateral(
- workdate - BDay(lookback), positions, engine=engine, fund=fund
- )
+ return cp_mod.collateral(workdate, positions, engine=engine, fund=fund)
except FileNotFoundError as e:
logger.info(e)
lookback += 1
+ workdate = prev_business_day(workdate)
except ValueError as e:
logger.error(e)
break
@@ -74,24 +72,22 @@ fcm_mapping = {"baml_fcm": "BAML", "wells": "WF", "gs_fcm": "GS"}
fund_mapping = {"Serenitas": "SERCGMAST", "Brinker": "BRINKER", "BowdSt": "BOWDST"}
for fund in ("Serenitas", "Brinker", "BowdSt"):
- bilat_positions = get_bilateral_trades(
- args.workdate, fund_mapping[fund], dawn_engine
- )
+ bilat_positions = get_bilateral_trades(workdate, fund_mapping[fund], dawn_engine)
for fcm in cp_dict[fund]["fcms"]:
positions = pd.read_sql_query(
"SELECT security_id, security_desc, maturity, "
"folder, notional, currency "
"FROM list_cds_positions_by_strat_fcm(%s, %s, %s)",
dawn_engine,
- params=(args.workdate.date(), fcm_mapping[fcm], fund_mapping[fund]),
+ params=(workdate, fcm_mapping[fcm], fund_mapping[fund]),
index_col=["security_id", "maturity"],
)
df[(fund, fcm.upper())] = run_collateral(
- fcm, fund, positions, args.workdate, dawn_engine
+ fcm, fund, positions, workdate, dawn_engine
)
for cp in cp_dict[fund]["isda_cps"]:
df[(fund, cp.upper())] = run_collateral(
- cp, fund, bilat_positions, args.workdate, dawn_engine
+ cp, fund, bilat_positions, workdate, dawn_engine
)
@@ -113,4 +109,4 @@ conn.commit()
conn.close()
if args.send_email:
- send_email(args.workdate, df[df.fund == "SERCGMAST"].drop("fund", axis=1))
+ send_email(workdate, df[df.fund == "SERCGMAST"].drop("fund", axis=1))