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