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