diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/external_deriv_marks.py | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/python/external_deriv_marks.py b/python/external_deriv_marks.py index 7728b28e..0c47457e 100644 --- a/python/external_deriv_marks.py +++ b/python/external_deriv_marks.py @@ -89,6 +89,26 @@ def baml_navs(date: datetime.date = None): return pd.concat(d) +def bnp_navs(date: datetime.date = None): + d = {} + date_str = date.strftime("%Y%m%d") if date else "" + for fname in (DAILY_DIR / "BNP_reports").glob(f"Exposure*{date_str}.XLS"): + try: + df = pd.read_excel(fname, skiprows=7) + except ValueError: + continue + df["Trade Ref"] = df["Trade Ref"].str.replace("MBO-", "") + df = df.set_index("Trade Ref") + df["Trade Date"] = pd.to_datetime(df["Trade Date"], dayfirst=True) + df = df[["Trade Date", "Buy/Sell", "Notional 1", "Exposure Amount (Agmt Ccy)"]] + df.columns = ["trade_date", "buy/sell", "notional", "nav"] + d[datetime.datetime.strptime(fname.stem[-8:], "%Y%m%d").date()] = df + df = pd.concat(d) + # nav is from BNP's point of view + df.nav *= -1.0 + return df + + if __name__ == "__main__": import argparse import logging @@ -113,9 +133,9 @@ 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"]: + for cp in ["MS", "CITI", "GS", "BAML", "BNP"]: logger.info(cp) - if cp != "CITI": + if date and cp != "CITI": date_arg = (date - BDay()).date() else: date_arg = date |
