diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/Dawn/models.py | 65 |
1 files changed, 46 insertions, 19 deletions
diff --git a/python/Dawn/models.py b/python/Dawn/models.py index 239ea885..e7c96a3b 100644 --- a/python/Dawn/models.py +++ b/python/Dawn/models.py @@ -33,6 +33,11 @@ class Counterparties(db.Model): 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', name='bond_strat') + +CDS_STRAT = ENUM('HEDGE_CSO', 'HEDGE_CLO', 'HEDGE_MAC', 'HEDGE_MBS', + 'SER_IGSNR', 'SER_IGMEZ', 'SER_IGEQY', 'SER_IGINX', 'SER_HYSNR', + 'SER_HYMEZ', 'SER_HYEQY', 'SER_HYINX', 'SER_IGCURVE', 'MBSCDS', name='cds_strat') + ASSET_CLASS = ENUM('CSO', 'Subprime', 'CLO', 'Tranches', 'Futures', 'Cash', 'FX', 'Cleared', name='asset_class') ACTION = ENUM('NEW', 'UPDATE', 'CANCEL', name='action') @@ -41,6 +46,16 @@ CCY = ENUM('USD', 'CAD', 'EUR', 'YEN', name='currency') BBG_TYPE = ENUM('Mtge', 'Corp', name='bbg_type') +SWAP_TYPE = ENUM('CD_INDEX', 'CD_INDEX_TRANCHE', 'CD_BAKSET_TRANCHE', 'ABS_CDS', name='swap_type') + +ISDA = ENUM('ISDA2014', 'ISDA2003Cred', name='isda') + +DAY_COUNT = ENUM('ACT/360', 'ACT/ACT', '30/360', 'ACT/365', name='day_count') + +BUS_DAY_CONVENTION = ENUM('Modified Following', 'Following', 'Modified Preceding', 'Preceding', + 'Second-Day-After', 'End-of-Month', name='bus_day_convention') +PROTECTION = ENUM('Buyer', 'Seller', name='protection') + class BondDeal(db.Model): __tablename__ = 'bonds' id = db.Column('id', db.Integer, primary_key=True) @@ -78,25 +93,37 @@ class BondDeal(db.Model): counterparty = db.relationship(Counterparties) __table_args__= (db.CheckConstraint('cusip is not Null or isin is not Null'),) -class Position(db.Model): - date = db.Column(db.Date, primary_key=True) - isin = db.Column(db.String(12)) - cusip = db.Column(db.String(9)) - identifier = db.Column(db.String(12), primary_key=True) - notional = db.Column(db.Float) - currency = db.Column(CCY) - factor = db.Column(db.Float) - price = db.Column(db.Float) - market_value = db.Column(db.Float) - accrued = db.Column(db.Float) - days_accrued = db.Column(db.Integer) - start_accrued_date = db.Column(db.Date) - factor_pay_date = db.Column(db.Date) - paydown = db.Column(db.Float) - writedown = db.Column(db.Float) - bbg_type = db.Column(BBG_TYPE) - strategy = db.Column(BOND_STRAT) - +class CDSDeal(db.Model): + __tablenames__ = 'cds' + 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(CDS_STRAT, nullable = False) + custodian = db.Column(db.String(12), default='ML', nullable=False) + cashaccount = db.Column(db.String(10), default='MLNSCLMASW', nullable=False) + cp_code = db.Column(db.String(12)) + trade_date = db.Column(db.Date, nullable = False) + effective_date = db.Column(db.Date, nullable = False) + maturity = db.Column(db.Date, nullable = False) + currency = db.Column(CCY, nullable = False) + payment_rolldate = db.Column(BUS_DAY_CONVENTION, nullable = False) + notional = db.Column(db.Float, nullable = False) + fixed_rate = db.Column(db.Float, nullable = False) + day_count = db.Column(DAY_COUNT, nullable = False) + frequency = db.Column(db.SmallInteger, default=4, nullable = False) + protection = db.Column(PROTECTION, nullable = False) + security_id = db.Column(db.String(12), nullable = False) + security_desc = db.Column(db.String(32), nullable = False) + upfront = db.Column(db.Float, nullable = False) + upfront_settle_date = db.Column(db.Date, nullable = False) + swap_type = db.Column(SWAP_TYPE, nullable = False) + attach = db.Column(db.SmallInteger) + detach = db.Column(db.SmallInteger) + clearing_facility = db.Column(db.String(12), default='ICE-CREDIT') + isda_definition = db.Column(ISDA) + __table_args__ = (db.CheckConstraint("swap_type!='CD_INDEX_TRANCHE' or " \ + "(attach is not NULL and detach is not NULL)"),) BaseModelForm = model_form_factory(Form) class ModelForm(BaseModelForm): |
