aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/analytics/option.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/python/analytics/option.py b/python/analytics/option.py
index 2930796e..f75e0a93 100644
--- a/python/analytics/option.py
+++ b/python/analytics/option.py
@@ -345,14 +345,12 @@ class BlackSwaption(ForwardIndex):
orig_spread, orig_sigma = self.index.spread, self.sigma
r = []
actual_params = [p for p in params if hasattr(self, p)]
- vol_surface = vol_surface[self.index.index_type + self.index.series]
+ if isinstance(vol_surface, dict):
+ vol_surface = vol_surface[(self.index.index_type, self.index.series)]
for ss in spread_shock:
self.index.spread = orig_spread * (1 + ss)
# TODO: Vol floored at 20% for now.
- if isinstance(vol_surface, SmoothBivariateSpline):
- curr_vol = max(.2, vol_surface.ev(self.T, math.log(self.moneyness)))
- else:
- curr_vol = max(.2, vol_surface(self.T, math.log(self.moneyness)))
+ curr_vol = max(.2, float(vol_surface(self.T, math.log(self.moneyness))))
for vs in vol_shock:
self.sigma = curr_vol * (1 + vs)
r.append([getattr(self, p) for p in actual_params])