diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/pnl_explain.py | 11 |
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( |
