import analytics import argparse import datetime from . import dbconn, dbengine from dates import bus_day from .bonds import subprime_risk, clo_risk, crt_risk, insert_subprime_risk from analytics import init_ontr from .indices import insert_curve_risk from .swaptions import get_swaption_portfolio, insert_swaption_portfolio from .tranches import get_tranche_portfolio, insert_tranche_portfolio parser = argparse.ArgumentParser() parser.add_argument( "cob", nargs="?", type=datetime.date.fromisoformat, default=(datetime.date.today() - bus_day).date(), help="close of business date", ) args = parser.parse_args() workdate = args.cob init_ontr(workdate) analytics._include_todays_cashflows = True mysql_engine = dbengine("rmbs_model") mysqlcrt_engine = dbengine("crt") with dbconn("dawndb") as conn: portf = get_swaption_portfolio(workdate, conn, source_list=["MS"]) insert_swaption_portfolio(portf, conn) for fund in ("SERCGMAST", "BOWDST", "BRINKER"): portf = get_tranche_portfolio(workdate, conn, fund=fund) insert_tranche_portfolio(portf, conn) insert_curve_risk( workdate, conn, fund, ("SER_IGCURVE", "SER_ITRXCURVE", "XCURVE") ) with dbconn("etdb") as etconn, dbconn("dawndb") 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) # portf = get_rmbs_portfolio(workdate, conn) # crt_portf = portf[portf.strategy.str.contains("CRT")] # subprime_portf = portf[~portf.strategy.str.contains("CRT")] # subprime_portf_zero = subprime_portf[subprime_portf.identifier.str.endswith("_A")] # subprime_portf = subprime_portf[~subprime_portf.identifier.str.endswith("_A")] # df = subprime_risk(workdate) # subprime_portf = subprime_portf.join(df)