diff options
Diffstat (limited to 'python/trade_dataclasses.py')
| -rw-r--r-- | python/trade_dataclasses.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index b6e14313..353d2e53 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -296,6 +296,28 @@ class CDSDeal(BbgDeal, Deal, table_name="cds", insert_ignore=("id", "dealid")): obj["Contractual Supplement"] = "StandardiTraxxEuropeTranche" return obj + @classmethod + def from_bbg_line(cls, line: dict): + values = list(line.values()) + cls._bbg_insert_queue.append(values) + return cls( + fund=_funds[line["Account"]], + folder="*", + portfolio="UNALLOCATED", + security_id=line["Red Code"], + security_desc=line["Security"].removesuffix(" PRC"), + traded_level=Decimal(line["Price (Dec)"]), + notional=line["Quantity"], + fixed_rate=float(line["Coupon"]) * 0.01, + trade_date=datetime.datetime.strptime(line["Trade Dt"], "%m/%d/%Y").date(), + maturity=datetime.datetime.strptime(line["Mat Dt"], "%m/%d/%Y").date(), + currency=line["Curncy"], + protection="Buyer" if line["Side"] == "B" else "Seller", + upfront=line["Principal"], + cp_code=_cdx_cp[line["Brkr"]], + account_code=_fcms[line["Client FCM"]], + ) + @dataclass class BondDeal(BbgDeal, Deal, table_name="bonds"): |
