Exemple #1
0
    def get_data(
        self,
        id,
        curncy="",
        multiplier=1,
        settlement_delay=2,
        security_type=1,
        sector=None,
        sectorid=None,
        group=None,
        groupid=None,
        industry_code=None,
        commit=True,
        **kwargs
    ):
        if not industry_code:
            # TODO remove thid import and obtain moel from self.model
            from jflow.db.instdata.models import IndustryCode as secmodel

            # secmodel = self.model._name_map.get('industry_code')[0]
            industry_code = secmodel.objects.create(sector, sectorid, group, groupid)
            if industry_code:
                industry_code = industry_code.id
        data = super(EquityManager, self).get_data(id, **kwargs)
        data.update(
            {
                "industry_code": industry_code,
                "curncy": convert("curncy", curncy),
                "multiplier": self.safefloat(multiplier, 1),
                "settlement_delay": self.safeint(settlement_delay, 2),
                "security_type": convert("security_type", security_type),
            }
        )
        return data
Exemple #2
0
 def get_or_create(self,
                   commit = True,
                   type = None,
                   country = None,
                   default_vendor = None,
                   **kwargs):
     '''
     Override get_or_create.
     
     kwargs must contain:
         code
         country
         default_vendor
     
     Optional
         type
         tags         
     '''
     code = kwargs.pop('code',None)
     if not code:
         raise ValueError('cannot add data id, code not specified')
     code = slugify(code.upper())
     id   = None
     try:
         id = self.get(code = code)
         created = False
         if default_vendor:
             default_vendor  = convert('vendor', default_vendor)
     except:
         isin = kwargs.get('isin',None)
         if isin:
             id = self.filter(isin = isin)
             if id.count() == 1:
                 id = id[0]
                 created = False
             elif id:
                 return None,False
             else:
                 id = None
         if not id:
             id = None
             default_vendor  = convert('vendor', default_vendor or settings.DEFAULT_VENDOR_FOR_SITE)
             created = True
     
     if default_vendor:
         default_vendor = default_vendor.id
     ct, model = self.ctmodel(type)
     country = convert('country', country)
     
     model = model or self.model
         
     id = model.objects.create(id,
                               commit = commit,
                               code = code,
                               country = country,
                               default_vendor = default_vendor,
                               **kwargs)
     return id,created
Exemple #3
0
 def get_data(self, id,
              curncy = '',
              value_date = None,
              **kwargs):
     data = super(FwdCashManager,self).get_data(id, **kwargs)
     value_date = convert('bonddate',value_date)
     data.update({'curncy': convert('curncy',curncy),
                  'value_date': value_date})
     return data
Exemple #4
0
    def get_or_create(self, commit=True, type=None, country=None, default_vendor=None, **kwargs):
        """
        Override get_or_create.
        
        kwargs must contain:
            code
            country
            default_vendor
        
        Optional
            type
            tags         
        """
        code = kwargs.pop("code", None)
        if not code:
            raise ValueError("cannot add data id, code not specified")
        code = slugify(code.upper())
        id = None
        try:
            id = self.get(code=code)
            created = False
            if default_vendor:
                default_vendor = convert("vendor", default_vendor)
        except:
            isin = kwargs.get("isin", None)
            if isin:
                id = self.filter(isin=isin)
                if id.count() == 1:
                    id = id[0]
                    created = False
                elif id:
                    return None, False
                else:
                    id = None
            if not id:
                id = None
                default_vendor = convert("vendor", default_vendor or settings.DEFAULT_VENDOR_FOR_SITE)
                created = True

        if default_vendor:
            default_vendor = default_vendor.id
        ct, model = self.ctmodel(type)
        country = convert("country", country)

        model = model or self.model

        id = model.objects.create(
            id, commit=commit, code=code, country=country, default_vendor=default_vendor, **kwargs
        )
        return id, created
