aboutsummaryrefslogtreecommitdiffstats
path: root/python/analytics/index.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/analytics/index.py')
-rw-r--r--python/analytics/index.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/python/analytics/index.py b/python/analytics/index.py
index a9b6ab6a..87f5471d 100644
--- a/python/analytics/index.py
+++ b/python/analytics/index.py
@@ -8,8 +8,6 @@ import warnings
from dateutil.relativedelta import relativedelta
from pyisda.legs import ContingentLeg, FeeLeg
-from quantlib.settings import Settings
-from quantlib.time.api import Date, Actual365Fixed
from termcolor import colored
from pandas.tseries.offsets import BDay
from sqlalchemy import exc
@@ -21,6 +19,7 @@ from bbg_helpers import BBG_IP, retrieve_data, init_bbg_session
from yieldcurve import get_curve, rate_helpers, YC, ql_to_jp
from weakref import WeakSet
+
def g(index, spread, exercise_date, pv=None):
"""computes the strike clean price using the expected forward yield curve. """
step_in_date = exercise_date + datetime.timedelta(days=1)
@@ -173,7 +172,7 @@ class Index(object):
@property
def flat_hazard(self):
sc_data = self._sc.inspect()['data']
- ## conversion to continuous compounding
+ # conversion to continuous compounding
return sc_data[0][1]
@property
@@ -210,7 +209,7 @@ class Index(object):
self._sc = SpreadCurve(
self.value_date, self._yc, self.start_date,
self._step_in_date, self._cash_settle_date,
- [self.end_date], array.array('d',[self.fixed_rate*1e-4]),
+ [self.end_date], array.array('d', [self.fixed_rate*1e-4]),
array.array('d', [self._clean_pv]),
array.array('d', [self.recovery]))
self._risky_annuity = self._fee_leg.pv(
@@ -269,7 +268,7 @@ class Index(object):
rh.quote += 1e-4
ql_yc = YC(helpers)
self._yc = ql_to_jp(ql_yc)
- self._update() ## to force recomputation
+ self._update() # to force recomputation
new_pv = self.pv
# for r in self._helpers:
# r.quote -= 1e-4
@@ -279,7 +278,7 @@ class Index(object):
@property
def rec_risk(self):
- old_pv, old_recovery = self.pv, self.recovery
+ old_recovery = self.recovery
self.recovery = old_recovery - 0.01
self._update()
pv_minus = self.pv
@@ -315,7 +314,7 @@ class Index(object):
self._value_date = d
self._step_in_date = d + datetime.timedelta(days=1)
self._accrued = self._fee_leg.accrued(self._step_in_date)
- self._cash_settle_date = pd.Timestamp(self._value_date) + 3* BDay()
+ self._cash_settle_date = pd.Timestamp(self._value_date) + 3 * BDay()
if self._spread is not None:
self._update()
self.notify()
@@ -329,7 +328,7 @@ class Index(object):
if self._original_clean_pv is None:
raise ValueError("original pv not set")
else:
- ## TODO: handle factor change
+ # TODO: handle factor change
days_accrued = (self.value_date - self._trade_date).days / 360
return - self._direction * self.notional * self.factor * \
(self._clean_pv - self._original_clean_pv -
@@ -397,7 +396,7 @@ class Index(object):
coupon = df.coupon[0]
if tenor is None:
tenor = df.tenor[0]
- index_type = index.upper() if index else df.loc[0,'index']
+ index_type = index.upper() if index else df.loc[0, 'index']
series = series if series else df.series.iat[0]
df.loc[df.lastdate.isnull(), 'lastdate'] = maturity
except exc.DataError as e:
@@ -408,7 +407,7 @@ class Index(object):
instance = cls(value_date, maturity, recovery, coupon, notional,
index_type == "HY", df.issue_date[0])
instance._version = tuple((ld.date(), factor / 100, version) for ld, factor, version in \
- df[['lastdate', 'indexfactor', 'version']].itertuples(index=False))
+ df[['lastdate', 'indexfactor', 'version']].itertuples(index=False))
instance.index_type = index_type
instance.series = series
instance.tenor = tenor
@@ -428,7 +427,7 @@ class Index(object):
@classmethod
def from_tradeid(cls, trade_id):
- engine = dbengine('dawndb')
+ engine = dbengine('dawndb')
r = engine.execute("""
SELECT * FROM cds
LEFT JOIN index_desc
@@ -465,7 +464,7 @@ class Index(object):
accrued_str = "Accrued ({} Day)".format(self.days_accrued)
s = ["{:<20}\tNotional {:>5}MM {}\tFactor {:>28}".format("Buy Protection"\
- if self._direction == -1 \
+ if self._direction == -1
else "Sell Protection",
self.notional/1_000_000,
self.currency,
@@ -482,7 +481,7 @@ class Index(object):
[None, None, None, None]]
s += build_table(rows, format_strings, "{:<20}{:>19}\t\t{:<20}{:>15}")
s += ["",
- colored("Calculator", attrs = ['bold'])]
+ colored("Calculator", attrs=['bold'])]
rows = [["Valuation Date", self.value_date],
["Cash Settled On", self._cash_settle_date]]
format_strings = [[None, '{:%m/%d/%y}'],
@@ -511,7 +510,7 @@ class ForwardIndex(object):
self.forward_date = forward_date.date()
else:
self.forward_date = forward_date
- self.exercise_date_settle = pd.Timestamp(forward_date) + 3* BDay()
+ self.exercise_date_settle = pd.Timestamp(forward_date) + 3 * BDay()
self.df = index._yc.discount_factor(self.exercise_date_settle)
self._update()
if observer: