Source code for zipline.assets.exchange_info

from zipline.utils.calendar_utils import get_calendar


[docs]class ExchangeInfo: """An exchange where assets are traded. Parameters ---------- name : str or None The full name of the exchange, for example 'NEW YORK STOCK EXCHANGE' or 'NASDAQ GLOBAL MARKET'. canonical_name : str The canonical name of the exchange, for example 'NYSE' or 'NASDAQ'. If None this will be the same as the name. country_code : str The country code where the exchange is located. Attributes ---------- name : str or None The full name of the exchange, for example 'NEW YORK STOCK EXCHANGE' or 'NASDAQ GLOBAL MARKET'. canonical_name : str The canonical name of the exchange, for example 'NYSE' or 'NASDAQ'. If None this will be the same as the name. country_code : str The country code where the exchange is located. calendar : TradingCalendar The trading calendar the exchange uses. """ def __init__(self, name, canonical_name, country_code): self.name = name if canonical_name is None: canonical_name = name self.canonical_name = canonical_name self.country_code = country_code.upper() def __repr__(self): return "%s(%r, %r, %r)" % ( type(self).__name__, self.name, self.canonical_name, self.country_code, ) @property def calendar(self): """The trading calendar that this exchange uses.""" return get_calendar(self.canonical_name) def __eq__(self, other): if not isinstance(other, ExchangeInfo): return NotImplemented return all( getattr(self, attr) == getattr(other, attr) for attr in ("name", "canonical_name", "country_code") ) def __ne__(self, other): eq = self == other if eq is NotImplemented: return NotImplemented return not eq