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