aboutsummaryrefslogtreecommitdiffstats
path: root/python/ctm_allocation.py
blob: b39bab24bc88ee2163d96667daebbfa7bfcfaae5 (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
33
34
35
36
37
38
39
40
41
from serenitas.utils.db import dawn_engine, dbconn
from serenitas.utils.exchange import ExchangeMessage, FileAttachment
from exchangelib import HTMLBody
import pandas as pd
from io import StringIO
import datetime
import argparse
from pandas.tseries.offsets import BDay
import sys

sys.path.append("/home/flint/projects/")
from ops.serenitas.ops.trade_dataclasses import BondDeal
from ops.serenitas.ops.funds import CTM


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "trade_date",
        type=datetime.date.fromisoformat,
        default=(datetime.date.today() - BDay(1)).date(),
    )
    args = parser.parse_args()
    dawndb = dbconn("dawndb")

    alert = {
        "SERCGMAST": "Serenitas Credit Gamma Master Fund",
        "BOWDST": "Bowdoin St. (ALERT acronym: LMUNDER, Account: SER003)",
        "BRINKER": "Brinker Destinations Multi-Strategy Alternatives - LMCG",
        "ISOSEL": "ISO Selene (ALERT acronym: LMUNDER, Account: SER004)",
    }

    df = pd.read_sql_query(
        "SELECT ba.id, allocated, emailed FROM bonds LEFT JOIN bond_allocation ba ON bonds.id=ba.tradeid WHERE trade_date=%s;",
        con=dawn_engine,
        params=(args.trade_date,),
    )
    with dawndb.cursor() as d:
        for row in df.itertuples():
            CTM.stage(BondDeal.from_allocationid(row.id))
    buf, dest = CTM.build_buffer()