diff options
Diffstat (limited to 'python/book_bbg2.py')
| -rw-r--r-- | python/book_bbg2.py | 30 |
1 files changed, 27 insertions, 3 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__": |
