aboutsummaryrefslogtreecommitdiffstats
path: root/python/recon_bowdst.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/recon_bowdst.py')
-rw-r--r--python/recon_bowdst.py61
1 files changed, 42 insertions, 19 deletions
diff --git a/python/recon_bowdst.py b/python/recon_bowdst.py
index a8326224..a37d74ac 100644
--- a/python/recon_bowdst.py
+++ b/python/recon_bowdst.py
@@ -3,9 +3,6 @@ from serenitas.utils.db import dbconn
dawndb = dbconn("dawndb")
-
-# Bonds
-
df = pd.read_excel("/home/serenitas/flint/rec.xlsx")
security_balance = df[df["Asset Type"] == "FIXED INCOME SECURITIES"][
@@ -14,22 +11,48 @@ security_balance = df[df["Asset Type"] == "FIXED INCOME SECURITIES"][
print(f"The current security balance is {security_balance}")
bowd_bond_trades = df[df["CUSIP"].notnull()]
-db_bond_trades = pd.read_sql_query(
- "select * from risk_positions('2021-02-25', null, 'BOWDST')", dawndb
-)
-bowd_bond_trades.merge(
- db_bond_trades, left_on="Mellon Security ID", right_on="identifier", how="outer"
-)[
- [
- "description",
- "identifier",
- "notional",
- "factor",
- "Shares/Par",
- "Base Market Value",
- "usd_market_value",
+asset_classes = ["Subprime", "CRT", "CLO"]
+
+for asset in asset_classes:
+ db_bond_trades = pd.read_sql_query(
+ f"select * from risk_positions('2021-02-26', %s, 'BOWDST')",
+ dawndb,
+ params=(asset,),
+ )
+
+ new_df = bowd_bond_trades.merge(
+ db_bond_trades, left_on="Mellon Security ID", right_on="identifier", how="right"
+ )[
+ [
+ "description",
+ "identifier",
+ "notional",
+ "factor",
+ "Shares/Par",
+ "Base Market Value",
+ "usd_market_value",
+ ]
]
-]
+ new_df["db_notional"] = new_df["Shares/Par"] * new_df["factor"]
+# print(new_df)
+
+date = "2021-02-28"
-# market value differences
+tranche_trades = pd.read_sql_query(
+ f"select security_desc, maturity, orig_attach, orig_detach, sum(notional * tranche_factor) as db_notional, sum(admin_notional) as admin_notional, sum(serenitas_clean_nav) as db_mv, sum(admin_clean_nav) as bowd_mv from tranche_risk_bowdst where date=%s group by security_desc, maturity, orig_attach, orig_detach ;",
+ dawndb,
+ params=(date,),
+)
+
+cdx_trades = pd.read_sql_query(
+ f"select security_id, security_desc, index, series, version, maturity, globeop_notional as admin_notional, notional * factor as db_notional, clean_nav as db_nav, globeop_nav as admin_nav from list_cds_marks(%s, null, 'BOWDST')",
+ dawndb,
+ params=(date,),
+)
+
+cdx_swaption_trades = pd.read_sql_query(
+ f"select security_id, option_type, strike, expiration_date, sum(serenitas_nav) as db_mv, sum(globeop_nav) as admin_mv from list_swaption_positions_and_risks(%s, 'BOWDST') group by security_id, option_type, strike, expiration_date;",
+ dawndb,
+ params=(date,),
+)