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