aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/risk/__main__.py')
-rw-r--r--python/risk/__main__.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/python/risk/__main__.py b/python/risk/__main__.py
index 3ba9f077..57534d02 100644
--- a/python/risk/__main__.py
+++ b/python/risk/__main__.py
@@ -3,12 +3,15 @@ import os
import serenitas.analytics
import argparse
import datetime
+from quantlib.time.api import Date
+from quantlib.time.calendars.united_states import UnitedStates, Market
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 serenitas.analytics.utils import run_local
from .indices import insert_curve_risk, insert_index_risk
from .ir_swap import insert_ir_swap_portfolio
from .ir_swaption import insert_ir_swaption_portfolio
@@ -41,6 +44,8 @@ mysql_engine = dbengine("rmbs_model")
mysqlcrt_engine = dbengine("crt")
funds = ("SERCGMAST", "BOWDST", "BRINKER", "ISOSEL")
+
+us_cal = UnitedStates(Market.FederalReserve)
with dawn_pool.connection() as conn:
for fund in funds:
insert_curve_risk(
@@ -49,13 +54,15 @@ with dawn_pool.connection() as 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)
+ if us_cal.is_business_day(Date.from_datetime(workdate)):
+ 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)
insert_index_risk(workdate, conn, fund)
portf = get_tranche_portfolio(workdate, conn, funds=funds)
- insert_tranche_pnl_explain(portf, conn)
+ with run_local():
+ insert_tranche_pnl_explain(portf, conn)
insert_tranche_risk(portf, conn)
portf = get_swaption_portfolio(workdate, conn, source_list=["MS"])
insert_swaption_portfolio(portf, conn)