diff options
Diffstat (limited to 'python/Dawn/models.py')
| -rw-r--r-- | python/Dawn/models.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/python/Dawn/models.py b/python/Dawn/models.py index bb4ff002..4bda22d7 100644 --- a/python/Dawn/models.py +++ b/python/Dawn/models.py @@ -42,10 +42,15 @@ CDS_STRAT = ENUM('HEDGE_CSO', 'HEDGE_CLO', 'HEDGE_MAC', 'HEDGE_MBS', SWAPTION_STRAT = ENUM('IGPAYER', 'IGREC', 'HYPAYER', 'HYREC', name='swaption_strat') +FUTURE_STRAT = ENUM('M_STR_MAV', 'M_MTG_IO', 'M_STR_MEZZ', 'M_MTG_RW', 'SER_ITRXCURVE', + name='future_strat') + SWAPTION_TYPE = ENUM('PAYER', 'RECEIVER', name='swaption_type') REPO_TYPE = ENUM('REPO', 'REVERSE REPO', name='repo_type') +FUTURE_TYPE = ENUM('FUTURE', 'CFD', 'SYNTHETIC-FUTURE', 'LME-FORWARD', name='future_type') + CALL_NOTICE = ENUM('24H', '48H', '3D', '4D', '5D', '6D', '1W', '8D', '9D', '10D', '2W', '1M', '2M', name='call_notice') @@ -208,6 +213,34 @@ class SwaptionDeal(db.Model): currency = db.Column(CCY, nullable=False) counterparty = db.relationship(Counterparties) +class FutureDeal(db.Model): + __tablename__ = 'futures' + 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) + folder = db.Column(FUTURE_STRAT, nullable=False) + custodian = db.Column(db.String(12), default='INTBR', nullable=False) + cashaccount = db.Column(db.String(10), default='IANSCLMAFU', nullable=False) + cp_code = db.Column(db.String(12), db.ForeignKey('counterparties.code'), + info={'choices': [('IBKRNY', 'Interactive Brokers')], + 'label': 'counterparty'}, 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')], + 'coerce': lambda x: bool(int(x)) \ + if x is not None else x}) + bbg_ticker = db.Column(db.String(32), nullable=False) + quantity = db.Column(db.Float, nullable=False) + price = db.Column(db.Float, nullable=False) + commission = db.Column(db.Float) + swap_type = db.Column(FUTURE_TYPE, nullable=False) + security_desc = db.Column(db.String(32), nullable=False) + maturity = db.Column(db.Date, nullable=False) + currency = db.Column(CCY, nullable=False) + exchange = db.Column(db.String(3), default='CME', nullable=False) + counterparty = db.relationship(Counterparties) + BaseModelForm = model_form_factory(FlaskForm) class ModelForm(BaseModelForm): @classmethod |
