diff options
Diffstat (limited to 'python/risk/portfolio.py')
| -rw-r--r-- | python/risk/portfolio.py | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/python/risk/portfolio.py b/python/risk/portfolio.py index 8598f3ae..9d87a6a6 100644 --- a/python/risk/portfolio.py +++ b/python/risk/portfolio.py @@ -1,13 +1,16 @@ import serenitas.analytics import numpy as np -from serenitas.analytics import on_the_run, CreditIndex, BlackSwaptionVolSurface +from serenitas.analytics.base import Trade +from serenitas.analytics.index_data import on_the_run +from serenitas.analytics.api import CreditIndex, BlackSwaptionVolSurface from copy import deepcopy from .tranches import get_tranche_portfolio from .swaptions import get_swaption_portfolio from .bonds import subprime_risk, clo_risk, crt_risk from .indices import get_index_portfolio -from serenitas.utils.db import dbconn, dbengine +from serenitas.utils.db import dbengine +from serenitas.utils.db2 import dawn_pool, dbconn from pandas.tseries.offsets import BDay @@ -26,31 +29,31 @@ def build_portfolio(position_date, value_date=None, fund="SERCGMAST"): if value_date is None: value_date = position_date - serenitas.analytics.init_ontr(value_date) - conn = dbconn("dawndb") - portf = get_tranche_portfolio(position_date, conn, False, fund) - swaption_portf = get_swaption_portfolio(position_date, conn, fund) - portf += swaption_portf - syn_portf = deepcopy(portf) + Trade.init_ontr(value_date) + with dawn_pool.connection() as conn: + portf = get_tranche_portfolio(position_date, conn, False, fund) + swaption_portf = get_swaption_portfolio(position_date, conn, fund) + portf += swaption_portf + syn_portf = deepcopy(portf) - curve_portf = get_index_portfolio( - position_date, conn, fund, include_strategies="%CURVE" - ) - nocurve_portf = get_index_portfolio( - position_date, conn, fund, exclude_strategies="%CURVE" - ) - portf += nocurve_portf - curve_portf.value_date = value_date - curve_portf.mark() - portf.add_trade( - hy_equiv_trade(value_date, curve_portf.hy_equiv), - ("curve_trades", "curve_trades"), - ) + curve_portf = get_index_portfolio( + position_date, conn, fund, include_strategies="%CURVE" + ) + nocurve_portf = get_index_portfolio( + position_date, conn, fund, exclude_strategies="%CURVE" + ) + portf += nocurve_portf + curve_portf.value_date = value_date + curve_portf.mark() + portf.add_trade( + hy_equiv_trade(value_date, curve_portf.hy_equiv), + ("curve_trades", "curve_trades"), + ) - syn_portf += curve_portf + nocurve_portf - # get bond risks: - rmbs_pos = subprime_risk(position_date, conn, dbengine("rmbs_model"), fund=fund) - crt_pos = crt_risk(position_date, conn, dbengine("crt"), fund=fund) + syn_portf += curve_portf + nocurve_portf + # get bond risks: + rmbs_pos = subprime_risk(position_date, conn, dbengine("rmbs_model"), fund=fund) + crt_pos = crt_risk(position_date, conn, dbengine("crt"), fund=fund) portf.add_trade( hy_equiv_trade(value_date, -rmbs_pos.get("hy_equiv", np.zeros(1)).sum()), ("rmbs_bonds", "rmbs_bonds"), |
