blob: 02aabb5ecde1316783c6df2968b7ae12e612473c (
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
29
30
31
32
|
import datetime
from analytics import Portfolio, CreditIndex
from psycopg2.extensions import connection
from typing import Tuple
def get_index_portfolio(
d: datetime.date, conn: connection, strategies: Tuple[str] = None, **kwargs
):
sql_str = (
"SELECT security_id AS redcode, notional, maturity "
"FROM list_cds_positions_by_strat(%s) "
)
params = (d,)
if strategies is not None:
sql_str += "WHERE folder in %s"
params += (strategies,)
with conn.cursor() as c:
c.execute(sql_str, params)
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
|