diff options
Diffstat (limited to 'python/external_deriv_marks.py')
| -rw-r--r-- | python/external_deriv_marks.py | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/python/external_deriv_marks.py b/python/external_deriv_marks.py index 6cbe1b26..45927ff2 100644 --- a/python/external_deriv_marks.py +++ b/python/external_deriv_marks.py @@ -4,6 +4,7 @@ import re from env import DAILY_DIR from collateral.baml_isda import load_excel from collateral.citi import load_pdf, get_col +from collateral.jpm import load_positions from dates import bus_day from analytics.utils import next_business_day, prev_business_day @@ -241,6 +242,36 @@ def cs_navs(date: datetime.date = None, fund: str = "Serenitas"): return df +def jpm_navs(date: datetime.date = None, fund: str = "BowdSt"): + DATA_DIR = DAILY_DIR / fund / "JPM_reports" + if date: + glob_str = f"{date:%y%m%d}" + else: + glob_str = "*" + g = DATA_DIR.glob(f"CSCFTCSTMT-*-{glob_str}-909271_2.pdf") + d = {} + for fname in g: + pages = load_pdf(fname, pages=True) + df = load_positions(pages[4]) + df = df[ + ["Deal ID", + "Trade Date", + "Long/ Short", + "Pay Notional", + "MTM Amount", + "MTM Amount", + "IM Amount"]] + df = df.set_index("Deal ID") + df.columns = COLUMNS + date = datetime.datetime.strptime(fname.stem.split("-")[2], "%y%m%d").date() + d[date] = df + if d: + df = pd.concat(d) + else: + df = pd.DataFrame(columns=COLUMNS) + return df + + def get_ia(date: datetime.date = None, fund: str = "Serenitas"): date = next_business_day(date) glob_str = f"{date:%m%d%Y}" @@ -306,7 +337,7 @@ if __name__ == "__main__": logging.basicConfig() logger = logging.getLogger("external_marks") logger.setLevel(logging.DEBUG if args.debug else logging.INFO) - for cp in ("MS", "CITI", "GS", "BAML", "BNP", "CS"): + for cp in ("MS", "CITI", "GS", "BAML", "BNP", "CS", "JPM"): for fund in ("Serenitas", "Brinker", "BowdSt"): logger.info(f"{cp} at {fund}") df = globals()[f"{cp.lower()}_navs"](date, fund=fund) |
