diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/analytics/option.py | 8 |
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]) |
