mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-05 08:46:15 +08:00
Merge pull request #1416 from quantopian/exch_full_synthetic
ENH: Expose exchange_full on all Asset types
This commit is contained in:
@@ -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,16 @@ 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 if exchange_full is not None
|
||||
else exchange)
|
||||
self.start_date = start_date
|
||||
self.end_date = end_date
|
||||
self.first_traded = first_traded
|
||||
@@ -164,7 +169,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 +185,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
|
||||
@@ -228,7 +235,8 @@ cdef class Equity(Asset):
|
||||
|
||||
def __repr__(self):
|
||||
attrs = ('symbol', 'asset_name', 'exchange',
|
||||
'start_date', 'end_date', 'first_traded', 'auto_close_date')
|
||||
'start_date', 'end_date', 'first_traded', 'auto_close_date',
|
||||
'exchange_full')
|
||||
tuples = ((attr, repr(getattr(self, attr, None)))
|
||||
for attr in attrs)
|
||||
strings = ('%s=%s' % (t[0], t[1]) for t in tuples)
|
||||
@@ -291,6 +299,7 @@ cdef class Future(Asset):
|
||||
'exchange',
|
||||
'tick_size',
|
||||
'multiplier',
|
||||
'exchange_full',
|
||||
})
|
||||
|
||||
def __init__(self,
|
||||
@@ -306,7 +315,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,
|
||||
@@ -317,6 +327,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
|
||||
@@ -336,7 +347,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)
|
||||
@@ -362,7 +373,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):
|
||||
"""
|
||||
|
||||
@@ -51,6 +51,7 @@ def make_rotating_equity_info(num_assets,
|
||||
periods=num_assets,
|
||||
),
|
||||
'exchange': 'TEST',
|
||||
'exchange_full': 'TEST FULL',
|
||||
},
|
||||
index=range(num_assets),
|
||||
)
|
||||
@@ -87,6 +88,7 @@ def make_simple_equity_info(sids,
|
||||
'start_date': pd.to_datetime([start_date] * num_assets),
|
||||
'end_date': pd.to_datetime([end_date] * num_assets),
|
||||
'exchange': 'TEST',
|
||||
'exchange_full': 'TEST FULL',
|
||||
},
|
||||
index=sids,
|
||||
columns=(
|
||||
@@ -94,6 +96,7 @@ def make_simple_equity_info(sids,
|
||||
'end_date',
|
||||
'symbol',
|
||||
'exchange',
|
||||
'exchange_full',
|
||||
),
|
||||
)
|
||||
|
||||
@@ -137,6 +140,7 @@ def make_jagged_equity_info(num_assets,
|
||||
periods=num_assets,
|
||||
),
|
||||
'exchange': 'TEST',
|
||||
'exchange_full': 'TEST FULL',
|
||||
},
|
||||
index=range(num_assets),
|
||||
)
|
||||
@@ -218,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