diff options
Diffstat (limited to 'python/analytics')
| -rw-r--r-- | python/analytics/option.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/python/analytics/option.py b/python/analytics/option.py index 0908e854..899ec07e 100644 --- a/python/analytics/option.py +++ b/python/analytics/option.py @@ -4,6 +4,7 @@ import logging import math import numpy as np import pandas as pd +import warnings from .black import black, Nx from .exceptions import MissingDataError @@ -74,7 +75,12 @@ class BlackSwaption(ForwardIndex): ) def __init__( - self, index, exercise_date, strike, option_type="payer", direction="Long" + self, + index: CreditIndex, + exercise_date: datetime.date, + strike: float, + option_type="payer", + direction="Long", ): ForwardIndex.__init__(self, index, exercise_date, False) self._T = None @@ -124,9 +130,13 @@ class BlackSwaption(ForwardIndex): ind = self.index ind.mark() if kwargs.pop("use_external", False): - self.pv = get_external_nav( - dawn_engine, self._trade_id, self.value_date, "swaptions" - ) + try: + self.pv = get_external_nav( + dawn_engine, self._trade_id, self.value_date, "swaptions" + ) + except ValueError as e: + warnings.warn(str(e)) + self.sigma = 0 return # add None so that we always try everything source_list = source_list + [None] |
