aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/swaption_pnl.py13
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