diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/book_bonds.py | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/python/book_bonds.py b/python/book_bonds.py deleted file mode 100644 index 4892972a..00000000 --- a/python/book_bonds.py +++ /dev/null @@ -1,62 +0,0 @@ -from serenitas.ops.trade_dataclasses import BondDeal -from serenitas.utils.db import dbconn -import datetime -from copy import copy - - -def book_bonds(asset_class, old_custodian, new_custodian, trade_date): - conn = BondDeal._conn - trades = [] - with conn.cursor() as c: - c.execute( - "SELECT * FROM list_positions_by_account(%s, %s, True, %s) a LEFT JOIN list_marks(%s) b ON a.figi=b.identifier LEFT JOIN portfolio_folder_mapping pfm ON a.strategy::text=pfm.clean_folder; ", - (trade_date, asset_class, old_custodian, trade_date), - ) - for row in c: - d = row._asdict() - d["principal_payment"] = None - d["accrued_payment"] = None - d["asset_class"] = asset_class - d["cusip"] = d["identifier"] - d["trade_date"] = trade_date - d["settle_date"] = trade_date - d["cp_code"] = "INTERCO" - d["faceamount"] = d["notional"] - buy = BondDeal.from_dict(**d, buysell=True) - sell = BondDeal.from_dict(**d, buysell=False) - buy.stage() - sell.stage() - conn.commit() - - -def book_allocations(asset_class, old_custodian, new_custodian, trade_date): - conn = BondDeal._conn - _insert_queue = [] - with conn.cursor() as c: - c.execute( - "UPDATE bonds SET emailed=True, allocated=True WHERE asset_class=%s AND trade_date=%s AND cp_code='INTERCO' AND not allocated AND not emailed", - (asset_class, trade_date), - ) - for row in c: - _insert_queue.append( - ( - row.id, - row.faceamount, - new_custodian if row.buysell else old_custodian, - True, - ) - ) - c.executemany( - "INSERT INTO bondallocation (tradeid, notional, code, submitted) VALUES (%s, %s, %s, %s)", - _insert_queue, - ) - conn.commit() - - -if __name__ == "__main__": - old_custodian = "BAC" - new_custodian = "UMB" - move_date = datetime.date(2022, 11, 14) - for asset_class in ("Subprime", "CRT", "CLO"): - book_bonds(asset_class, old_custodian, new_custodian, move_date) - book_allocations(asset_class, old_custodian, new_custodian, move_date) |
