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