aboutsummaryrefslogtreecommitdiffstats
path: root/python/pnl_explain.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pnl_explain.py')
-rw-r--r--python/pnl_explain.py20
1 files changed, 9 insertions, 11 deletions
diff --git a/python/pnl_explain.py b/python/pnl_explain.py
index 0a3642ad..07309085 100644
--- a/python/pnl_explain.py
+++ b/python/pnl_explain.py
@@ -82,7 +82,9 @@ def get_swaption_pv(
dates = []
for d in dr:
prev_day = (d - bus_day).date()
- portf = get_swaption_portfolio(prev_day, conn, fund, "OPTIONS", **kwargs)
+ portf = get_swaption_portfolio(
+ prev_day, conn, fund=fund, portfolio="OPTIONS", **kwargs
+ )
nav = 0.0
# add terminations
with conn.cursor() as c:
@@ -346,24 +348,20 @@ def get_bond_pv(
**kwargs,
):
dr = pd.bdate_range(start_date - bus_day, end_date, freq=bus_day)
- dfs, dfs_1 = {}, {}
+ dfs = {}
for d in dr:
dfs[d] = pd.read_sql_query(
- "SELECT figi AS identifier, usd_market_value, int_acc "
+ "SELECT figi AS identifier, usd_market_value, int_acc, notional "
"FROM risk_positions(%s, %s, %s)",
conn,
params=(d.date(), asset_class, fund),
index_col=["identifier"],
)
- dfs_1[d] = pd.read_sql_query(
- "SELECT figi AS identifier, notional FROM list_positions(%s, %s, False, %s)",
- conn,
- params=(d.date(), asset_class, fund),
- index_col=["identifier"],
- )
+ if dfs[d].empty:
+ dfs[d] = pd.DataFrame(
+ 0, index=[0], columns=["usd_market_value", "int_acc", "notional"]
+ )
positions = pd.concat(dfs, names=["date", "identifier"])
- notionals = pd.concat(dfs_1, names=["date", "identifier"])
- positions = positions.join(notionals)
cashflows = pd.read_sql_query(
"SELECT identifier, prev_cpn_date AS date, interest, principal "
"FROM factors_history fh "