Exemple #5
0
    def get_data(
        self,
        id,
        curncy="",
        bondclass__code=None,
        collateral_type=None,
        announce_date=None,
        first_settle_date=None,
        first_coupon_date=None,
        accrual_date=None,
        maturity_date=None,
        multiplier=None,
        settlement_delay=None,
        coupon=None,
        month_frequency=0,
        day_count=None,
        callable=False,
        putable=False,
        commit=True,
        **kwargs
    ):
        data = super(BondManager, self).get_data(id, **kwargs)
        ccy = convert("curncy", curncy)

        bck = {}
        for k, v in kwargs.items():
            ks = k.split("__")
            if len(ks) == 2 and ks[0] == "bondclass":
                bck[ks[1]] = v

        bc = bck.pop("bondcode", None)
        co = data.get("country", None)
        bc = convert("bondclass", bc, curncy=ccy, country=co, **bck)

        data.update(
            {
                "curncy": ccy,
                "bond_class": bc.id,
                "announce_date": convert("bonddate", announce_date),
                "first_settle_date": convert("bonddate", first_settle_date),
                "first_coupon_date": convert("bonddate", first_coupon_date),
                "accrual_date": convert("bonddate", accrual_date),
                "maturity_date": convert("bonddate", maturity_date),
                "collateral_type": convert("collateral", collateral_type).id,
                "multiplier": self.safefloat(multiplier, 0.01),
                "settlement_delay": self.safeint(settlement_delay, 3),
                "coupon": self.safefloat(coupon, 0),
                "month_frequency": self.safeint(month_frequency, 0),
                "day_count": convert("daycount", day_count),
                "callable": callable,
                "putable": putable,
            }
        )
        return data
Exemple #6
0
    def get_data(self, id, 
                 first_trade_date,
                 last_trade_date,
                 first_notice_date,
                 first_delivery_date,
                 last_delivery_date,
                  **kwargs):
                
                
                
            BLB = kwargs.get('BLB' , None)
                                

            data = super(FutureManager,self).get_data(id, **kwargs)
            contract = convert('future_contract', BLB)
            data.update({'contract' : contract.id,
                         'country' : contract.country,
                         'exchange' : contract.exchange.id,
                         'first_trade' : DateFromBlbString(first_trade_date),
                         'last_trade' : DateFromBlbString(last_trade_date),
                          'first_notice' :DateFromBlbString(first_notice_date),
                          'first_delivery':DateFromBlbString(first_delivery_date),
                          'last_delivery':DateFromBlbString(last_delivery_date),
                         })
            return data
Exemple #7
0
 def get_data(self, id, curncy = '', multiplier = 1,
              settlement_delay = 2, **kwargs):
     data = super(EtfManager,self).get_data(id, **kwargs)
     data.update({'curncy': convert('curncy',curncy),
                  'multiplier': self.safefloat(multiplier,1),
                  'settlement_delay': self.safeint(settlement_delay,2)})
     return data
Exemple #8
0
    def get_data(
        self,
        id,
        first_trade_date,
        last_trade_date,
        first_notice_date,
        first_delivery_date,
        last_delivery_date,
        **kwargs
    ):

        BLB = kwargs.get("BLB", None)

        data = super(FutureManager, self).get_data(id, **kwargs)
        contract = convert("future_contract", BLB)
        data.update(
            {
                "contract": contract.id,
                "country": contract.country,
                "exchange": contract.exchange.id,
                "first_trade": DateFromBlbString(first_trade_date),
                "last_trade": DateFromBlbString(last_trade_date),
                "first_notice": DateFromBlbString(first_notice_date),
                "first_delivery": DateFromBlbString(first_delivery_date),
                "last_delivery": DateFromBlbString(last_delivery_date),
            }
        )
        return data
Exemple #9
0
 def get_data(self, id, CUSIP="", SEDOL="", exchange="", **kwargs):
     data = super(SecurityManager, self).get_data(id, **kwargs)
     exchange = convert("exchange", exchange)
     if exchange:
         exchange = exchange.id
     data.update({"CUSIP": CUSIP, "SEDOL": SEDOL, "exchange": exchange})
     return data
Exemple #10
0
 def get_data(self, id,
              curncy = '',
              cash_type = 1,
              extended = '',
              **kwargs):
     data = super(CashManager,self).get_data(id, **kwargs)
     data.update({'curncy': convert('curncy',curncy),
                  'cash_type': cash_type,
                  'extended': extended})
     return data
