aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/pnl_explain.py2
-rw-r--r--python/risk/swaptions.py13
2 files changed, 11 insertions, 4 deletions
diff --git a/python/pnl_explain.py b/python/pnl_explain.py
index cb10516d..00a7805b 100644
--- a/python/pnl_explain.py
+++ b/python/pnl_explain.py
@@ -81,7 +81,7 @@ def get_swaption_pv(
dates = []
for d in dr:
prev_day = (d - bus_day).date()
- portf = get_swaption_portfolio(prev_day, conn, fund, **kwargs)
+ portf = get_swaption_portfolio(prev_day, conn, fund, "OPTIONS", **kwargs)
nav = 0.0
# add terminations
with conn.cursor() as c:
diff --git a/python/risk/swaptions.py b/python/risk/swaptions.py
index bf9c7bde..e7ed1a67 100644
--- a/python/risk/swaptions.py
+++ b/python/risk/swaptions.py
@@ -6,7 +6,13 @@ from psycopg2 import sql
logger = logging.getLogger(__name__)
-def get_swaption_portfolio(date, conn, fund="SERCGMAST", **kwargs):
+def get_swaption_portfolio(date, conn, fund="SERCGMAST", portfolio=None, **kwargs):
+ if portfolio is None:
+ params = (date, date, date, fund)
+ and_clause = ""
+ else:
+ params = (date, date, date, fund, portfolio)
+ and_clause = "AND portfolio=%s"
with conn.cursor() as c:
c.execute(
"SELECT swaptions.id, folder, dealid, (notional - terminated_amount) AS notional "
@@ -17,8 +23,9 @@ def get_swaption_portfolio(date, conn, fund="SERCGMAST", **kwargs):
"WHERE notional IS DISTINCT FROM terminated_amount "
"AND expiration_date > %s AND trade_date <= %s "
"AND swap_type='CD_INDEX_OPTION' "
- "AND fund=%s ORDER BY expiration_date, strike",
- (date, date, date, fund),
+ f"AND fund=%s {and_clause} "
+ "ORDER BY expiration_date, strike",
+ params,
)
try:
trade_ids, folders, deal_ids, notionals = zip(*c)