diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/Dawn/models.py | 19 | ||||
| -rw-r--r-- | python/Dawn/templates/swaption_blotter.html | 2 |
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> |
