aboutsummaryrefslogtreecommitdiffstats
path: root/python/risk/indices.py
blob: 210d8aae14519a240048e42690e6c87ba83439a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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