diff options
Diffstat (limited to 'python/trade_dataclasses.py')
| -rw-r--r-- | python/trade_dataclasses.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index 44ca9b33..ee462e5b 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -938,7 +938,7 @@ class SpotDeal( ): folder: SpotStrat portfolio: Portfolio - spot_rate: float + spot_rate: float = field(metadata={"citco": "AvgPrice"}) buy_currency: str buy_amount: float sell_currency: str @@ -949,7 +949,9 @@ class SpotDeal( commission_currency: str = "USD" commission: float = None id: int = field(default=None, metadata={"insert": False}) - dealid: str = field(default=None, metadata={"insert": False}) + dealid: str = field( + default=None, metadata={"insert": False, "citco": "ClientOrderID"} + ) trade_date: datetime.date = field( default_factory=datetime.date.today(), ) @@ -991,6 +993,21 @@ class SpotDeal( **d, ) + def to_citco(self): + obj = self.serialize("citco") + obj["FillID"] = obj["ClientOrderID"] + obj["SecurityType"] = "FX" + obj["Trader"] = "serenitas_trader" + obj["StrategyCode"] = f"{obj['portfolio']}/{obj['folder']}" + obj["FillPrice"] = obj["AvgPrice"] + + obj["BuySellShortCover"] = "B" if obj["buysell"] == "Buy" else "S" + obj["FillQty"] = obj["OrderQty"] + obj["SettleCurrency"] = obj["SecurityCurrency"] + obj["IDSource"] = "USERID" + obj["ClearingAgent"] = obj["ExecutionBroker"] + return obj + _fx_funds = {"serenitas": "SERCGMAST", "bowdst": "BOWDST", "baml_fcm": "SERCGMAST"} _fx_accounts = {"serenitas": "V0NSCLMAMB", "bowdst": "751254", "baml_fcm": "V0NSCLMSPT"} |
