aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk/indices.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/risk/indices.py')
-rw-r--r--python/risk/indices.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/python/risk/indices.py b/python/risk/indices.py
new file mode 100644
index 00000000..210d8aae
--- /dev/null
+++ b/python/risk/indices.py
@@ -0,0 +1,28 @@
+import datetime
+from analytics import Portfolio, CreditIndex
+from psycopg2.extensions import connection
+from typing import Tuple
+
+
+def get_index_portfolio(
+ d: datetime.date, strategies: Tuple[str], conn: connection, **kwargs
+):
+ with conn.cursor() as c:
+ c.execute(
+ "SELECT security_id AS redcode, notional, maturity "
+ "FROM list_cds_positions_by_strat(%s) "
+ "WHERE folder in %s",
+ (d, strategies),
+ )
+ trades = [
+ CreditIndex(
+ redcode=rec.redcode,
+ maturity=rec.maturity,
+ notional=rec.notional,
+ value_date=d,
+ )
+ for rec in c
+ ]
+ portf = Portfolio(trades)
+ portf.mark()
+ return portf