diff options
Diffstat (limited to 'python/cds_rebook.py')
| -rw-r--r-- | python/cds_rebook.py | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/python/cds_rebook.py b/python/cds_rebook.py index c1dbd3a4..8614540d 100644 --- a/python/cds_rebook.py +++ b/python/cds_rebook.py @@ -24,6 +24,38 @@ def get_outstanding_positions(conn, trade_date, fcm, fund="SERCGMAST"): yield from c +def indices_to_remark(conn, auction_date: datetime.date, fee, accrual_days): + adj_recovery = 1 - fee + accrual_days * 0.05 / 360 + breakpoint() + with conn.cursor() as c1, conn.cursor() as c2: + c1.execute( + "SELECT index, series, old.version, old.indexfactor AS oldfactor, " + "new.indexfactor AS newfactor FROM index_version old " + "LEFT JOIN index_version new USING (index, series) " + "WHERE old.lastdate=%s AND new.version=old.version+1", + (auction_date,), + ) + for index, series, version, oldfactor, newfactor in c1: + c2.execute( + "INSERT into index_quotes_pre(date, index, series, version, " + "tenor, close_price, source)" + "SELECT date, index, series, version+1, " + "tenor, (%s*close_price - %s)/%s, 'MKIT'" + "FROM index_quotes_pre " + "WHERE index=%s AND series=%s AND version=%s AND date=%s AND source='MKIT'", + ( + oldfactor, + (newfactor - oldfactor) * adj_recovery, + newfactor, + index, + series, + version, + auction_date, + ), + ) + conn.commit() + + def default_adjustment(conn, company_id, seniority, end_date): with conn.cursor() as c: c.execute( @@ -46,6 +78,7 @@ PORTFOLIO = { "HYINX": "TRANCHE", "SER_IGCURVE": "CURVE", "HEDGE_CLO": "CLO", + "HEDGE_MAC": "HEDGE_MAC", } @@ -148,7 +181,11 @@ if __name__ == "__main__": # rebook(conn, datetime.date(2020, 5, 26), 171248, "Senior", "WF") # rebook(conn, datetime.date(2020, 5, 26), 171248, "Senior", "GS", "BOWDST") # NMG - rebook(conn, datetime.date(2020, 5, 29), 101056, "Senior", "BAML") - rebook(conn, datetime.date(2020, 5, 29), 101056, "Senior", "WF") - rebook(conn, datetime.date(2020, 5, 29), 101056, "Senior", "GS", "BOWDST") + # rebook(conn, datetime.date(2020, 5, 29), 101056, "Senior", "BAML") + # rebook(conn, datetime.date(2020, 5, 29), 101056, "Senior", "WF") + # rebook(conn, datetime.date(2020, 5, 29), 101056, "Senior", "GS", "BOWDST") + # JCP + rebook(conn, datetime.date(2020, 6, 9), 101154, "Senior", "BAML") + rebook(conn, datetime.date(2020, 5, 9), 101154, "Senior", "WF") + rebook(conn, datetime.date(2020, 5, 9), 101154, "Senior", "GS", "BOWDST") serenitas_pool.putconn(conn) |
