diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/book_bbg2.py | 30 | ||||
| -rw-r--r-- | python/trade_dataclasses.py | 6 |
2 files changed, 30 insertions, 6 deletions
diff --git a/python/book_bbg2.py b/python/book_bbg2.py index 69258001..f66c27c1 100644 --- a/python/book_bbg2.py +++ b/python/book_bbg2.py @@ -3,7 +3,7 @@ from serenitas.utils.remote import SftpClient from zoneinfo import ZoneInfo import datetime import csv -from trade_dataclasses import CDSDeal +from trade_dataclasses import CDSDeal, BondDeal from decimal import Decimal _funds = {"SERENITAS_CGMF": "SERCGMAST", "BOWDOINST": "BOWDST"} @@ -76,9 +76,9 @@ def cdx_booking_process(path, conn): trade = CDSDeal( fund=_funds[line["Account"]], folder="*", - portfolio="CURVE", + portfolio="UNALLOCATED", security_id=line["Red Code"], - security_desc=line["Security"], + security_desc=obj["Security"].replace(" PRC", ""), traded_level=Decimal(line["Price (Dec)"]), notional=line["Quantity"], fixed_rate=coupon * 0.01, @@ -96,10 +96,34 @@ def cdx_booking_process(path, conn): CDSDeal.commit() +def bond_booking_process(path, conn): + with open(path) as fh: + reader = csv.DictReader(fh) + for line in reader: + buysell = True if obj["Side"] == "B" else False + trade = BondDeal( + faceamount=Decimal(line["Quantity"]), + price=Decimal(line["Price (Dec)"]), + cp_code=_cdx_cp[line["cp_code"]], + cusip=line["Cusip"], + identifier=line["Cusip"], + trade_date=datetime.datetime.strptime(obj["Trade Dt"], "%m/%d/%Y"), + settle_date=datetime.datetime.strptime(obj["SetDt"], "%m/%d/%Y"), + portfolio="UNALLOCATED", + asset_class=None, + description=obj["Security"].replace(" Mtge", ""), + buysell=buysell, + ) + trade.stage() + CDSDeal.commit() + + def book_trades(conn, date=datetime.date.today()): download_files(date) for p in (DAILY_DIR / str(date) / "bbg_tickets").glob("CDX*"): cdx_booking_process(p, conn) + for p in (DAILY_DIR / str(date) / "bbg_tickets").glob("BOND*"): + bond_booking_process(p, conn) if __name__ == "__main__": diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index c486f397..b6fbb93d 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -183,9 +183,9 @@ class BondDeal(Deal): faceamount: float price: float() cp_code: str - cusip: str - isin: str - identifier: str + cusip: str = None + isin: str = None + identifier: str = None trade_date: datetime.date = field(default_factory=datetime.date.today()) settle_date: datetime.date = field( default_factory=lambda: next_business_day(datetime.date.today()) |
