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