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