diff options
Diffstat (limited to 'python/analytics')
| -rw-r--r-- | python/analytics/option.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/python/analytics/option.py b/python/analytics/option.py index 6cc8a7a7..75d54a92 100644 --- a/python/analytics/option.py +++ b/python/analytics/option.py @@ -5,6 +5,7 @@ import datetime import math import numpy as np import pandas as pd +from db import dbengine from .black import black from .utils import GHquad @@ -84,6 +85,20 @@ class BlackSwaption(ForwardIndex): self.sigma = None self._cache = {} + @classmethod + def from_tradeid(cls, trade_id): + engine = dbengine('dawndb') + r = engine.execute("SELECT * from swaptions WHERE id=%s", (trade_id,)) + rec = r.fetchone() + if rec is None: + return ValueError("trade_id doesn't exist") + index = Index.from_name(redcode=rec.security_id, trade_date=rec.trade_date) + index.spread = 62 + instance = cls(index, rec.expiration_date, rec.strike, rec.swaption_type.lower()) + instance.notional = rec.notional + instance.pv = rec.price * 1e-2 * rec.notional + return instance + @property def exercise_date(self): return self._exercise_date |