Exemple #11
0
 def get_data(self, id,
              curncy            = '',
              bondclass__code   = None,
              collateral_type   = None,
              announce_date     = None,
              first_settle_date = None,
              first_coupon_date = None,
              accrual_date      = None,
              maturity_date     = None,
              multiplier        = None,
              settlement_delay  = None,
              coupon            = None,
              month_frequency   = 0,
              day_count         = None,
              callable          = False,
              putable           = False,
              commit            = True, 
              **kwargs):
     data = super(BondManager,self).get_data(id, **kwargs)
     ccy = convert('curncy',curncy)
                  
     bck = {}
     for k,v in kwargs.items():
         ks = k.split('__')
         if len(ks) == 2 and ks[0] == 'bondclass':
                 bck[ks[1]] = v
     
     bc = bck.pop('bondcode',None)
     co = data.get('country',None)
     bc = convert('bondclass',bc,curncy=ccy,country=co,**bck)
     
     data.update({'curncy':              ccy,
                  'bond_class':          bc.id,
                  'announce_date':       convert('bonddate',announce_date),
                  'first_settle_date':   convert('bonddate',first_settle_date),
                  'first_coupon_date':   convert('bonddate',first_coupon_date),
                  'accrual_date':        convert('bonddate',accrual_date),
                  'maturity_date':       convert('bonddate',maturity_date),
                  'collateral_type':     convert('collateral',collateral_type).id,
                  'multiplier':          self.safefloat(multiplier,0.01),
                  'settlement_delay':    self.safeint(settlement_delay,3),
                  'coupon':              self.safefloat(coupon,0),
                  'month_frequency':     self.safeint(month_frequency, 0),
                  'day_count':           convert('daycount',day_count),
                  'callable':            callable,            
                  'putable':             putable,
                  })
     return data
Exemple #12
0
 def get_data(self, id, CUSIP = '',
              SEDOL = '', exchange = '', **kwargs):
     data = super(SecurityManager,self).get_data(id, **kwargs)
     exchange = convert('exchange', exchange)
     if exchange:
         exchange = exchange.id
     data.update({'CUSIP': CUSIP,
                  'SEDOL': SEDOL,
                  'exchange': exchange})
     return data
Exemple #13
0
 def get_data(self, id, curncy="", multiplier=1, settlement_delay=2, security_type=1, commit=True, **kwargs):
     data = super(FundManager, self).get_data(id, **kwargs)
     data.update(
         {
             "curncy": convert("curncy", curncy),
             "multiplier": self.safefloat(multiplier, 1),
             "settlement_delay": self.safeint(settlement_delay, 2),
         }
     )
     return data
Exemple #14
0
 def get_data(self, id, curncy = '', multiplier = 1,
              settlement_delay = 2,  security_type = 1,
              sector = None, sectorid = None,
              group = None, groupid = None,
              industry_code = None,
              commit = True, **kwargs):
     if not industry_code:
         #TODO remove thid import and obtain moel from self.model 
         from jflow.db.instdata.models import IndustryCode as secmodel
         #secmodel = self.model._name_map.get('industry_code')[0]
         industry_code = secmodel.objects.create(sector, sectorid, group, groupid)
         if industry_code:
             industry_code = industry_code.id
     data = super(EquityManager,self).get_data(id, **kwargs)
     data.update({'industry_code': industry_code,
                  'curncy': convert('curncy',curncy),
                  'multiplier': self.safefloat(multiplier,1),
                  'settlement_delay': self.safeint(settlement_delay,2),
                  'security_type': convert('security_type',security_type)})
     return data
Exemple #15
0
 def get_data(self, id, curncy="", value_date=None, **kwargs):
     data = super(FwdCashManager, self).get_data(id, **kwargs)
     value_date = convert("bonddate", value_date)
     data.update({"curncy": convert("curncy", curncy), "value_date": value_date})
     return data
Exemple #16
0
 def get_data(self, id, curncy="", cash_type=1, extended="", **kwargs):
     data = super(CashManager, self).get_data(id, **kwargs)
     data.update({"curncy": convert("curncy", curncy), "cash_type": cash_type, "extended": extended})
     return data