diff options
Diffstat (limited to 'python/analytics')
| -rw-r--r-- | python/analytics/option.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/python/analytics/option.py b/python/analytics/option.py index 28aad20f..6bde2b26 100644 --- a/python/analytics/option.py +++ b/python/analytics/option.py @@ -201,7 +201,7 @@ class BlackSwaption(ForwardIndex): def pv(self): """compute pv using black-scholes formula""" if self.sigma == 0: - return self.intrinsic_value + return self.intrinsic_value * self.index.factor else: strike_tilde = self.index.fixed_rate * 1e-4 + self._G / self.forward_annuity * self.df return self._direction * self.forward_annuity * \ @@ -234,7 +234,7 @@ class BlackSwaption(ForwardIndex): elif val == self.intrinsic_value: self.sigma = 0 return - + val = val * self.index.factor def handle(x): self.sigma = x return self._direction * (self.pv - val) @@ -331,7 +331,7 @@ class BlackSwaption(ForwardIndex): @property def breakeven(self): - pv = self._direction * self.pv / self.notional + pv = self._direction * self.pv / (self.notional * self.index.factor) if self.index._quote_is_price: if self.option_type == "payer": return 100 * (1 - self._G - pv) @@ -415,7 +415,7 @@ class Swaption(BlackSwaption): def pv(self): T = self.T if T == 0.: - return self.notional * self.intrinsic_value + return self.notional * self.intrinsic_value * self.index.factor sigmaT = self.sigma * math.sqrt(T) tilt = np.exp(-0.5 * sigmaT**2 + sigmaT * self._Z) ctx = init_context(self.index._yc, self.exercise_date, self.exercise_date_settle, @@ -440,7 +440,7 @@ class Swaption(BlackSwaption): val, err = quad(my_pv, Zstar, 12) elif self.option_type == "receiver": val, err = quad(my_pv, Zstar, -12) - return self._direction * self.notional * val * self.df + return self._direction * self.notional * val * self.df * self.index.factor @pv.setter def pv(self, val): |
