diff options
Diffstat (limited to 'python/analytics/option.py')
| -rw-r--r-- | python/analytics/option.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/python/analytics/option.py b/python/analytics/option.py index d76c1888..cf02cbeb 100644 --- a/python/analytics/option.py +++ b/python/analytics/option.py @@ -112,6 +112,30 @@ class BlackSwaption(ForwardIndex): instance._original_pv = instance.pv return instance + def mark(self, source_list=[], surface_id=None, **args): + ind = self.index + self.index.mark() + # add None so that we always try everything + source_list = source_list + [None] + k = ind.index_type, ind.series, ind.tenor, ind.value_date + vs = BlackSwaptionVolSurface(*k, **args) + if surface_id is None: + for source in source_list: + if len(vs.list(source, self.option_type)) >=1: + break + else: + raise ValueError("No market data available for this day") + surface_id = vs.list(source, self.option_type)[1] + self.sigma = float(vs[surface_id](self.T, np.log(self.moneyness))) + + @property + def value_date(self): + return self.index.value_date + + @value_date.setter + def value_date(self, d): + self.index.value_date = d + @property def exercise_date(self): return self.forward_date |
