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.py32
1 files changed, 25 insertions, 7 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py
index 45e27ea3..8bfc4a32 100644
--- a/python/trade_dataclasses.py
+++ b/python/trade_dataclasses.py
@@ -947,7 +947,7 @@ class SpotDeal(
sell_currency: str
sell_amount: float
fund: Fund
- cp_code: str
+ cp_code: str = field(metadata={"citco": "ExecutionBroker"})
cash_account: str
commission_currency: str = "USD"
commission: float = None
@@ -956,10 +956,10 @@ class SpotDeal(
default=None, metadata={"insert": False, "citco": "ClientOrderID"}
)
trade_date: datetime.date = field(
- default_factory=datetime.date.today(),
+ default_factory=datetime.date.today(), metadata={"citco": "TradeDate"}
)
settle_date: datetime.date = field(
- default_factory=datetime.date.today(),
+ default_factory=datetime.date.today(), metadata={"citco": "SettlementDate"}
)
bbg_ticket_id: str = None
@@ -998,17 +998,25 @@ class SpotDeal(
def to_citco(self):
obj = self.serialize("citco")
+ if obj["buy_currency"] == "USD":
+ key = "sell"
+ else:
+ key = "buy"
+ obj["SecurityCurrency"] = obj[f"{key}_currency"]
+ obj["OrderQty"] = obj[f"{key}_amount"]
obj["FillID"] = obj["ClientOrderID"]
obj["SecurityType"] = "FX"
obj["Trader"] = "DFLT"
obj["StrategyCode"] = f"{obj['portfolio']}/{obj['folder']}"
obj["FillPrice"] = obj["AvgPrice"]
-
- obj["BuySellShortCover"] = "B" if obj["buysell"] == "Buy" else "S"
+ obj["FXRate"] = obj["AvgPrice"]
+ obj["BuySellShortCover"] = "S" if obj["buy_currency"] == "USD" else "B"
obj["FillQty"] = obj["OrderQty"]
obj["SettleCurrency"] = obj["SecurityCurrency"]
- obj["IDSource"] = "USERID"
- obj["ClearingAgent"] = obj["ExecutionBroker"]
+ obj["IDSource"] = "BLOOMBERG"
+ _citco_currency_mapping = {"EUR": "EURUSD CURNCY"}
+ obj["SecurityID"] = _citco_currency_mapping[obj["SecurityCurrency"]]
+ obj["ClearingAgent"] = "NT"
obj["TradeDate"] = obj["TradeDate"].strftime("%Y%m%d")
obj["SettlementDate"] = obj["SettlementDate"].strftime("%Y%m%d")
return obj
@@ -1324,6 +1332,16 @@ class IRSDeal(
)
(self.custodian,) = c.fetchone()
+ # @classmethod
+ # def from_bbg_line(cls, line: dict):
+ # cp_code = cls.get_cp_code(line["Brkr"], "IRS")
+ # cls._bbg_insert_queue.append(list(line.values()))
+ # return cls(
+ # fund='LIMBO',
+ # portfolio='UNALLOCATED',
+ # folder='*',
+
+ # )
def to_globeop(self):
obj = self.serialize("globeop")
if obj["payreceive"]: