aboutsummaryrefslogtreecommitdiffstats
path: root/python/recon_bowdst.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/recon_bowdst.py')
-rw-r--r--python/recon_bowdst.py35
1 files changed, 33 insertions, 2 deletions
diff --git a/python/recon_bowdst.py b/python/recon_bowdst.py
index d295d57f..ff754d47 100644
--- a/python/recon_bowdst.py
+++ b/python/recon_bowdst.py
@@ -7,6 +7,9 @@ from io import StringIO
from serenitas.utils.env import DAILY_DIR
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
def get_dir(date):
@@ -171,8 +174,26 @@ def recon(hierarchy_file, date):
params=(date,),
)
- kinds = [bond_trades_combined, tranche_trades, cdx_trades, cdx_swaption_trades]
- names = ["bond_trades", "tranche_trades", "cdx_trades", "cdx_swaption_trades"]
+ 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;",
+ dawndb,
+ params=(last_bus_day(date), date),
+ )
+
+ kinds = [
+ bond_trades_combined,
+ tranche_trades,
+ cdx_trades,
+ cdx_swaption_trades,
+ ir_swaption_trades,
+ ]
+ names = [
+ "bond_trades",
+ "tranche_trades",
+ "cdx_trades",
+ "cdx_swaption_trades",
+ "ir_swaption_trades",
+ ]
message = ""
em = ExchangeMessage()
attachments = []
@@ -192,6 +213,16 @@ def recon(hierarchy_file, date):
)
+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
+
+
parser = argparse.ArgumentParser()
parser.add_argument("end_date", type=datetime.date.fromisoformat)
args = parser.parse_args()