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