aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/book_bbg2.py30
-rw-r--r--python/trade_dataclasses.py6
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())