diff options
Diffstat (limited to 'python/trade_dataclasses.py')
| -rw-r--r-- | python/trade_dataclasses.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index c401efd7..a9d950d8 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -53,6 +53,8 @@ _bond_cp = { "BTIG": "BTIG", } +_markit_fund = {"SERCGMAST": "SERCGMAST", "BOWDST": "BOWD"} + class BusDayConvention(str, Enum): modified_following = "Modified Following" @@ -412,6 +414,7 @@ class SwaptionDeal( fund: Fund = field(metadata={"mtm": "Account Abbreviation"}) cp_code: str = field(metadata={"mtm": "Broker Id"}) security_id: str = field(metadata={"mtm": "RED"}) + security_desc: str maturity: datetime.date = field(metadata={"mtm": "Maturity Date"}) currency: Ccy = field(metadata={"mtm": "Currency Code"}) notional: float = field(metadata={"mtm": "1st Leg Notional"}) @@ -440,7 +443,7 @@ class SwaptionDeal( def to_markit(self): obj = self.serialize("mtm") - obj["Initial Payment"] = obj["price"] * obj["1st Leg Notional"] + obj["Initial Payment"] = obj["price"] * obj["1st Leg Notional"] * 0.01 obj["Transaction Code"] = "Receive" if obj["buysell"] else "Pay" obj["Trade ID"] = obj["Swap ID"] obj["Product Type"] = "CDISW" @@ -450,4 +453,10 @@ class SwaptionDeal( obj["Clearing House"] = "ICE_FCM_US" obj["Swaption Settlement Type"] = "Physical" obj["OptionBuySellIndicator"] = "Buy" if obj["buysell"] else "Sell" + obj["Account Abbreviation"] = _markit_fund[obj["Account Abbreviation"]] + obj["Supplement Date"] = datetime.date(2021, 12, 13) + obj["Supplement 2 Date"] = datetime.date(2020, 1, 27) + if "IG" in obj["security_desc"]: + obj["Swaption Quotation Rate Type"] = "Spread" + obj["Strike Price"] = obj["Strike Price"] * 0.01 return obj |
