diff options
Diffstat (limited to 'python/swaption_pnl.py')
| -rw-r--r-- | python/swaption_pnl.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/python/swaption_pnl.py b/python/swaption_pnl.py index ae002d2e..fa383608 100644 --- a/python/swaption_pnl.py +++ b/python/swaption_pnl.py @@ -1,5 +1,6 @@ import datetime import pandas as pd +from analytics.utils import get_fx from psycopg2.extensions import connection from risk.swaptions import get_swaption_portfolio from risk.indices import get_index_portfolio @@ -24,7 +25,8 @@ def get_index_pv( if previous_twentieth(d, roll=True) == d.date(): accrued = 0.0 for t in portf.trades: - d, amount = t._fee_leg.cashflows[0] + _, amount = t._fee_leg.cashflows[0] + amount *= get_fx(curr, d) accrued -= amount * t.notional * t.factor * t.fixed_rate * 1e-4 else: accrued = 0.0 @@ -32,13 +34,14 @@ def get_index_pv( nav = 0.0 with conn.cursor() as c: c.execute( - "SELECT upfront FROM cds WHERE trade_date=%s " "AND folder in %s", + "SELECT upfront, currency FROM cds WHERE trade_date=%s " + "AND folder in %s", (prev_day, strategies), ) - for (fee,) in c: - nav += fee + for (fee, curr) in c: + nav += fee * get_fx(curr, d) daily.append(nav + accrued) - pvs.append(portf.pv) + pvs.append(portf.local_pv) dates.append(prev_day) df = pd.DataFrame({"pv": pvs, "daily": daily}, index=pd.to_datetime(dates)) return df |
