aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/Dawn/models.py19
-rw-r--r--python/Dawn/templates/swaption_blotter.html2
2 files changed, 15 insertions, 6 deletions
diff --git a/python/Dawn/models.py b/python/Dawn/models.py
index 7a124d9b..badfde90 100644
--- a/python/Dawn/models.py
+++ b/python/Dawn/models.py
@@ -36,6 +36,8 @@ class Accounts(db.Model):
cash_account = db.Column(db.String)
counterparty = db.Column(db.String(12), db.ForeignKey('counterparties.code'))
+PORTFOLIO = ENUM('OPTIONS', 'IR', 'MORTGAGES', name='portfolio')
+
BOND_STRAT = ENUM('M_STR_MAV', 'M_STR_MEZZ', 'CSO_TRANCH',
'M_CLO_BB20', 'M_CLO_AAA', 'M_CLO_BBB', 'M_MTG_IO', 'M_MTG_THRU',
'M_MTG_GOOD', 'M_MTG_B4PR', 'M_MTG_RW', 'M_MTG_FP', 'M_MTG_LMG',
@@ -46,7 +48,7 @@ CDS_STRAT = ENUM('HEDGE_CSO', 'HEDGE_CLO', 'HEDGE_MAC', 'HEDGE_MBS',
'SER_HYMEZ', 'SER_HYEQY', 'SER_HYINX', 'SER_IGCURVE', 'MBSCDS',
'IGOPTDEL', 'HYOPTDEL', 'SER_ITRXCURVE', name='cds_strat')
-SWAPTION_STRAT = ENUM('IGPAYER', 'IGREC', 'HYPAYER', 'HYREC',
+SWAPTION_STRAT = ENUM('IGPAYER', 'IGREC', 'HYPAYER', 'HYREC', 'STEEP',
name='swaption_strat')
FUTURE_STRAT = ENUM('M_STR_MAV', 'M_MTG_IO', 'M_STR_MEZZ', 'M_MTG_RW', 'SER_ITRXCURVE',
@@ -57,8 +59,11 @@ CASH_STRAT = ENUM('M_CSH_CASH', 'MBSCDSCSH', 'SER_IGCVECSH', 'SER_ITRXCVCSH', 'C
'IRDEVCSH',
name='cash_strat')
-SWAPTION_TYPE = ENUM('PAYER', 'RECEIVER',
- name='swaption_type')
+OPTION_TYPE = ENUM('PAYER', 'RECEIVER',
+ name='option_type')
+
+SWAPTION_TYPE = ENUM('CD_INDEX_OPTION', 'SWAPTION', name='swaption_type')
+SETTLEMENT_TYPE = ENUM('Delivery', 'Cash', name='settlement_type')
REPO_TYPE = ENUM('REPO', 'REVERSE REPO', name='repo_type')
FUTURE_TYPE = ENUM('FUTURE', 'CFD', 'SYNTHETIC-FUTURE', 'LME-FORWARD', name='future_type')
@@ -204,25 +209,28 @@ class RepoDeal(db.Model):
"haircut is NULL and weighted_amount is NOT NULL)"),
db.CheckConstraint("cusip is NOT NULL or isin is NOT NULL"))
+
class SwaptionDeal(db.Model):
__tablename__ = 'swaptions'
id = db.Column('id', db.Integer, primary_key=True)
dealid = db.Column(db.String(28))
lastupdate = db.Column(db.DateTime, server_default=db.func.now(), onupdate=db.func.now())
action = db.Column(ACTION)
+ portfolio = db.Column(PORTFOLIO)
folder = db.Column(SWAPTION_STRAT, nullable=False)
custodian = db.Column(db.String(12), default='NONE', nullable=False)
cashaccount = db.Column(db.String(10), default='SGNSCLMASW', nullable=False)
cp_code = db.Column(db.String(12), db.ForeignKey('counterparties.code'),
info={'choices': [(None, '')],
'label': 'counterparty'}, nullable=False)
+ swap_type = db.Column(SWAPTION_TYPE, nullable=False)
trade_date = db.Column(db.Date, nullable=False)
settle_date = db.Column(db.Date, nullable=False)
- buysell = db.Column(db.Boolean, nullable=False, info={'choices':[(0, 'sell'), (1, 'buy')],
+ buysell = db.Column(db.Boolean, nullable=False, info={'choices': [(0, 'sell'), (1, 'buy')],
'coerce': lambda x: bool(int(x))
if x is not None else x})
notional = db.Column(db.Float, nullable=False)
- swaption_type = db.Column(SWAPTION_TYPE, nullable=False)
+ option_type = db.Column(OPTION_TYPE, nullable=False)
strike = db.Column(db.Float, nullable=False)
price = db.Column(db.Float, nullable=False)
expiration_date = db.Column(db.Date, nullable=False)
@@ -241,6 +249,7 @@ class SwaptionDeal(db.Model):
counterparty = db.relationship(Counterparties, foreign_keys=[cp_code])
termination_counterparty = db.relationship(Counterparties, foreign_keys=[termination_cp])
+
class FutureDeal(db.Model):
__tablename__ = 'futures'
id = db.Column('id', db.Integer, primary_key=True)
diff --git a/python/Dawn/templates/swaption_blotter.html b/python/Dawn/templates/swaption_blotter.html
index 73abbb26..ec827059 100644
--- a/python/Dawn/templates/swaption_blotter.html
+++ b/python/Dawn/templates/swaption_blotter.html
@@ -25,7 +25,7 @@
<td>{{trade.settle_date}}</td>
<td>{% if trade.buysell %}Buy{% else %}Sell{% endif %}</td>
<td>{{"{0:,.2f}".format(trade.notional)}}</td>
- <td>{{trade.swaption_type}}</td>
+ <td>{{trade.option_type}}</td>
<td>{{trade.expiration_date}}</td>
<td>{{trade.strike}}</td>
<td>{{trade.price}}</td>