import os import serenitas.analytics import argparse import datetime from serenitas.utils.db import dbengine from serenitas.utils.db2 import dbconn from serenitas.utils.pool import dawn_pool from .bonds import subprime_risk, clo_risk, crt_risk, insert_subprime_risk from serenitas.analytics.base import Trade from serenitas.analytics.dates import prev_business_day from .indices import insert_curve_risk from .ir_swap import insert_ir_swap_portfolio from .ir_swaption import insert_ir_swaption_portfolio from serenitas.analytics.api import IRSwaption, SofrSwap from .swaptions import get_swaption_portfolio, insert_swaption_portfolio from .tranches import get_tranche_portfolio, insert_tranche_portfolio os.environ["SERENITAS_APP_NAME"] = "risk" parser = argparse.ArgumentParser() parser.add_argument( "cob", nargs="?", type=datetime.date.fromisoformat, default=prev_business_day(datetime.date.today()), help="close of business date", ) args = parser.parse_args() workdate = args.cob Trade.init_ontr(workdate) serenitas.analytics._include_todays_cashflows = True serenitas.analytics._local = False mysql_engine = dbengine("rmbs_model") mysqlcrt_engine = dbengine("crt") with dawn_pool.connection() as conn: for fund in ("SERCGMAST", "BOWDST", "BRINKER", "ISOSEL"): portf = get_swaption_portfolio(workdate, conn, source_list=["MS"], fund=fund) insert_swaption_portfolio(portf, conn) portf = get_tranche_portfolio(workdate, conn, fund=fund) insert_tranche_portfolio(portf, conn) insert_curve_risk( workdate, conn, fund, ("SER_IGCURVE", "SER_ITRXCURVE", "XCURVE", "SER_HYCURVE"), ) ir_swaption_portf = IRSwaption.get_portfolio(workdate, fund=fund) insert_ir_swaption_portfolio(ir_swaption_portf, conn) ir_swap_portf = SofrSwap.get_portfolio(workdate, fund=fund) insert_ir_swap_portfolio(ir_swap_portf, conn) with dbconn("etdb") as etconn, dawn_pool.connection() as dawnconn: subprime = subprime_risk(workdate, dawnconn, mysql_engine) insert_subprime_risk(subprime, dawnconn) clo = clo_risk(workdate, dawnconn, etconn) crt = crt_risk(workdate, dawnconn, mysqlcrt_engine)