aboutsummaryrefslogtreecommitdiffstats
path: root/python/monthend_recon_bowdst.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/monthend_recon_bowdst.py')
-rw-r--r--python/monthend_recon_bowdst.py31
1 files changed, 13 insertions, 18 deletions
diff --git a/python/monthend_recon_bowdst.py b/python/monthend_recon_bowdst.py
index 346a3e50..a4d1919f 100644
--- a/python/monthend_recon_bowdst.py
+++ b/python/monthend_recon_bowdst.py
@@ -9,8 +9,8 @@ from serenitas.utils.db import dbconn, dawn_engine
import datetime
from pandas.tseries.offsets import BDay
import numpy as np
-import pandas_market_calendars as mcal
from dateutil.relativedelta import relativedelta
+from serenitas.analytics.dates import prev_business_day
def get_dir(date):
@@ -133,7 +133,7 @@ def recon(date, conn):
bond_trades = bowd_bond_trades.merge(
db_bond_trades,
left_on="mellon_security_id",
- right_on="cusip",
+ right_on="identifier",
how="right",
)
bond_trades = bond_trades[
@@ -145,7 +145,7 @@ def recon(date, conn):
"current_notional",
"base_market_value",
"usd_market_value",
- "cusip_y",
+ "identifier",
]
]
bond_trades["db_notional"] = bond_trades["notional"] * bond_trades["factor"]
@@ -167,7 +167,7 @@ def recon(date, conn):
)
cdx_trades = pd.read_sql_query(
- f"select security_id, security_desc, index, series, version, maturity, globeop_notional as admin_notional, notional * factor as db_notional, clean_nav as db_mv, globeop_nav as admin_mv from list_cds_marks(%s, null, 'BOWDST')",
+ f"select security_id, security_desc, index, series, version, maturity, globeop_notional as admin_notional, notional * factor as db_notional, clean_nav as db_mv, globeop_nav as admin_mv from list_cds_marks_legacy(%s, null, 'BOWDST')",
conn,
params=(date,),
)
@@ -181,7 +181,7 @@ def recon(date, conn):
ir_swaption_trades = pd.read_sql_query(
"SELECT deal_id, option_type, strike, SECURITY_Id, expiration_date, notional AS db_notional, current_notional AS admin_notional, nav AS db_mv, base_market_value AS admin_mv FROM list_ir_swaption_positions(%s, 'BOWDST') LEFT JOIN bowdst_val ON deal_id=link_ref WHERE as_of_date=%s;",
conn,
- params=(last_bus_day(date), date),
+ params=(prev_business_day(date), date),
)
kinds = [
@@ -225,16 +225,6 @@ def recon(date, conn):
)
-def last_bus_day(date):
- holidays = mcal.get_calendar("NYSE").holidays().holidays
- if date in holidays:
- return (date - BDay(1)).date()
- elif not np.is_busday(date):
- return (date - BDay(1)).date()
- else:
- return date
-
-
def download_reports(date: datetime.date):
target_directory = get_dir(date)
@@ -245,7 +235,12 @@ def download_reports(date: datetime.date):
for msg in em.get_msgs(path=["Month End Recon", "BNY"]):
# We are getting reports the month after
- if msg.datetime_received.month == date.month + 1:
+ from dateutil import relativedelta
+
+ if (
+ msg.datetime_received.month
+ == (date + relativedelta.relativedelta(months=1)).month
+ ):
for attachment in msg.attachments:
(target_directory / attachment.name).write_bytes(attachment.content)
@@ -254,7 +249,7 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("end_date", type=datetime.date.fromisoformat)
args = parser.parse_args()
- download_reports(args.end_date)
+ # download_reports(args.end_date)
dawndb = dbconn("dawndb")
- load_val_report(args.end_date, dawndb)
+ # load_val_report(args.end_date, dawndb)
recon(args.end_date, dawndb)