diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/trade_dataclasses.py | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index 6895e14e..7986a623 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -728,6 +728,7 @@ class SpotDeal( _fx_cp = {"BAST": "BAMSNY", "MSST": "MSCSNY"} _fx_funds = {"serenitas": "SERCGMAST", "bowdst": "BOWDST"} +_fx_accounts = {"serenitas": "V0NSCLMAMB", "bowdst": "319478"} @dataclass @@ -762,23 +763,21 @@ class FxswapDeal( @classmethod def from_bbg_line(cls, line: dict): if line["Side"] == "S": - near_buy_currency = line["Currency 1"] - near_buy_amount = line["Amount Dealt"] - near_sell_currency = line["Currency 2"] - near_sell_amount = line["Counter Amount"] - far_buy_currency = line["Currency 2"] - far_buy_amount = line["Far Counter Amount"] - far_sell_currency = line["Currency 1"] - far_sell_amount = line["Far Amount Dealt"] - elif line["Side"] == "B": - near_sell_currency = line["Currency 1"] - near_sell_amount = line["Amount Dealt"] - near_buy_currency = line["Currency 2"] - near_buy_amount = line["Counter Amount"] - far_sell_currency = line["Currency 2"] - far_sell_amount = line["Far Counter Amount"] - far_buy_currency = line["Currency 1"] - far_buy_amount = line["Far Amount Dealt"] + key1, key2 = "buy", "sell" + else: + key1, key2 = "sell", "buy" + + d = { + f"near_{key1}_currency": line["Currency 1"], + f"near_{key1}_amount": line["Amount Dealt"], + f"far_{key1}_currency": line["Currency 2"], + f"far_{key1}_amount": line["Far Counter Amount"], + f"near_{key2}_currency": line["Currency 2"], + f"near_{key2}_amount": line["Counter Amount"], + f"far_{key2}_currency": line["Currency 1"], + f"far_{key2}_amount": line["Far Amount Dealt"], + } + sql_line = [None if not value else value for value in list(line.values())] cls._bbg_insert_queue.append(sql_line) return cls( @@ -792,16 +791,9 @@ class FxswapDeal( far_settle_date=datetime.datetime.strptime( line["Value Date Period 2 Currency 1"], "%Y%m%d" ), - near_buy_currency=near_buy_currency, - near_buy_amount=near_buy_amount, - near_sell_currency=near_sell_currency, - near_sell_amount=near_sell_amount, - far_buy_currency=far_buy_currency, - far_buy_amount=far_buy_amount, - far_sell_currency=far_sell_currency, - far_sell_amount=far_sell_amount, fund=_fx_funds[line["ALOC Account 1"]], near_rate=line["Exchange Rate Period 1"], far_rate=line["Exchange Rate Period 2"], - cash_account="V0NSCLMAMB", + cash_account=_fx_accounts[line["ALOC Account 1"]], + **d, ) |
