aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/risk/indices.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/python/risk/indices.py b/python/risk/indices.py
index 8ffe20b2..db6ca0c2 100644
--- a/python/risk/indices.py
+++ b/python/risk/indices.py
@@ -19,10 +19,15 @@ def get_index_portfolio(
by_strat: bool = True,
**kwargs,
):
- sql_str = (
- "SELECT security_id AS redcode, security_desc, sum(notional) AS notional, maturity "
- "FROM list_cds_positions_by_strat(%s, %s) "
- )
+ select_cols = [
+ "security_id AS redcode",
+ "security_desc",
+ "sum(notional) AS notional",
+ "maturity",
+ ]
+ if by_strat:
+ select_cols += ["folder"]
+ sql_str = f"SELECT {','.join(select_cols)} FROM list_cds_positions_by_strat(%s, %s)"
params = (d, fund)
folder_filter = []
if strategies is not None:
@@ -38,10 +43,9 @@ def get_index_portfolio(
folder_filter.append("folder::text NOT LIKE %s")
params += (exclude_strategies,)
if folder_filter:
- sql_str += "WHERE " + " AND ".join(folder_filter)
- sql_str += "GROUP BY security_id, security_desc, maturity"
+ sql_str += " WHERE " + " AND ".join(folder_filter)
+ sql_str += " GROUP BY security_id, security_desc, maturity"
if by_strat:
- sql_str = sql_str.replace("redcode,", "redcode, folder,")
sql_str += ", folder"
with conn.cursor() as c:
c.execute(sql_str, params)