diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/pnl_explain.py | 2 | ||||
| -rw-r--r-- | python/risk/swaptions.py | 13 |
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) |
