aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk/portfolio.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/risk/portfolio.py')
-rw-r--r--python/risk/portfolio.py53
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"),