aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk/swaptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/risk/swaptions.py')
-rw-r--r--python/risk/swaptions.py13
1 files changed, 10 insertions, 3 deletions
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)