aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/pnl_explain.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/python/pnl_explain.py b/python/pnl_explain.py
index 07309085..1df6983b 100644
--- a/python/pnl_explain.py
+++ b/python/pnl_explain.py
@@ -352,7 +352,7 @@ def get_bond_pv(
for d in dr:
dfs[d] = pd.read_sql_query(
"SELECT figi AS identifier, usd_market_value, int_acc, notional "
- "FROM risk_positions(%s, %s, %s)",
+ "FROM risk_positions(%s, %s, %s, false)",
conn,
params=(d.date(), asset_class, fund),
index_col=["identifier"],
@@ -372,7 +372,7 @@ def get_bond_pv(
index_col=["date", "identifier"],
)
trades = pd.read_sql_query(
- "SELECT trade_date AS date, figi AS identifier, "
+ "SELECT settle_date AS date, figi AS identifier, "
"sum(CASE WHEN buysell THEN -principal_payment ELSE "
"principal_payment END) as principal_payment, "
"sum(CASE WHEN buysell THEN -accrued_payment ELSE "
@@ -380,7 +380,7 @@ def get_bond_pv(
"securities.asset_class "
"FROM bond_trades "
"LEFT JOIN securities USING (identifier) "
- "WHERE trade_date BETWEEN %s AND %s AND fund=%s "
+ "WHERE settle_date BETWEEN %s AND %s AND fund=%s "
"GROUP BY date, figi, securities.asset_class",
conn,
params=(start_date, end_date, fund),
@@ -390,10 +390,11 @@ def get_bond_pv(
if asset_class is not None:
trades = trades[trades.asset_class == asset_class]
trades.drop("asset_class", axis=1, inplace=True)
- df = positions.join([cashflows, trades])
+ df = positions.join(cashflows)
+ df = df.merge(trades, left_index=True, right_index=True, how="outer")
df.interest *= df.notional / 100
df.principal *= df.notional / 100
- return df.drop("notional", axis=1)
+ return df.drop(["notional"], axis=1)
def get_pnl(