mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-30 08:25:24 +08:00
ENH: Add exchange_full to all Assets, incl. Futures.
This commit is contained in:
+16
-59
@@ -40,7 +40,7 @@ from zipline.utils.calendars import get_calendar
|
||||
# IMPORTANT NOTE: You must change this template if you change
|
||||
# Asset.__reduce__, or else we'll attempt to unpickle an old version of this
|
||||
# class
|
||||
CACHE_FILE_TEMPLATE = '/tmp/.%s-%s.v6.cache'
|
||||
CACHE_FILE_TEMPLATE = '/tmp/.%s-%s.v7.cache'
|
||||
|
||||
|
||||
cdef class Asset:
|
||||
@@ -58,6 +58,7 @@ cdef class Asset:
|
||||
cdef readonly object auto_close_date
|
||||
|
||||
cdef readonly object exchange
|
||||
cdef readonly object exchange_full
|
||||
|
||||
_kwargnames = frozenset({
|
||||
'sid',
|
||||
@@ -68,6 +69,7 @@ cdef class Asset:
|
||||
'first_traded',
|
||||
'auto_close_date',
|
||||
'exchange',
|
||||
'exchange_full',
|
||||
})
|
||||
|
||||
def __init__(self,
|
||||
@@ -78,13 +80,15 @@ cdef class Asset:
|
||||
object start_date=None,
|
||||
object end_date=None,
|
||||
object first_traded=None,
|
||||
object auto_close_date=None):
|
||||
object auto_close_date=None,
|
||||
object exchange_full=None):
|
||||
|
||||
self.sid = sid
|
||||
self.sid_hash = hash(sid)
|
||||
self.symbol = symbol
|
||||
self.asset_name = asset_name
|
||||
self.exchange = exchange
|
||||
self.exchange_full = exchange_full
|
||||
self.start_date = start_date
|
||||
self.end_date = end_date
|
||||
self.first_traded = first_traded
|
||||
@@ -164,7 +168,8 @@ cdef class Asset:
|
||||
self.start_date,
|
||||
self.end_date,
|
||||
self.first_traded,
|
||||
self.auto_close_date))
|
||||
self.auto_close_date,
|
||||
self.exchange_full))
|
||||
|
||||
cpdef to_dict(self):
|
||||
"""
|
||||
@@ -179,6 +184,7 @@ cdef class Asset:
|
||||
'first_traded': self.first_traded,
|
||||
'auto_close_date': self.auto_close_date,
|
||||
'exchange': self.exchange,
|
||||
'exchange_full': self.exchange_full,
|
||||
}
|
||||
|
||||
@classmethod
|
||||
@@ -226,59 +232,6 @@ cdef class Asset:
|
||||
|
||||
cdef class Equity(Asset):
|
||||
|
||||
cdef readonly object exchange_full
|
||||
|
||||
_kwargnames = frozenset({
|
||||
'sid',
|
||||
'symbol',
|
||||
'asset_name',
|
||||
'start_date',
|
||||
'end_date',
|
||||
'first_traded',
|
||||
'auto_close_date',
|
||||
'exchange',
|
||||
'exchange_full',
|
||||
})
|
||||
|
||||
def __init__(self,
|
||||
int sid, # sid is required
|
||||
object exchange, # exchange is required
|
||||
object symbol="",
|
||||
object asset_name="",
|
||||
object start_date=None,
|
||||
object end_date=None,
|
||||
object first_traded=None,
|
||||
object auto_close_date=None,
|
||||
object exchange_full=None):
|
||||
super().__init__(
|
||||
sid,
|
||||
exchange,
|
||||
symbol=symbol,
|
||||
asset_name=asset_name,
|
||||
start_date=start_date,
|
||||
end_date=end_date,
|
||||
first_traded=first_traded,
|
||||
auto_close_date=auto_close_date,
|
||||
)
|
||||
|
||||
self.exchange_full = exchange_full
|
||||
|
||||
cpdef to_dict(self):
|
||||
"""
|
||||
Convert to a python dict.
|
||||
"""
|
||||
return {
|
||||
'sid': self.sid,
|
||||
'symbol': self.symbol,
|
||||
'asset_name': self.asset_name,
|
||||
'start_date': self.start_date,
|
||||
'end_date': self.end_date,
|
||||
'first_traded': self.first_traded,
|
||||
'auto_close_date': self.auto_close_date,
|
||||
'exchange': self.exchange,
|
||||
'exchange_full': self.exchange_full,
|
||||
}
|
||||
|
||||
def __repr__(self):
|
||||
attrs = ('symbol', 'asset_name', 'exchange',
|
||||
'start_date', 'end_date', 'first_traded', 'auto_close_date',
|
||||
@@ -345,6 +298,7 @@ cdef class Future(Asset):
|
||||
'exchange',
|
||||
'tick_size',
|
||||
'multiplier',
|
||||
'exchange_full',
|
||||
})
|
||||
|
||||
def __init__(self,
|
||||
@@ -360,7 +314,8 @@ cdef class Future(Asset):
|
||||
object auto_close_date=None,
|
||||
object first_traded=None,
|
||||
object tick_size="",
|
||||
float multiplier=1.0):
|
||||
float multiplier=1.0,
|
||||
object exchange_full=None):
|
||||
|
||||
super().__init__(
|
||||
sid,
|
||||
@@ -371,6 +326,7 @@ cdef class Future(Asset):
|
||||
end_date=end_date,
|
||||
first_traded=first_traded,
|
||||
auto_close_date=auto_close_date,
|
||||
exchange_full=exchange_full,
|
||||
)
|
||||
self.root_symbol = root_symbol
|
||||
self.notice_date = notice_date
|
||||
@@ -390,7 +346,7 @@ cdef class Future(Asset):
|
||||
attrs = ('symbol', 'root_symbol', 'asset_name', 'exchange',
|
||||
'start_date', 'end_date', 'first_traded', 'notice_date',
|
||||
'expiration_date', 'auto_close_date', 'tick_size',
|
||||
'multiplier')
|
||||
'multiplier', 'exchange_full')
|
||||
tuples = ((attr, repr(getattr(self, attr, None)))
|
||||
for attr in attrs)
|
||||
strings = ('%s=%s' % (t[0], t[1]) for t in tuples)
|
||||
@@ -416,7 +372,8 @@ cdef class Future(Asset):
|
||||
self.auto_close_date,
|
||||
self.first_traded,
|
||||
self.tick_size,
|
||||
self.multiplier,))
|
||||
self.multiplier,
|
||||
self.exchange_full))
|
||||
|
||||
cpdef to_dict(self):
|
||||
"""
|
||||
|
||||
@@ -222,6 +222,7 @@ def make_future_info(first_sid,
|
||||
'expiration_date': notice_date_func(month_begin),
|
||||
'multiplier': 500,
|
||||
'exchange': "TEST",
|
||||
'exchange_full': 'TEST FULL',
|
||||
})
|
||||
return pd.DataFrame.from_records(contracts, index='sid').convert_objects()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user