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