diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/mtm_upload.py | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/python/mtm_upload.py b/python/mtm_upload.py index 7abe1e36..87baaf3f 100644 --- a/python/mtm_upload.py +++ b/python/mtm_upload.py @@ -4,6 +4,7 @@ from io import StringIO import csv from serenitas.utils.env import DAILY_DIR from serenitas.utils.remote import SftpClient +from serenitas.analytics.dates import next_business_day import datetime HEADERS = { @@ -94,7 +95,7 @@ def tranche_trades(conn): rename_keys( obj, { - "dealid": "Trade ID", + "dealid": "Swap ID", "cp_code": "Broker Id", "trade_date": "Trade Date", "effective_date": "Effective Date", @@ -113,11 +114,11 @@ def tranche_trades(conn): else: obj["Initial Payment"] = abs(obj["Initial Payment"]) obj["Transaction Code"] = "Pay" - obj["Swap ID"] = obj["Trade ID"] + obj["Trade ID"] = obj["Swap ID"] obj["Product Type"] = "TRN" obj["Transaction Type"] = "NEW" obj["Protection"] = "Buy" if obj["protection"] == "Buyer" else "Sell" - obj["Trader"] = "Serenitas_Trader" + # obj["Trader"] = "Serenitas_Trader" obj["Entity Matrix"] = "Publisher" obj["Definitions Type"] = "ISDA2003Credit" obj["Independent Amount (%)"] = obj["initial_margin_percentage"] @@ -136,6 +137,44 @@ def tranche_trades(conn): return trades +def tranche_term_trades(conn): + with conn.cursor() as c: + trades = [] + c.execute( + "SELECT * FROM terminations where termination_date > %s and dealid LIKE %s", + (datetime.date(2021, 12, 15), "SCCDS%"), + ) + for row in c: + obj = row._asdict() + rename_keys( + obj, + { + "dealid": "Swap ID", + "termination_cp": "Broker Id", + "termination_amount": "1st Leg Notional", + "termination_fee": "Initial Payment", + "termination_date": "Trade Date", + "fee_payment_date": "Settle Date", + }, + ) + if obj["Initial Payment"] >= 0: + obj["Transaction Code"] = "Receive" + else: + obj["Initial Payment"] = abs(obj["Initial Payment"]) + obj["Transaction Code"] = "Pay" + obj["Product Type"] = "TRN" + obj["Transaction Type"] = "NEW" + obj["Entity Matrix"] = "Publisher" + obj["Definitions Type"] = "ISDA2003Credit" + obj["Account Abbreviation"] = "Serenitas-test1" + obj["Broker Id"] = "0000571T" + obj["Remaining Party"] = "0000571T" + obj["Trade ID"] = obj["Swap ID"] + "-" + str(obj["id"]) + obj["Effective Date"] = obj["Trade Date"] + datetime.timedelta(days=1) + trades.append(obj) + return trades + + def build_line(obj, asset_type): return [obj.get(h, None) for h in HEADERS[asset_type]] @@ -154,7 +193,7 @@ def process_upload(trades, asset_type, upload): def upload_trades(conn): - process_upload(tranche_trades(conn), "tranche", upload=False) + process_upload(tranche_term_trades(conn), "tranche", upload=False) if __name__ == "__main__": |
