aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/analytics/utils.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/python/analytics/utils.py b/python/analytics/utils.py
index c0da47f6..885c4db8 100644
--- a/python/analytics/utils.py
+++ b/python/analytics/utils.py
@@ -10,6 +10,7 @@ from pyisda.date import pydate_to_TDate
from pandas.api.types import CategoricalDtype
from pandas.tseries.offsets import CustomBusinessDay
from pandas.tseries.holiday import get_calendar, HolidayCalendarFactory, GoodFriday
+from bbg_helpers import BBG_IP, retrieve_data, init_bbg_session
fed_cal = get_calendar("USFederalHolidayCalendar")
bond_cal = HolidayCalendarFactory("BondCalendar", fed_cal, GoodFriday)
@@ -198,9 +199,15 @@ def get_external_nav(engine, trade_id, value_date=None, trade_type="swaption"):
@lru_cache(32)
-def get_fx(currency: str, value_date: datetime.date):
+def get_fx(value_date: datetime.date, currency: str):
if currency == "USD":
return 1.0
+ if value_date == datetime.date.today():
+ with init_bbg_session(BBG_IP) as session:
+ security = currency.upper() + "USD Curncy"
+ field = "PX_LAST"
+ ref_data = retrieve_data(session, [security], field)
+ return ref_data[security][field]
conn = dbconn("dawndb")
with conn.cursor() as c:
c.execute("SELECT * FROM fx where date=%s", (value_date,))