Changed zipline -> catalyst import paths

* Updated cython build scripts
 * Updated setup.py to to install catalyst package
 * Updated momentum example to use catalyst package
 * catalyst executable now supports loading pipelines from multiple bundles
This commit is contained in:
Conner Fromknecht
2017-06-18 21:02:15 -07:00
parent be2fe35583
commit fce97176d6
244 changed files with 1101 additions and 1121 deletions
+9 -9
View File
@@ -1,11 +1,11 @@
# #
# Dockerfile for an image with the currently checked out version of zipline installed. To build: # Dockerfile for an image with the currently checked out version of catalyst installed. To build:
# #
# docker build -t quantopian/zipline . # docker build -t quantopian/catalyst .
# #
# To run the container: # To run the container:
# #
# docker run -v /path/to/your/notebooks:/projects -v ~/.zipline:/root/.zipline -p 8888:8888/tcp --name zipline -it quantopian/zipline # docker run -v /path/to/your/notebooks:/projects -v ~/.catalyst:/root/.catalyst -p 8888:8888/tcp --name catalyst -it quantopian/catalyst
# #
# To access Jupyter when running docker locally (you may need to add NAT rules): # To access Jupyter when running docker locally (you may need to add NAT rules):
# #
@@ -19,7 +19,7 @@
# #
# You can also run an algo using the docker exec command. For example: # You can also run an algo using the docker exec command. For example:
# #
# docker exec -it zipline zipline run -f /projects/my_algo.py --start 2015-1-1 --end 2016-1-1 /projects/result.pickle # docker exec -it catalyst catalyst run -f /projects/my_algo.py --start 2015-1-1 --end 2016-1-1 /projects/result.pickle
# #
FROM python:3.5 FROM python:3.5
@@ -48,7 +48,7 @@ RUN mkdir ${PROJECT_DIR} \
&& curl -L https://downloads.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz | tar xvz && curl -L https://downloads.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz | tar xvz
# #
# build and install zipline from source. install TA-Lib after to ensure # build and install catalyst from source. install TA-Lib after to ensure
# numpy is available. # numpy is available.
# #
@@ -72,17 +72,17 @@ RUN pip install 'numpy>=1.11.1,<2.0.0' \
ADD ./etc/docker_cmd.sh / ADD ./etc/docker_cmd.sh /
# #
# make port available. /zipline is made a volume # make port available. /catalyst is made a volume
# for developer testing. # for developer testing.
# #
EXPOSE ${NOTEBOOK_PORT} EXPOSE ${NOTEBOOK_PORT}
# #
# build and install the zipline package into the image # build and install the catalyst package into the image
# #
ADD . /zipline ADD . /catalyst
WORKDIR /zipline WORKDIR /catalyst
RUN pip install -e . RUN pip install -e .
# #
+8 -8
View File
@@ -1,15 +1,15 @@
# #
# Dockerfile for an image with the currently checked out version of zipline installed. To build: # Dockerfile for an image with the currently checked out version of catalyst installed. To build:
# #
# docker build -t quantopian/ziplinedev -f Dockerfile-dev . # docker build -t quantopian/catalystdev -f Dockerfile-dev .
# #
# Note: the dev build requires a quantopian/zipline image, which you can build as follows: # Note: the dev build requires a quantopian/catalyst image, which you can build as follows:
# #
# docker build -t quantopian/zipline -f Dockerfile # docker build -t quantopian/catalyst -f Dockerfile
# #
# To run the container: # To run the container:
# #
# docker run -v /path/to/your/notebooks:/projects -v ~/.zipline:/root/.zipline -p 8888:8888/tcp --name ziplinedev -it quantopian/ziplinedev # docker run -v /path/to/your/notebooks:/projects -v ~/.catalyst:/root/.catalyst -p 8888:8888/tcp --name catalystdev -it quantopian/catalystdev
# #
# To access Jupyter when running docker locally (you may need to add NAT rules): # To access Jupyter when running docker locally (you may need to add NAT rules):
# #
@@ -23,11 +23,11 @@
# #
# You can also run an algo using the docker exec command. For example: # You can also run an algo using the docker exec command. For example:
# #
# docker exec -it ziplinedev zipline run -f /projects/my_algo.py --start 2015-1-1 --end 2016-1-1 /projects/result.pickle # docker exec -it catalystdev catalyst run -f /projects/my_algo.py --start 2015-1-1 --end 2016-1-1 /projects/result.pickle
# #
FROM quantopian/zipline FROM quantopian/catalyst
WORKDIR /zipline WORKDIR /catalyst
RUN pip install -r etc/requirements_dev.txt -r etc/requirements_blaze.txt RUN pip install -r etc/requirements_dev.txt -r etc/requirements_blaze.txt
# Clean out any cython assets. The pip install re-builds them. # Clean out any cython assets. The pip install re-builds them.
+4 -4
View File
@@ -1,9 +1,9 @@
include LICENSE include LICENSE
include etc/requirements*.txt include etc/requirements*.txt
recursive-include zipline *.pyi recursive-include catalyst *.pyi
recursive-include zipline *.pxi recursive-include catalyst *.pxi
recursive-include zipline/resources *.* recursive-include catalyst/resources *.*
include versioneer.py include versioneer.py
include zipline/_version.py include catalyst/_version.py
+4 -4
View File
@@ -83,8 +83,8 @@ install:
- ps: copy .\ci\appveyor\vcvars64.bat "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64" - ps: copy .\ci\appveyor\vcvars64.bat "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64"
- "%CMD_IN_ENV% python .\\ci\\make_conda_packages.py" - "%CMD_IN_ENV% python .\\ci\\make_conda_packages.py"
# test that we can conda install zipline in a new env # test that we can conda install catalyst in a new env
- conda create -n installenv --yes -q --use-local python=%PYTHON_VERSION% numpy=%NUMPY_VERSION% zipline -c quantopian -c https://conda.anaconda.org/quantopian/label/ci - conda create -n installenv --yes -q --use-local python=%PYTHON_VERSION% numpy=%NUMPY_VERSION% catalyst -c quantopian -c https://conda.anaconda.org/quantopian/label/ci
- ps: $env:BCOLZ_VERSION=(sls "bcolz==(.*)" .\etc\requirements.txt -ca).matches.groups[1].value - ps: $env:BCOLZ_VERSION=(sls "bcolz==(.*)" .\etc\requirements.txt -ca).matches.groups[1].value
- ps: $env:NUMEXPR_VERSION=(sls "numexpr==(.*)" .\etc\requirements.txt -ca).matches.groups[1].value - ps: $env:NUMEXPR_VERSION=(sls "numexpr==(.*)" .\etc\requirements.txt -ca).matches.groups[1].value
@@ -101,8 +101,8 @@ install:
- pip freeze | sort - pip freeze | sort
test_script: test_script:
- nosetests -e zipline.utils.numpy_utils - nosetests -e catalyst.utils.numpy_utils
- flake8 zipline tests - flake8 catalyst tests
branches: branches:
only: only:
+6 -6
View File
@@ -30,14 +30,14 @@ from . algorithm import TradingAlgorithm
from . import api from . import api
# PERF: Fire a warning if calendars were instantiated during zipline import. # PERF: Fire a warning if calendars were instantiated during catalyst import.
# Having calendars doesn't break anything per-se, but it makes zipline imports # Having calendars doesn't break anything per-se, but it makes catalyst imports
# noticeably slower, which becomes particularly noticeable in the Zipline CLI. # noticeably slower, which becomes particularly noticeable in the Zipline CLI.
from zipline.utils.calendars.calendar_utils import global_calendar_dispatcher from catalyst.utils.calendars.calendar_utils import global_calendar_dispatcher
if global_calendar_dispatcher._calendars: if global_calendar_dispatcher._calendars:
import warnings import warnings
warnings.warn( warnings.warn(
"Found TradingCalendar instances after zipline import.\n" "Found TradingCalendar instances after catalyst import.\n"
"Zipline startup will be much slower until this is fixed!", "Zipline startup will be much slower until this is fixed!",
) )
del warnings del warnings
@@ -49,8 +49,8 @@ del get_versions
def load_ipython_extension(ipython): def load_ipython_extension(ipython):
from .__main__ import zipline_magic from .__main__ import catalyst_magic
ipython.register_magic_function(zipline_magic, 'line_cell', 'zipline') ipython.register_magic_function(catalyst_magic, 'line_cell', 'catalyst')
if os.name == 'nt': if os.name == 'nt':
+11 -11
View File
@@ -7,9 +7,9 @@ import logbook
import pandas as pd import pandas as pd
from six import text_type from six import text_type
from zipline.data import bundles as bundles_module from catalyst.data import bundles as bundles_module
from zipline.utils.cli import Date, Timestamp from catalyst.utils.cli import Date, Timestamp
from zipline.utils.run_algo import _run, load_extensions from catalyst.utils.run_algo import _run, load_extensions
try: try:
__IPYTHON__ __IPYTHON__
@@ -22,12 +22,12 @@ except NameError:
'-e', '-e',
'--extension', '--extension',
multiple=True, multiple=True,
help='File or module path to a zipline extension to load.', help='File or module path to a catalyst extension to load.',
) )
@click.option( @click.option(
'--strict-extensions/--non-strict-extensions', '--strict-extensions/--non-strict-extensions',
is_flag=True, is_flag=True,
help='If --strict-extensions is passed then zipline will not run if it' help='If --strict-extensions is passed then catalyst will not run if it'
' cannot load all of the specified extensions. If this is not passed or' ' cannot load all of the specified extensions. If this is not passed or'
' --non-strict-extensions is passed then the failure will be logged but' ' --non-strict-extensions is passed then the failure will be logged but'
' execution will continue.', ' execution will continue.',
@@ -36,10 +36,10 @@ except NameError:
'--default-extension/--no-default-extension', '--default-extension/--no-default-extension',
is_flag=True, is_flag=True,
default=True, default=True,
help="Don't load the default zipline extension.py file in $ZIPLINE_HOME.", help="Don't load the default catalyst extension.py file in $ZIPLINE_HOME.",
) )
def main(extension, strict_extensions, default_extension): def main(extension, strict_extensions, default_extension):
"""Top level zipline entry point. """Top level catalyst entry point.
""" """
# install a logbook handler before performing any other operations # install a logbook handler before performing any other operations
logbook.StderrHandler().push_application() logbook.StderrHandler().push_application()
@@ -242,14 +242,14 @@ def run(ctx,
if output == '-': if output == '-':
click.echo(str(perf)) click.echo(str(perf))
elif output != os.devnull: # make the zipline magic not write any data elif output != os.devnull: # make the catalyst magic not write any data
perf.to_pickle(output) perf.to_pickle(output)
return perf return perf
def zipline_magic(line, cell=None): def catalyst_magic(line, cell=None):
"""The zipline IPython cell magic. """The catalyst IPython cell magic.
""" """
load_extensions( load_extensions(
default=True, default=True,
@@ -270,7 +270,7 @@ def zipline_magic(line, cell=None):
'--algotext', '', '--algotext', '',
'--local-namespace', '--local-namespace',
] if cell is None else []) + line.split(), ] if cell is None else []) + line.split(),
'%s%%zipline' % ((cell or '') and '%'), '%s%%catalyst' % ((cell or '') and '%'),
# don't use system exit and propogate errors to the caller # don't use system exit and propogate errors to the caller
standalone_mode=False, standalone_mode=False,
) )
@@ -24,12 +24,12 @@ from six import iteritems, PY2, string_types
from cpython cimport bool from cpython cimport bool
from collections import Iterable from collections import Iterable
from zipline.assets import (Asset, from catalyst.assets import (Asset,
AssetConvertible, AssetConvertible,
PricingDataAssociable, PricingDataAssociable,
Future) Future)
from zipline.assets.continuous_futures import ContinuousFuture from catalyst.assets.continuous_futures import ContinuousFuture
from zipline.zipline_warnings import ZiplineDeprecationWarning from catalyst.catalyst_warnings import ZiplineDeprecationWarning
cdef bool _is_iterable(obj): cdef bool _is_iterable(obj):
@@ -149,7 +149,7 @@ cdef class BarData:
data_frequency : {'minute', 'daily'} data_frequency : {'minute', 'daily'}
The frequency of the bar data; i.e. whether the data is The frequency of the bar data; i.e. whether the data is
daily or minute bars daily or minute bars
restrictions : zipline.finance.asset_restrictions.Restrictions restrictions : catalyst.finance.asset_restrictions.Restrictions
Object that combines and returns restricted list information from Object that combines and returns restricted list information from
multiple sources multiple sources
universe_func : callable, optional universe_func : callable, optional
+2 -2
View File
@@ -37,8 +37,8 @@ def get_config():
cfg.VCS = "git" cfg.VCS = "git"
cfg.style = "pep440" cfg.style = "pep440"
cfg.tag_prefix = "" cfg.tag_prefix = ""
cfg.parentdir_prefix = "zipline-" cfg.parentdir_prefix = "catalyst-"
cfg.versionfile_source = "zipline/_version.py" cfg.versionfile_source = "catalyst/_version.py"
cfg.verbose = False cfg.verbose = False
return cfg return cfg
+88 -88
View File
@@ -35,11 +35,11 @@ from six import (
viewkeys, viewkeys,
) )
from zipline._protocol import handle_non_market_minutes from catalyst._protocol import handle_non_market_minutes
from zipline.assets.synthetic import make_simple_equity_info from catalyst.assets.synthetic import make_simple_equity_info
from zipline.data.data_portal import DataPortal from catalyst.data.data_portal import DataPortal
from zipline.data.us_equity_pricing import PanelBarReader from catalyst.data.us_equity_pricing import PanelBarReader
from zipline.errors import ( from catalyst.errors import (
AttachPipelineAfterInitialize, AttachPipelineAfterInitialize,
CannotOrderDelistedAsset, CannotOrderDelistedAsset,
HistoryInInitialize, HistoryInInitialize,
@@ -60,9 +60,9 @@ from zipline.errors import (
UnsupportedDatetimeFormat, UnsupportedDatetimeFormat,
UnsupportedOrderParameters, UnsupportedOrderParameters,
) )
from zipline.finance.trading import TradingEnvironment from catalyst.finance.trading import TradingEnvironment
from zipline.finance.blotter import Blotter from catalyst.finance.blotter import Blotter
from zipline.finance.controls import ( from catalyst.finance.controls import (
LongOnly, LongOnly,
MaxOrderCount, MaxOrderCount,
MaxOrderSize, MaxOrderSize,
@@ -70,34 +70,34 @@ from zipline.finance.controls import (
MaxLeverage, MaxLeverage,
RestrictedListOrder RestrictedListOrder
) )
from zipline.finance.execution import ( from catalyst.finance.execution import (
LimitOrder, LimitOrder,
MarketOrder, MarketOrder,
StopLimitOrder, StopLimitOrder,
StopOrder, StopOrder,
) )
from zipline.finance.performance import PerformanceTracker from catalyst.finance.performance import PerformanceTracker
from zipline.finance.asset_restrictions import Restrictions from catalyst.finance.asset_restrictions import Restrictions
from zipline.finance.cancel_policy import NeverCancel, CancelPolicy from catalyst.finance.cancel_policy import NeverCancel, CancelPolicy
from zipline.finance.asset_restrictions import ( from catalyst.finance.asset_restrictions import (
NoRestrictions, NoRestrictions,
StaticRestrictions, StaticRestrictions,
SecurityListRestrictions, SecurityListRestrictions,
) )
from zipline.assets import Asset, Equity, Future from catalyst.assets import Asset, Equity, Future
from zipline.gens.tradesimulation import AlgorithmSimulator from catalyst.gens.tradesimulation import AlgorithmSimulator
from zipline.pipeline import Pipeline from catalyst.pipeline import Pipeline
from zipline.pipeline.engine import ( from catalyst.pipeline.engine import (
ExplodingPipelineEngine, ExplodingPipelineEngine,
SimplePipelineEngine, SimplePipelineEngine,
) )
from zipline.utils.api_support import ( from catalyst.utils.api_support import (
api_method, api_method,
require_initialized, require_initialized,
require_not_initialized, require_not_initialized,
ZiplineAPI, ZiplineAPI,
disallowed_in_before_trading_start) disallowed_in_before_trading_start)
from zipline.utils.input_validation import ( from catalyst.utils.input_validation import (
coerce_string, coerce_string,
ensure_upper_case, ensure_upper_case,
error_keywords, error_keywords,
@@ -105,14 +105,14 @@ from zipline.utils.input_validation import (
expect_types, expect_types,
optional, optional,
) )
from zipline.utils.numpy_utils import int64_dtype from catalyst.utils.numpy_utils import int64_dtype
from zipline.utils.calendars.trading_calendar import days_at_time from catalyst.utils.calendars.trading_calendar import days_at_time
from zipline.utils.cache import CachedObject, Expired from catalyst.utils.cache import CachedObject, Expired
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
from zipline.utils.compat import exc_clear from catalyst.utils.compat import exc_clear
import zipline.utils.events import catalyst.utils.events
from zipline.utils.events import ( from catalyst.utils.events import (
EventManager, EventManager,
make_eventrule, make_eventrule,
date_rules, date_rules,
@@ -121,21 +121,21 @@ from zipline.utils.events import (
AfterOpen, AfterOpen,
BeforeClose BeforeClose
) )
from zipline.utils.factory import create_simulation_parameters from catalyst.utils.factory import create_simulation_parameters
from zipline.utils.math_utils import ( from catalyst.utils.math_utils import (
tolerant_equals, tolerant_equals,
round_if_near_integer, round_if_near_integer,
) )
from zipline.utils.pandas_utils import clear_dataframe_indexer_caches from catalyst.utils.pandas_utils import clear_dataframe_indexer_caches
from zipline.utils.preprocess import preprocess from catalyst.utils.preprocess import preprocess
from zipline.utils.security_list import SecurityList from catalyst.utils.security_list import SecurityList
import zipline.protocol import catalyst.protocol
from zipline.sources.requests_csv import PandasRequestsCSV from catalyst.sources.requests_csv import PandasRequestsCSV
from zipline.gens.sim_engine import MinuteSimulationClock from catalyst.gens.sim_engine import MinuteSimulationClock
from zipline.sources.benchmark_source import BenchmarkSource from catalyst.sources.benchmark_source import BenchmarkSource
from zipline.zipline_warnings import ZiplineDeprecationWarning from catalyst.catalyst_warnings import ZiplineDeprecationWarning
log = logbook.Logger("ZiplineLog") log = logbook.Logger("ZiplineLog")
@@ -206,7 +206,7 @@ class TradingAlgorithm(object):
The platform the simulation is running on. This can be queried for The platform the simulation is running on. This can be queried for
in the simulation with ``get_environment``. This allows algorithms in the simulation with ``get_environment``. This allows algorithms
to conditionally execute code based on platform it is running on. to conditionally execute code based on platform it is running on.
default: 'zipline' default: 'catalyst'
""" """
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@@ -260,7 +260,7 @@ class TradingAlgorithm(object):
self._recorded_vars = {} self._recorded_vars = {}
self.namespace = kwargs.pop('namespace', {}) self.namespace = kwargs.pop('namespace', {})
self._platform = kwargs.pop('platform', 'zipline') self._platform = kwargs.pop('platform', 'catalyst')
self.logger = None self.logger = None
@@ -316,7 +316,7 @@ class TradingAlgorithm(object):
if not self.blotter: if not self.blotter:
self.blotter = Blotter( self.blotter = Blotter(
data_frequency=self.data_frequency, data_frequency=self.data_frequency,
# Default to NeverCancel in zipline # Default to NeverCancel in catalyst
cancel_policy=self.cancel_policy, cancel_policy=self.cancel_policy,
) )
@@ -389,8 +389,8 @@ class TradingAlgorithm(object):
self._analyze = kwargs.pop('analyze', None) self._analyze = kwargs.pop('analyze', None)
self.event_manager.add_event( self.event_manager.add_event(
zipline.utils.events.Event( catalyst.utils.events.Event(
zipline.utils.events.Always(), catalyst.utils.events.Always(),
# We pass handle_data.__func__ to get the unbound method. # We pass handle_data.__func__ to get the unbound method.
# We will explicitly pass the algorithm to bind it again. # We will explicitly pass the algorithm to bind it again.
self.handle_data.__func__, self.handle_data.__func__,
@@ -702,7 +702,7 @@ class TradingAlgorithm(object):
# this is a repeat run of the algorithm. # this is a repeat run of the algorithm.
self.perf_tracker = None self.perf_tracker = None
# Create zipline and loop through simulated_trading. # Create catalyst and loop through simulated_trading.
# Each iteration returns a perf dictionary # Each iteration returns a perf dictionary
try: try:
perfs = [] perfs = []
@@ -937,7 +937,7 @@ class TradingAlgorithm(object):
The starting capital for the simulation. The starting capital for the simulation.
platform : str platform : str
The platform that the code is running on. By default this The platform that the code is running on. By default this
will be the string 'zipline'. This can allow algorithms to will be the string 'catalyst'. This can allow algorithms to
know if they are running on the Quantopian platform instead. know if they are running on the Quantopian platform instead.
* : dict[str -> any] * : dict[str -> any]
Returns all of the fields in a dictionary. Returns all of the fields in a dictionary.
@@ -1022,7 +1022,7 @@ class TradingAlgorithm(object):
Returns Returns
------- -------
csv_data_source : zipline.sources.requests_csv.PandasRequestsCSV csv_data_source : catalyst.sources.requests_csv.PandasRequestsCSV
A requests source that will pull data from the url specified. A requests source that will pull data from the url specified.
""" """
@@ -1063,7 +1063,7 @@ class TradingAlgorithm(object):
The function to execute when the rule is triggered. The function to execute when the rule is triggered.
""" """
self.event_manager.add_event( self.event_manager.add_event(
zipline.utils.events.Event(rule, callback), catalyst.utils.events.Event(rule, callback),
) )
@api_method @api_method
@@ -1090,8 +1090,8 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:class:`zipline.api.date_rules` :class:`catalyst.api.date_rules`
:class:`zipline.api.time_rules` :class:`catalyst.api.time_rules`
""" """
# When the user calls schedule_function(func, <time_rule>), assume that # When the user calls schedule_function(func, <time_rule>), assume that
@@ -1146,7 +1146,7 @@ class TradingAlgorithm(object):
----- -----
These values will appear in the performance packets and the performance These values will appear in the performance packets and the performance
dataframe passed to ``analyze`` and returned from dataframe passed to ``analyze`` and returned from
:func:`~zipline.run_algorithm`. :func:`~catalyst.run_algorithm`.
""" """
# Make 2 objects both referencing the same iterator # Make 2 objects both referencing the same iterator
args = [iter(args)] * 2 args = [iter(args)] * 2
@@ -1201,7 +1201,7 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:func:`zipline.api.set_symbol_lookup_date` :func:`catalyst.api.set_symbol_lookup_date`
""" """
# If the user has not set the symbol lookup date, # If the user has not set the symbol lookup date,
# use the end_session as the date for sybmol->sid resolution. # use the end_session as the date for sybmol->sid resolution.
@@ -1273,7 +1273,7 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:func:`zipline.api.set_symbol_lookup_date` :func:`catalyst.api.set_symbol_lookup_date`
""" """
return [self.symbol(identifier) for identifier in args] return [self.symbol(identifier) for identifier in args]
@@ -1433,9 +1433,9 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order_value` :func:`catalyst.api.order_value`
:func:`zipline.api.order_percent` :func:`catalyst.api.order_percent`
""" """
if not self._can_order_asset(asset): if not self._can_order_asset(asset):
return None return None
@@ -1567,14 +1567,14 @@ class TradingAlgorithm(object):
Notes Notes
----- -----
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_percent` :func:`catalyst.api.order_percent`
""" """
if not self._can_order_asset(asset): if not self._can_order_asset(asset):
return None return None
@@ -1673,7 +1673,7 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:class:`zipline.finance.slippage.SlippageModel` :class:`catalyst.finance.slippage.SlippageModel`
""" """
if self.initialized: if self.initialized:
raise SetSlippagePostInit() raise SetSlippagePostInit()
@@ -1709,9 +1709,9 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:class:`zipline.finance.commission.PerShare` :class:`catalyst.finance.commission.PerShare`
:class:`zipline.finance.commission.PerTrade` :class:`catalyst.finance.commission.PerTrade`
:class:`zipline.finance.commission.PerDollar` :class:`catalyst.finance.commission.PerDollar`
""" """
if self.initialized: if self.initialized:
raise SetCommissionPostInit() raise SetCommissionPostInit()
@@ -1745,8 +1745,8 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:class:`zipline.api.EODCancel` :class:`catalyst.api.EODCancel`
:class:`zipline.api.NeverCancel` :class:`catalyst.api.NeverCancel`
""" """
if not isinstance(cancel_policy, CancelPolicy): if not isinstance(cancel_policy, CancelPolicy):
raise UnsupportedCancelPolicy() raise UnsupportedCancelPolicy()
@@ -1815,14 +1815,14 @@ class TradingAlgorithm(object):
Notes Notes
----- -----
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_value` :func:`catalyst.api.order_value`
""" """
if not self._can_order_asset(asset): if not self._can_order_asset(asset):
return None return None
@@ -1884,15 +1884,15 @@ class TradingAlgorithm(object):
call to ``order_target`` will not have been filled when the second call to ``order_target`` will not have been filled when the second
``order_target`` call is made. ``order_target`` call is made.
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_target_percent` :func:`catalyst.api.order_target_percent`
:func:`zipline.api.order_target_value` :func:`catalyst.api.order_target_value`
""" """
if not self._can_order_asset(asset): if not self._can_order_asset(asset):
return None return None
@@ -1958,15 +1958,15 @@ class TradingAlgorithm(object):
call to ``order_target_value`` will not have been filled when the call to ``order_target_value`` will not have been filled when the
second ``order_target_value`` call is made. second ``order_target_value`` call is made.
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_target` :func:`catalyst.api.order_target`
:func:`zipline.api.order_target_percent` :func:`catalyst.api.order_target_percent`
""" """
if not self._can_order_asset(asset): if not self._can_order_asset(asset):
return None return None
@@ -2022,15 +2022,15 @@ class TradingAlgorithm(object):
because the first call to ``order_target_percent`` will not have been because the first call to ``order_target_percent`` will not have been
filled when the second ``order_target_percent`` call is made. filled when the second ``order_target_percent`` call is made.
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_target` :func:`catalyst.api.order_target`
:func:`zipline.api.order_target_value` :func:`catalyst.api.order_target_value`
""" """
if not self._can_order_asset(asset): if not self._can_order_asset(asset):
return None return None
@@ -2128,7 +2128,7 @@ class TradingAlgorithm(object):
The order_id or order object to cancel. The order_id or order object to cancel.
""" """
order_id = order_param order_id = order_param
if isinstance(order_param, zipline.protocol.Order): if isinstance(order_param, catalyst.protocol.Order):
order_id = order_param.id order_id = order_param.id
self.blotter.cancel(order_id) self.blotter.cancel(order_id)
@@ -2333,7 +2333,7 @@ class TradingAlgorithm(object):
else: else:
warnings.warn( warnings.warn(
"`set_do_not_order_list(container_of_assets)` is deprecated. " "`set_do_not_order_list(container_of_assets)` is deprecated. "
"Create a zipline.finance.asset_restrictions." "Create a catalyst.finance.asset_restrictions."
"StaticRestrictions object with a container of assets and use " "StaticRestrictions object with a container of assets and use "
"`set_asset_restrictions(StaticRestrictions(" "`set_asset_restrictions(StaticRestrictions("
"container_of_assets))` instead.", "container_of_assets))` instead.",
@@ -2359,7 +2359,7 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
zipline.finance.asset_restrictions.Restrictions catalyst.finance.asset_restrictions.Restrictions
""" """
control = RestrictedListOrder(on_error, restrictions) control = RestrictedListOrder(on_error, restrictions)
self.register_trading_control(control) self.register_trading_control(control)
@@ -2404,7 +2404,7 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:func:`zipline.api.pipeline_output` :func:`catalyst.api.pipeline_output`
""" """
if self._pipelines: if self._pipelines:
raise NotImplementedError("Multiple pipelines are not supported.") raise NotImplementedError("Multiple pipelines are not supported.")
@@ -2444,8 +2444,8 @@ class TradingAlgorithm(object):
See Also See Also
-------- --------
:func:`zipline.api.attach_pipeline` :func:`catalyst.api.attach_pipeline`
:meth:`zipline.pipeline.engine.PipelineEngine.run_pipeline` :meth:`catalyst.pipeline.engine.PipelineEngine.run_pipeline`
""" """
# NOTE: We don't currently support multiple pipelines, but we plan to # NOTE: We don't currently support multiple pipelines, but we plan to
# in the future. # in the future.
View File
+51 -51
View File
@@ -1,12 +1,12 @@
import collections import collections
from zipline.assets import Asset, Equity, Future from catalyst.assets import Asset, Equity, Future
from zipline.assets.futures import FutureChain from catalyst.assets.futures import FutureChain
from zipline.finance.asset_restrictions import Restrictions from catalyst.finance.asset_restrictions import Restrictions
from zipline.finance.cancel_policy import CancelPolicy from catalyst.finance.cancel_policy import CancelPolicy
from zipline.pipeline import Pipeline from catalyst.pipeline import Pipeline
from zipline.protocol import Order from catalyst.protocol import Order
from zipline.utils.events import EventRule from catalyst.utils.events import EventRule
from zipline.utils.security_list import SecurityList from catalyst.utils.security_list import SecurityList
def attach_pipeline(pipeline, name, chunks=None): def attach_pipeline(pipeline, name, chunks=None):
@@ -31,7 +31,7 @@ def attach_pipeline(pipeline, name, chunks=None):
See Also See Also
-------- --------
:func:`zipline.api.pipeline_output` :func:`catalyst.api.pipeline_output`
""" """
def batch_market_order(share_counts): def batch_market_order(share_counts):
@@ -121,7 +121,7 @@ def fetch_csv(url, pre_func=None, post_func=None, date_column='date', date_forma
Returns Returns
------- -------
csv_data_source : zipline.sources.requests_csv.PandasRequestsCSV csv_data_source : catalyst.sources.requests_csv.PandasRequestsCSV
A requests source that will pull data from the url specified. A requests source that will pull data from the url specified.
""" """
@@ -182,7 +182,7 @@ def get_environment(field='platform'):
The starting capital for the simulation. The starting capital for the simulation.
platform : str platform : str
The platform that the code is running on. By default this The platform that the code is running on. By default this
will be the string 'zipline'. This can allow algorithms to will be the string 'catalyst'. This can allow algorithms to
know if they are running on the Quantopian platform instead. know if they are running on the Quantopian platform instead.
* : dict[str -> any] * : dict[str -> any]
Returns all of the fields in a dictionary. Returns all of the fields in a dictionary.
@@ -253,9 +253,9 @@ def order(asset, amount, limit_price=None, stop_price=None, style=None):
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order_value` :func:`catalyst.api.order_value`
:func:`zipline.api.order_percent` :func:`catalyst.api.order_percent`
""" """
def order_percent(asset, percent, limit_price=None, stop_price=None, style=None): def order_percent(asset, percent, limit_price=None, stop_price=None, style=None):
@@ -283,14 +283,14 @@ def order_percent(asset, percent, limit_price=None, stop_price=None, style=None)
Notes Notes
----- -----
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_value` :func:`catalyst.api.order_value`
""" """
def order_target(asset, target, limit_price=None, stop_price=None, style=None): def order_target(asset, target, limit_price=None, stop_price=None, style=None):
@@ -333,15 +333,15 @@ def order_target(asset, target, limit_price=None, stop_price=None, style=None):
call to ``order_target`` will not have been filled when the second call to ``order_target`` will not have been filled when the second
``order_target`` call is made. ``order_target`` call is made.
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_target_percent` :func:`catalyst.api.order_target_percent`
:func:`zipline.api.order_target_value` :func:`catalyst.api.order_target_value`
""" """
def order_target_percent(asset, target, limit_price=None, stop_price=None, style=None): def order_target_percent(asset, target, limit_price=None, stop_price=None, style=None):
@@ -385,15 +385,15 @@ def order_target_percent(asset, target, limit_price=None, stop_price=None, style
because the first call to ``order_target_percent`` will not have been because the first call to ``order_target_percent`` will not have been
filled when the second ``order_target_percent`` call is made. filled when the second ``order_target_percent`` call is made.
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_target` :func:`catalyst.api.order_target`
:func:`zipline.api.order_target_value` :func:`catalyst.api.order_target_value`
""" """
def order_target_value(asset, target, limit_price=None, stop_price=None, style=None): def order_target_value(asset, target, limit_price=None, stop_price=None, style=None):
@@ -437,15 +437,15 @@ def order_target_value(asset, target, limit_price=None, stop_price=None, style=N
call to ``order_target_value`` will not have been filled when the call to ``order_target_value`` will not have been filled when the
second ``order_target_value`` call is made. second ``order_target_value`` call is made.
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_target` :func:`catalyst.api.order_target`
:func:`zipline.api.order_target_percent` :func:`catalyst.api.order_target_percent`
""" """
def order_value(asset, value, limit_price=None, stop_price=None, style=None): def order_value(asset, value, limit_price=None, stop_price=None, style=None):
@@ -478,14 +478,14 @@ def order_value(asset, value, limit_price=None, stop_price=None, style=None):
Notes Notes
----- -----
See :func:`zipline.api.order` for more information about See :func:`catalyst.api.order` for more information about
``limit_price``, ``stop_price``, and ``style`` ``limit_price``, ``stop_price``, and ``style``
See Also See Also
-------- --------
:class:`zipline.finance.execution.ExecutionStyle` :class:`catalyst.finance.execution.ExecutionStyle`
:func:`zipline.api.order` :func:`catalyst.api.order`
:func:`zipline.api.order_percent` :func:`catalyst.api.order_percent`
""" """
def pipeline_output(name): def pipeline_output(name):
@@ -510,8 +510,8 @@ def pipeline_output(name):
See Also See Also
-------- --------
:func:`zipline.api.attach_pipeline` :func:`catalyst.api.attach_pipeline`
:meth:`zipline.pipeline.engine.PipelineEngine.run_pipeline` :meth:`catalyst.pipeline.engine.PipelineEngine.run_pipeline`
""" """
def record(*args, **kwargs): def record(*args, **kwargs):
@@ -526,7 +526,7 @@ def record(*args, **kwargs):
----- -----
These values will appear in the performance packets and the performance These values will appear in the performance packets and the performance
dataframe passed to ``analyze`` and returned from dataframe passed to ``analyze`` and returned from
:func:`~zipline.run_algorithm`. :func:`~catalyst.run_algorithm`.
""" """
def schedule_function(func, date_rule=None, time_rule=None, half_days=True, calendar=None): def schedule_function(func, date_rule=None, time_rule=None, half_days=True, calendar=None):
@@ -545,8 +545,8 @@ def schedule_function(func, date_rule=None, time_rule=None, half_days=True, cale
See Also See Also
-------- --------
:class:`zipline.api.date_rules` :class:`catalyst.api.date_rules`
:class:`zipline.api.time_rules` :class:`catalyst.api.time_rules`
""" """
def set_asset_restrictions(restrictions, on_error='fail'): def set_asset_restrictions(restrictions, on_error='fail'):
@@ -559,7 +559,7 @@ def set_asset_restrictions(restrictions, on_error='fail'):
See Also See Also
-------- --------
zipline.finance.asset_restrictions.Restrictions catalyst.finance.asset_restrictions.Restrictions
""" """
def set_benchmark(benchmark): def set_benchmark(benchmark):
@@ -586,8 +586,8 @@ def set_cancel_policy(cancel_policy):
See Also See Also
-------- --------
:class:`zipline.api.EODCancel` :class:`catalyst.api.EODCancel`
:class:`zipline.api.NeverCancel` :class:`catalyst.api.NeverCancel`
""" """
def set_commission(commission): def set_commission(commission):
@@ -600,9 +600,9 @@ def set_commission(commission):
See Also See Also
-------- --------
:class:`zipline.finance.commission.PerShare` :class:`catalyst.finance.commission.PerShare`
:class:`zipline.finance.commission.PerTrade` :class:`catalyst.finance.commission.PerTrade`
:class:`zipline.finance.commission.PerDollar` :class:`catalyst.finance.commission.PerDollar`
""" """
def set_do_not_order_list(restricted_list, on_error='fail'): def set_do_not_order_list(restricted_list, on_error='fail'):
@@ -691,7 +691,7 @@ def set_slippage(slippage):
See Also See Also
-------- --------
:class:`zipline.finance.slippage.SlippageModel` :class:`catalyst.finance.slippage.SlippageModel`
""" """
def set_symbol_lookup_date(dt): def set_symbol_lookup_date(dt):
@@ -745,7 +745,7 @@ def symbol(symbol_str):
See Also See Also
-------- --------
:func:`zipline.api.set_symbol_lookup_date` :func:`catalyst.api.set_symbol_lookup_date`
""" """
def symbols(*args): def symbols(*args):
@@ -770,6 +770,6 @@ def symbols(*args):
See Also See Also
-------- --------
:func:`zipline.api.set_symbol_lookup_date` :func:`catalyst.api.set_symbol_lookup_date`
""" """
@@ -34,7 +34,7 @@ from numpy cimport int64_t
import warnings import warnings
cimport numpy as np cimport numpy as np
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
# IMPORTANT NOTE: You must change this template if you change # IMPORTANT NOTE: You must change this template if you change
@@ -5,10 +5,10 @@ from alembic.operations import Operations
import sqlalchemy as sa import sqlalchemy as sa
from toolz.curried import do, operator as op from toolz.curried import do, operator as op
from zipline.assets.asset_writer import write_version_info from catalyst.assets.asset_writer import write_version_info
from zipline.errors import AssetDBImpossibleDowngrade from catalyst.errors import AssetDBImpossibleDowngrade
from zipline.utils.preprocess import preprocess from catalyst.utils.preprocess import preprocess
from zipline.utils.sqlite_utils import coerce_string_to_eng from catalyst.utils.sqlite_utils import coerce_string_to_eng
@preprocess(engine=coerce_string_to_eng) @preprocess(engine=coerce_string_to_eng)
@@ -21,8 +21,8 @@ import pandas as pd
import sqlalchemy as sa import sqlalchemy as sa
from toolz import first from toolz import first
from zipline.errors import AssetDBVersionError from catalyst.errors import AssetDBVersionError
from zipline.assets.asset_db_schema import ( from catalyst.assets.asset_db_schema import (
ASSET_DB_VERSION, ASSET_DB_VERSION,
asset_db_table_names, asset_db_table_names,
asset_router, asset_router,
@@ -36,9 +36,9 @@ from zipline.assets.asset_db_schema import (
version_info, version_info,
) )
from zipline.utils.preprocess import preprocess from catalyst.utils.preprocess import preprocess
from zipline.utils.range import from_tuple, intersecting_ranges from catalyst.utils.range import from_tuple, intersecting_ranges
from zipline.utils.sqlite_utils import coerce_string_to_eng from catalyst.utils.sqlite_utils import coerce_string_to_eng
# Define a namedtuple for use with the load_data and _load_data methods # Define a namedtuple for use with the load_data and _load_data methods
AssetData = namedtuple( AssetData = namedtuple(
@@ -455,7 +455,7 @@ class AssetDBWriter(object):
See Also See Also
-------- --------
zipline.assets.asset_finder catalyst.assets.asset_finder
""" """
with self.engine.begin() as conn: with self.engine.begin() as conn:
# Create SQL tables if they do not exist. # Create SQL tables if they do not exist.
@@ -39,7 +39,7 @@ from toolz import (
) )
from toolz.curried import operator as op from toolz.curried import operator as op
from zipline.errors import ( from catalyst.errors import (
EquitiesNotFound, EquitiesNotFound,
FutureContractsNotFound, FutureContractsNotFound,
MapAssetIdentifierIndexError, MapAssetIdentifierIndexError,
@@ -70,11 +70,11 @@ from .asset_writer import (
from .asset_db_schema import ( from .asset_db_schema import (
ASSET_DB_VERSION ASSET_DB_VERSION
) )
from zipline.utils.control_flow import invert from catalyst.utils.control_flow import invert
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
from zipline.utils.numpy_utils import as_column from catalyst.utils.numpy_utils import as_column
from zipline.utils.preprocess import preprocess from catalyst.utils.preprocess import preprocess
from zipline.utils.sqlite_utils import group_into_chunks, coerce_string_to_eng from catalyst.utils.sqlite_utils import group_into_chunks, coerce_string_to_eng
log = Logger('assets.py') log = Logger('assets.py')
@@ -260,7 +260,7 @@ class AssetFinder(object):
See Also See Also
-------- --------
:class:`zipline.assets.AssetDBWriter` :class:`catalyst.assets.AssetDBWriter`
""" """
# Token used as a substitute for pickling objects that contain a # Token used as a substitute for pickling objects that contain a
# reference to an AssetFinder. # reference to an AssetFinder.
@@ -1316,7 +1316,7 @@ class AssetFinder(object):
See Also See Also
-------- --------
numpy.putmask numpy.putmask
zipline.pipeline.engine.SimplePipelineEngine._compute_root_mask catalyst.pipeline.engine.SimplePipelineEngine._compute_root_mask
""" """
# This is a less than ideal place to do this, because if someone adds # This is a less than ideal place to do this, because if someone adds
# assets to the finder after we've touched lifetimes we won't have # assets to the finder after we've touched lifetimes we won't have
@@ -36,7 +36,7 @@ from numpy cimport long_t, int64_t
from pandas import Timestamp from pandas import Timestamp
import warnings import warnings
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
def delivery_predicate(codes, contract): def delivery_predicate(codes, contract):
@@ -187,7 +187,7 @@ def make_future_info(first_sid,
month_codes : dict[str -> [1..12]], optional month_codes : dict[str -> [1..12]], optional
Dictionary of month codes for which to create contracts. Entries Dictionary of month codes for which to create contracts. Entries
should be strings mapped to values from 1 (January) to 12 (December). should be strings mapped to values from 1 (January) to 12 (December).
Default is zipline.futures.CME_CODE_TO_MONTH Default is catalyst.futures.CME_CODE_TO_MONTH
Returns Returns
------- -------
@@ -29,11 +29,11 @@ ctypedef object Timestamp_t
ctypedef object DatetimeIndex_t ctypedef object DatetimeIndex_t
ctypedef object Int64Index_t ctypedef object Int64Index_t
from zipline.lib.adjustment import Float64Multiply from catalyst.lib.adjustment import Float64Multiply
from zipline.assets.asset_writer import ( from catalyst.assets.asset_writer import (
SQLITE_MAX_VARIABLE_NUMBER as SQLITE_MAX_IN_STATEMENT, SQLITE_MAX_VARIABLE_NUMBER as SQLITE_MAX_IN_STATEMENT,
) )
from zipline.utils.pandas_utils import timedelta_to_integral_seconds from catalyst.utils.pandas_utils import timedelta_to_integral_seconds
_SID_QUERY_TEMPLATE = """ _SID_QUERY_TEMPLATE = """
@@ -71,7 +71,7 @@ class BarReader(with_metaclass(ABCMeta, object)):
@abstractproperty @abstractproperty
def trading_calendar(self): def trading_calendar(self):
""" """
Returns the zipline.utils.calendar.trading_calendar used to read Returns the catalyst.utils.calendar.trading_calendar used to read
the data. Can be None (if the writer didn't specify it). the data. Can be None (if the writer didn't specify it).
""" """
pass pass
@@ -124,7 +124,7 @@ class BarReader(with_metaclass(ABCMeta, object)):
Parameters Parameters
---------- ----------
asset : zipline.asset.Asset asset : catalyst.asset.Asset
The asset for which to get the last traded minute. The asset for which to get the last traded minute.
dt : pd.Timestamp dt : pd.Timestamp
The minute at which to start searching for the last traded minute. The minute at which to start searching for the last traded minute.
@@ -1,6 +1,5 @@
# These imports are necessary to force module-scope register calls to happen. # These imports are necessary to force module-scope register calls to happen.
from . import quandl # noqa from . import quandl # noqa
from . import catalyst
from .core import ( from .core import (
UnknownBundle, UnknownBundle,
bundles, bundles,
@@ -15,8 +14,6 @@ from .core import (
) )
from .yahoo import yahoo_equities from .yahoo import yahoo_equities
__all__ = [ __all__ = [
'UnknownBundle', 'UnknownBundle',
'bundles', 'bundles',
@@ -19,18 +19,18 @@ from ..minute_bars import (
BcolzMinuteBarReader, BcolzMinuteBarReader,
BcolzMinuteBarWriter, BcolzMinuteBarWriter,
) )
from zipline.assets import AssetDBWriter, AssetFinder, ASSET_DB_VERSION from catalyst.assets import AssetDBWriter, AssetFinder, ASSET_DB_VERSION
from zipline.assets.asset_db_migrations import downgrade from catalyst.assets.asset_db_migrations import downgrade
from zipline.utils.cache import ( from catalyst.utils.cache import (
dataframe_cache, dataframe_cache,
working_dir, working_dir,
working_file, working_file,
) )
from zipline.utils.compat import mappingproxy from catalyst.utils.compat import mappingproxy
from zipline.utils.input_validation import ensure_timestamp, optionally from catalyst.utils.input_validation import ensure_timestamp, optionally
import zipline.utils.paths as pth import catalyst.utils.paths as pth
from zipline.utils.preprocess import preprocess from catalyst.utils.preprocess import preprocess
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
def asset_db_path(bundle_name, timestr, environ=None, db_version=None): def asset_db_path(bundle_name, timestr, environ=None, db_version=None):
@@ -248,7 +248,7 @@ def _make_bundle_core():
The daily bar writer to write into. The daily bar writer to write into.
adjustment_writer : SQLiteAdjustmentWriter adjustment_writer : SQLiteAdjustmentWriter
The adjustment db writer to write into. The adjustment db writer to write into.
calendar : zipline.utils.calendars.TradingCalendar calendar : catalyst.utils.calendars.TradingCalendar
The trading calendar to ingest for. The trading calendar to ingest for.
start_session : pd.Timestamp start_session : pd.Timestamp
The first session of data to ingest. The first session of data to ingest.
@@ -291,7 +291,7 @@ def _make_bundle_core():
See Also See Also
-------- --------
zipline.data.bundles.bundles catalyst.data.bundles.bundles
""" """
if name in bundles: if name in bundles:
warnings.warn( warnings.warn(
@@ -300,9 +300,9 @@ def _make_bundle_core():
) )
# NOTE: We don't eagerly compute calendar values here because # NOTE: We don't eagerly compute calendar values here because
# `register` is called at module scope in zipline, and creating a # `register` is called at module scope in catalyst, and creating a
# calendar currently takes between 0.5 and 1 seconds, which causes a # calendar currently takes between 0.5 and 1 seconds, which causes a
# noticeable delay on the zipline CLI. # noticeable delay on the catalyst CLI.
_bundles[name] = RegisteredBundle( _bundles[name] = RegisteredBundle(
calendar_name=calendar_name, calendar_name=calendar_name,
start_session=start_session, start_session=start_session,
@@ -328,7 +328,7 @@ def _make_bundle_core():
See Also See Also
-------- --------
zipline.data.bundles.bundles catalyst.data.bundles.bundles
""" """
try: try:
del _bundles[name] del _bundles[name]
@@ -470,7 +470,7 @@ def _make_bundle_core():
timestamp : datetime timestamp : datetime
The timestamp to begin searching on or before. The timestamp to begin searching on or before.
environ : dict, optional environ : dict, optional
An environment dict to forward to zipline_root. An environment dict to forward to catalyst_root.
""" """
if bundle_name not in bundles: if bundle_name not in bundles:
raise UnknownBundle(bundle_name) raise UnknownBundle(bundle_name)
@@ -492,7 +492,7 @@ def _make_bundle_core():
raise raise
raise ValueError( raise ValueError(
'no data for bundle {bundle!r} on or before {timestamp}\n' 'no data for bundle {bundle!r} on or before {timestamp}\n'
'maybe you need to run: $ zipline ingest -b {bundle}'.format( 'maybe you need to run: $ catalyst ingest -b {bundle}'.format(
bundle=bundle_name, bundle=bundle_name,
timestamp=timestamp, timestamp=timestamp,
), ),
@@ -544,7 +544,7 @@ def _make_bundle_core():
keep_last=None, keep_last=None,
environ=os.environ): environ=os.environ):
"""Clean up data that was created with ``ingest`` or """Clean up data that was created with ``ingest`` or
``$ python -m zipline ingest`` ``$ python -m catalyst ingest``
Parameters Parameters
---------- ----------
@@ -12,8 +12,8 @@ import pandas as pd
import requests import requests
from six.moves.urllib.parse import urlencode from six.moves.urllib.parse import urlencode
from zipline.utils.calendars import register_calendar_alias from catalyst.utils.calendars import register_calendar_alias
from zipline.utils.cli import maybe_show_progress from catalyst.utils.cli import maybe_show_progress
from . import core as bundles from . import core as bundles
@@ -87,7 +87,7 @@ def fetch_symbol_metadata_frame(api_key,
retries : int, optional retries : int, optional
The number of times to retry each request before failing. The number of times to retry each request before failing.
environ : mapping[str -> str], optional environ : mapping[str -> str], optional
The environment to use to find the zipline home. By default this The environment to use to find the catalyst home. By default this
is ``os.environ``. is ``os.environ``.
show_progress : bool, optional show_progress : bool, optional
Show a progress bar for the download of this data. Show a progress bar for the download of this data.
@@ -286,7 +286,7 @@ def quandl_bundle(environ,
cache, cache,
show_progress, show_progress,
output_dir): output_dir):
"""Build a zipline data bundle from the Quandl WIKI dataset. """Build a catalyst data bundle from the Quandl WIKI dataset.
""" """
api_key = environ.get('QUANDL_API_KEY') api_key = environ.get('QUANDL_API_KEY')
metadata = fetch_symbol_metadata_frame( metadata = fetch_symbol_metadata_frame(
@@ -407,3 +407,38 @@ def quantopian_quandl_bundle(environ,
register_calendar_alias("QUANDL", "NYSE") register_calendar_alias("QUANDL", "NYSE")
CATALYST_URL = (
'https://s3.amazonaws.com/quantopian-public-zipline-data/quandl'
)
@bundles.register(
'catalyst',
calendar_name='NYSE',
minutes_per_day=390,
create_writers=False,
)
def catalyst_bundle(environ,
asset_db_writer,
minute_bar_writer,
daily_bar_writer,
adjustment_writer,
calendar,
start_session,
end_session,
cache,
show_progress,
output_dir):
if show_progress:
data = download_with_progress(
CATALYST_URL,
chunk_size=ONE_MEGABYTE,
label="Downloading Bundle: catalyst",
)
else:
data = download_without_progress(CATALYST_URL)
with tarfile.open('r', fileobj=data) as tar:
if show_progress:
print("Writing data to %s." % output_dir)
tar.extractall(output_dir)
@@ -5,8 +5,8 @@ import pandas as pd
from pandas_datareader.data import DataReader from pandas_datareader.data import DataReader
import requests import requests
from zipline.utils.calendars import register_calendar_alias from catalyst.utils.calendars import register_calendar_alias
from zipline.utils.cli import maybe_show_progress from catalyst.utils.cli import maybe_show_progress
from .core import register from .core import register
@@ -36,11 +36,11 @@ def yahoo_equities(symbols, start=None, end=None):
Examples Examples
-------- --------
This code should be added to ~/.zipline/extension.py This code should be added to ~/.catalyst/extension.py
.. code-block:: python .. code-block:: python
from zipline.data.bundles import yahoo_equities, register from catalyst.data.bundles import yahoo_equities, register
symbols = ( symbols = (
'AAPL', 'AAPL',
@@ -1,6 +1,6 @@
import numpy as np import numpy as np
import pandas as pd import pandas as pd
from zipline.data.session_bars import SessionBarReader from catalyst.data.session_bars import SessionBarReader
class ContinuousFutureSessionBarReader(SessionBarReader): class ContinuousFutureSessionBarReader(SessionBarReader):
@@ -93,7 +93,7 @@ class ContinuousFutureSessionBarReader(SessionBarReader):
@property @property
def trading_calendar(self): def trading_calendar(self):
""" """
Returns the zipline.utils.calendar.trading_calendar used to read Returns the catalyst.utils.calendar.trading_calendar used to read
the data. Can be None (if the writer didn't specify it). the data. Can be None (if the writer didn't specify it).
""" """
return self._bar_reader.trading_calendar return self._bar_reader.trading_calendar
@@ -148,7 +148,7 @@ class ContinuousFutureSessionBarReader(SessionBarReader):
Parameters Parameters
---------- ----------
asset : zipline.asset.Asset asset : catalyst.asset.Asset
The asset for which to get the last traded minute. The asset for which to get the last traded minute.
dt : pd.Timestamp dt : pd.Timestamp
The minute at which to start searching for the last traded minute. The minute at which to start searching for the last traded minute.
@@ -279,7 +279,7 @@ class ContinuousFutureMinuteBarReader(SessionBarReader):
@property @property
def trading_calendar(self): def trading_calendar(self):
""" """
Returns the zipline.utils.calendar.trading_calendar used to read Returns the catalyst.utils.calendar.trading_calendar used to read
the data. Can be None (if the writer didn't specify it). the data. Can be None (if the writer didn't specify it).
""" """
return self._bar_reader.trading_calendar return self._bar_reader.trading_calendar
@@ -334,7 +334,7 @@ class ContinuousFutureMinuteBarReader(SessionBarReader):
Parameters Parameters
---------- ----------
asset : zipline.asset.Asset asset : catalyst.asset.Asset
The asset for which to get the last traded minute. The asset for which to get the last traded minute.
dt : pd.Timestamp dt : pd.Timestamp
The minute at which to start searching for the last traded minute. The minute at which to start searching for the last traded minute.
@@ -24,45 +24,45 @@ from pandas.tslib import normalize_date
from six import iteritems from six import iteritems
from six.moves import reduce from six.moves import reduce
from zipline.assets import ( from catalyst.assets import (
Asset, Asset,
AssetConvertible, AssetConvertible,
Equity, Equity,
Future, Future,
PricingDataAssociable, PricingDataAssociable,
) )
from zipline.assets.continuous_futures import ContinuousFuture from catalyst.assets.continuous_futures import ContinuousFuture
from zipline.data.continuous_future_reader import ( from catalyst.data.continuous_future_reader import (
ContinuousFutureSessionBarReader, ContinuousFutureSessionBarReader,
ContinuousFutureMinuteBarReader ContinuousFutureMinuteBarReader
) )
from zipline.assets.roll_finder import ( from catalyst.assets.roll_finder import (
CalendarRollFinder, CalendarRollFinder,
VolumeRollFinder VolumeRollFinder
) )
from zipline.data.dispatch_bar_reader import ( from catalyst.data.dispatch_bar_reader import (
AssetDispatchMinuteBarReader, AssetDispatchMinuteBarReader,
AssetDispatchSessionBarReader AssetDispatchSessionBarReader
) )
from zipline.data.resample import ( from catalyst.data.resample import (
DailyHistoryAggregator, DailyHistoryAggregator,
ReindexMinuteBarReader, ReindexMinuteBarReader,
ReindexSessionBarReader, ReindexSessionBarReader,
) )
from zipline.data.history_loader import ( from catalyst.data.history_loader import (
DailyHistoryLoader, DailyHistoryLoader,
MinuteHistoryLoader, MinuteHistoryLoader,
) )
from zipline.data.us_equity_pricing import NoDataOnDate from catalyst.data.us_equity_pricing import NoDataOnDate
from zipline.utils.math_utils import ( from catalyst.utils.math_utils import (
nansum, nansum,
nanmean, nanmean,
nanstd nanstd
) )
from zipline.utils.memoize import remember_last, weak_lru_cache from catalyst.utils.memoize import remember_last, weak_lru_cache
from zipline.utils.pandas_utils import timedelta_to_integral_minutes from catalyst.utils.pandas_utils import timedelta_to_integral_minutes
from zipline.errors import ( from catalyst.errors import (
NoTradeDataAvailableTooEarly, NoTradeDataAvailableTooEarly,
NoTradeDataAvailableTooLate, NoTradeDataAvailableTooLate,
HistoryWindowStartsBeforeData, HistoryWindowStartsBeforeData,
@@ -100,7 +100,7 @@ _DEF_D_HIST_PREFETCH = DEFAULT_DAILY_HISTORY_PREFETCH
class DataPortal(object): class DataPortal(object):
"""Interface to all of the data that a zipline simulation needs. """Interface to all of the data that a catalyst simulation needs.
This is used by the simulation runner to answer questions about the data, This is used by the simulation runner to answer questions about the data,
like getting the prices of assets on a given day or to service history like getting the prices of assets on a given day or to service history
@@ -108,9 +108,9 @@ class DataPortal(object):
Parameters Parameters
---------- ----------
asset_finder : zipline.assets.assets.AssetFinder asset_finder : catalyst.assets.assets.AssetFinder
The AssetFinder instance used to resolve assets. The AssetFinder instance used to resolve assets.
trading_calendar: zipline.utils.calendar.exchange_calendar.TradingCalendar trading_calendar: catalyst.utils.calendar.exchange_calendar.TradingCalendar
The calendar instance used to provide minute->session information. The calendar instance used to provide minute->session information.
first_trading_day : pd.Timestamp first_trading_day : pd.Timestamp
The first trading day for the simulation. The first trading day for the simulation.
@@ -154,8 +154,6 @@ class DataPortal(object):
minute_history_prefetch_length=_DEF_M_HIST_PREFETCH, minute_history_prefetch_length=_DEF_M_HIST_PREFETCH,
daily_history_prefetch_length=_DEF_D_HIST_PREFETCH): daily_history_prefetch_length=_DEF_D_HIST_PREFETCH):
print 'trading_calendar: {0}'.format(trading_calendar)
self.trading_calendar = trading_calendar self.trading_calendar = trading_calendar
self.asset_finder = asset_finder self.asset_finder = asset_finder
@@ -879,7 +877,7 @@ class DataPortal(object):
Parameters Parameters
---------- ----------
assets : list of zipline.data.Asset objects assets : list of catalyst.data.Asset objects
The assets whose data is desired. The assets whose data is desired.
bar_count: int bar_count: int
@@ -22,7 +22,7 @@ from numpy import (
) )
from six import iteritems, with_metaclass from six import iteritems, with_metaclass
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
class AssetDispatchBarReader(with_metaclass(ABCMeta)): class AssetDispatchBarReader(with_metaclass(ABCMeta)):
@@ -30,8 +30,8 @@ class AssetDispatchBarReader(with_metaclass(ABCMeta)):
Parameters Parameters
---------- ----------
- trading_calendar : zipline.utils.trading_calendar.TradingCalendar - trading_calendar : catalyst.utils.trading_calendar.TradingCalendar
- asset_finder : zipline.assets.AssetFinder - asset_finder : catalyst.assets.AssetFinder
- readers : dict - readers : dict
A dict mapping Asset type to the corresponding A dict mapping Asset type to the corresponding
[Minute|Session]BarReader [Minute|Session]BarReader
@@ -26,16 +26,16 @@ from toolz import sliding_window
from six import with_metaclass from six import with_metaclass
from zipline.assets import Equity, Future from catalyst.assets import Equity, Future
from zipline.assets.continuous_futures import ContinuousFuture from catalyst.assets.continuous_futures import ContinuousFuture
from zipline.lib._int64window import AdjustedArrayWindow as Int64Window from catalyst.lib._int64window import AdjustedArrayWindow as Int64Window
from zipline.lib._float64window import AdjustedArrayWindow as Float64Window from catalyst.lib._float64window import AdjustedArrayWindow as Float64Window
from zipline.lib.adjustment import Float64Multiply, Float64Add from catalyst.lib.adjustment import Float64Multiply, Float64Add
from zipline.utils.cache import ExpiringCache from catalyst.utils.cache import ExpiringCache
from zipline.utils.math_utils import number_of_decimal_places from catalyst.utils.math_utils import number_of_decimal_places
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
from zipline.utils.numpy_utils import float64_dtype from catalyst.utils.numpy_utils import float64_dtype
from zipline.utils.pandas_utils import find_in_sorted_index from catalyst.utils.pandas_utils import find_in_sorted_index
# Default number of decimal places used for rounding asset prices. # Default number of decimal places used for rounding asset prices.
DEFAULT_ASSET_PRICE_DECIMALS = 3 DEFAULT_ASSET_PRICE_DECIMALS = 3
@@ -29,7 +29,7 @@ from ..utils.paths import (
data_root, data_root,
) )
from ..utils.deprecate import deprecated from ..utils.deprecate import deprecated
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
logger = logbook.Logger('Loader') logger = logbook.Logger('Loader')
@@ -104,7 +104,7 @@ def load_market_data(trading_day=None, trading_days=None, bm_symbol='SPY',
Bank of Canada is also available. Bank of Canada is also available.
Results downloaded from the internet are cached in Results downloaded from the internet are cached in
~/.zipline/data. Subsequent loads will attempt to read from the cached ~/.catalyst/data. Subsequent loads will attempt to read from the cached
files before falling back to redownload. files before falling back to redownload.
Parameters Parameters
@@ -30,19 +30,19 @@ import tables
from six import with_metaclass from six import with_metaclass
from toolz import keymap, valmap from toolz import keymap, valmap
from zipline.data._minute_bar_internal import ( from catalyst.data._minute_bar_internal import (
minute_value, minute_value,
find_position_of_minute, find_position_of_minute,
find_last_traded_position_internal find_last_traded_position_internal
) )
from zipline.gens.sim_engine import NANOS_IN_MINUTE from catalyst.gens.sim_engine import NANOS_IN_MINUTE
from zipline.data.bar_reader import BarReader, NoDataOnDate from catalyst.data.bar_reader import BarReader, NoDataOnDate
from zipline.data.us_equity_pricing import check_uint32_safe from catalyst.data.us_equity_pricing import check_uint32_safe
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
from zipline.utils.cli import maybe_show_progress from catalyst.utils.cli import maybe_show_progress
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
logger = logbook.Logger('MinuteBars') logger = logbook.Logger('MinuteBars')
@@ -187,7 +187,7 @@ class BcolzMinuteBarMetadata(object):
ohlc_ratio : int ohlc_ratio : int
The factor by which the pricing data is multiplied so that the The factor by which the pricing data is multiplied so that the
float data can be stored as an integer. float data can be stored as an integer.
calendar : zipline.utils.calendars.trading_calendar.TradingCalendar calendar : catalyst.utils.calendars.trading_calendar.TradingCalendar
The TradingCalendar on which the minute bars are based. The TradingCalendar on which the minute bars are based.
start_session : datetime start_session : datetime
The first trading session in the data set. The first trading session in the data set.
@@ -358,7 +358,7 @@ class BcolzMinuteBarWriter(object):
rootdir : string rootdir : string
Path to the root directory into which to write the metadata and Path to the root directory into which to write the metadata and
bcolz subdirectories. bcolz subdirectories.
calendar : zipline.utils.calendars.trading_calendar.TradingCalendar calendar : catalyst.utils.calendars.trading_calendar.TradingCalendar
The trading calendar on which to base the minute bars. Used to The trading calendar on which to base the minute bars. Used to
get the market opens used as a starting point for each periodic get the market opens used as a starting point for each periodic
span of minutes in the index, and the market closes that span of minutes in the index, and the market closes that
@@ -436,7 +436,7 @@ class BcolzMinuteBarWriter(object):
See Also See Also
-------- --------
zipline.data.minute_bars.BcolzMinuteBarReader catalyst.data.minute_bars.BcolzMinuteBarReader
""" """
COL_NAMES = ('open', 'high', 'low', 'close', 'volume') COL_NAMES = ('open', 'high', 'low', 'close', 'volume')
@@ -895,7 +895,7 @@ class BcolzMinuteBarReader(MinuteBarReader):
See Also See Also
-------- --------
zipline.data.minute_bars.BcolzMinuteBarWriter catalyst.data.minute_bars.BcolzMinuteBarWriter
""" """
FIELDS = ('open', 'high', 'low', 'close', 'volume') FIELDS = ('open', 'high', 'low', 'close', 'volume')
@@ -18,17 +18,17 @@ import numpy as np
import pandas as pd import pandas as pd
from six import with_metaclass from six import with_metaclass
from zipline.data._resample import ( from catalyst.data._resample import (
_minute_to_session_open, _minute_to_session_open,
_minute_to_session_high, _minute_to_session_high,
_minute_to_session_low, _minute_to_session_low,
_minute_to_session_close, _minute_to_session_close,
_minute_to_session_volume, _minute_to_session_volume,
) )
from zipline.data.bar_reader import NoDataOnDate from catalyst.data.bar_reader import NoDataOnDate
from zipline.data.minute_bars import MinuteBarReader from catalyst.data.minute_bars import MinuteBarReader
from zipline.data.session_bars import SessionBarReader from catalyst.data.session_bars import SessionBarReader
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
_MINUTE_TO_SESSION_OHCLV_HOW = OrderedDict(( _MINUTE_TO_SESSION_OHCLV_HOW = OrderedDict((
('open', 'first'), ('open', 'first'),
@@ -50,7 +50,7 @@ def minute_frame_to_session_frame(minute_frame, calendar):
minute_frame : pd.DataFrame minute_frame : pd.DataFrame
A DataFrame with the columns `open`, `high`, `low`, `close`, `volume`, A DataFrame with the columns `open`, `high`, `low`, `close`, `volume`,
and `dt` (minute dts) and `dt` (minute dts)
calendar : zipline.utils.calendars.trading_calendar.TradingCalendar calendar : catalyst.utils.calendars.trading_calendar.TradingCalendar
A TradingCalendar on which session labels to resample from minute A TradingCalendar on which session labels to resample from minute
to session. to session.
@@ -610,7 +610,7 @@ class ReindexBarReader(with_metaclass(ABCMeta)):
Parameters Parameters
---------- ----------
- trading_calendar : zipline.utils.trading_calendar.TradingCalendar - trading_calendar : catalyst.utils.trading_calendar.TradingCalendar
The calendar to use when indexing results from the reader. The calendar to use when indexing results from the reader.
- reader : MinuteBarReader|SessionBarReader - reader : MinuteBarReader|SessionBarReader
The reader which has a calendar that is a subset of the desired The reader which has a calendar that is a subset of the desired
@@ -13,7 +13,7 @@
# limitations under the License. # limitations under the License.
from abc import abstractproperty from abc import abstractproperty
from zipline.data.bar_reader import BarReader from catalyst.data.bar_reader import BarReader
class SessionBarReader(BarReader): class SessionBarReader(BarReader):
@@ -53,23 +53,23 @@ from six import (
) )
from toolz import compose from toolz import compose
from zipline.data.session_bars import SessionBarReader from catalyst.data.session_bars import SessionBarReader
from zipline.data.bar_reader import ( from catalyst.data.bar_reader import (
NoDataAfterDate, NoDataAfterDate,
NoDataBeforeDate, NoDataBeforeDate,
NoDataOnDate, NoDataOnDate,
) )
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
from zipline.utils.functional import apply from catalyst.utils.functional import apply
from zipline.utils.preprocess import call from catalyst.utils.preprocess import call
from zipline.utils.input_validation import ( from catalyst.utils.input_validation import (
expect_element, expect_element,
preprocess, preprocess,
verify_indices_all_unique, verify_indices_all_unique,
) )
from zipline.utils.sqlite_utils import group_into_chunks, coerce_string_to_conn from catalyst.utils.sqlite_utils import group_into_chunks, coerce_string_to_conn
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
from zipline.utils.cli import maybe_show_progress from catalyst.utils.cli import maybe_show_progress
from ._equities import _compute_row_slices, _read_bcolz_data from ._equities import _compute_row_slices, _read_bcolz_data
from ._adjustments import load_adjustments_from_sqlite from ._adjustments import load_adjustments_from_sqlite
@@ -173,7 +173,7 @@ class BcolzDailyBarWriter(object):
---------- ----------
filename : str filename : str
The location at which we should write our output. The location at which we should write our output.
calendar : zipline.utils.calendar.trading_calendar calendar : catalyst.utils.calendar.trading_calendar
Calendar to use to compute asset calendar offsets. Calendar to use to compute asset calendar offsets.
start_session: pd.Timestamp start_session: pd.Timestamp
Midnight UTC session label. Midnight UTC session label.
@@ -182,7 +182,7 @@ class BcolzDailyBarWriter(object):
See Also See Also
-------- --------
zipline.data.us_equity_pricing.BcolzDailyBarReader catalyst.data.us_equity_pricing.BcolzDailyBarReader
""" """
_csv_dtypes = { _csv_dtypes = {
'open': float64, 'open': float64,
@@ -492,7 +492,7 @@ class BcolzDailyBarReader(SessionBarReader):
See Also See Also
-------- --------
zipline.data.us_equity_pricing.BcolzDailyBarWriter catalyst.data.us_equity_pricing.BcolzDailyBarWriter
""" """
def __init__(self, table, read_all_threshold=3000): def __init__(self, table, read_all_threshold=3000):
self._maybe_table_rootdir = table self._maybe_table_rootdir = table
@@ -847,7 +847,7 @@ class PanelBarReader(SessionBarReader):
""" """
Parameters Parameters
---------- ----------
asset : zipline.asset.Asset asset : catalyst.asset.Asset
The asset identifier. The asset identifier.
dt : datetime64-like dt : datetime64-like
Midnight of the day for which data is requested. Midnight of the day for which data is requested.
@@ -883,7 +883,7 @@ class SQLiteAdjustmentWriter(object):
See Also See Also
-------- --------
zipline.data.us_equity_pricing.SQLiteAdjustmentReader catalyst.data.us_equity_pricing.SQLiteAdjustmentReader
""" """
def __init__(self, def __init__(self,
@@ -1197,7 +1197,7 @@ class SQLiteAdjustmentWriter(object):
See Also See Also
-------- --------
zipline.data.us_equity_pricing.SQLiteAdjustmentReader catalyst.data.us_equity_pricing.SQLiteAdjustmentReader
""" """
self.write_frame('splits', splits) self.write_frame('splits', splits)
self.write_frame('mergers', mergers) self.write_frame('mergers', mergers)
@@ -1277,7 +1277,7 @@ class SQLiteAdjustmentReader(object):
See Also See Also
-------- --------
:class:`zipline.data.us_equity_pricing.SQLiteAdjustmentWriter` :class:`catalyst.data.us_equity_pricing.SQLiteAdjustmentWriter`
""" """
@preprocess(conn=coerce_string_to_conn) @preprocess(conn=coerce_string_to_conn)
+2 -2
View File
@@ -14,7 +14,7 @@
# limitations under the License. # limitations under the License.
from textwrap import dedent from textwrap import dedent
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
class ZiplineError(Exception): class ZiplineError(Exception):
@@ -782,7 +782,7 @@ class UnsupportedPipelineOutput(ZiplineError):
class NonSliceableTerm(ZiplineError): class NonSliceableTerm(ZiplineError):
""" """
Raised when attempting to index into a non-sliceable term, e.g. instances Raised when attempting to index into a non-sliceable term, e.g. instances
of `zipline.pipeline.term.LoadableTerm`. of `catalyst.pipeline.term.LoadableTerm`.
""" """
msg = "Taking slices of {term} is not currently supported." msg = "Taking slices of {term} is not currently supported."
@@ -3,11 +3,11 @@ import os
from toolz import merge from toolz import merge
from zipline import run_algorithm from catalyst import run_algorithm
# These are used by test_examples.py to discover the examples to run. # These are used by test_examples.py to discover the examples to run.
from zipline.utils.calendars import register_calendar, get_calendar from catalyst.utils.calendars import register_calendar, get_calendar
EXAMPLE_MODULES = {} EXAMPLE_MODULES = {}
for f in os.listdir(os.path.dirname(__file__)): for f in os.listdir(os.path.dirname(__file__)):
@@ -64,7 +64,7 @@ _cols_to_check = [
def run_example(example_name, environ): def run_example(example_name, environ):
""" """
Run an example module from zipline.examples. Run an example module from catalyst.examples.
""" """
mod = EXAMPLE_MODULES[example_name] mod = EXAMPLE_MODULES[example_name]
@@ -13,7 +13,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from zipline.api import order, symbol from catalyst.api import order, symbol
stocks = ['AAPL', 'MSFT'] stocks = ['AAPL', 'MSFT']
@@ -31,7 +31,7 @@ def handle_data(context, data):
def _test_args(): def _test_args():
"""Extra arguments to use when zipline's automated tests run this example. """Extra arguments to use when catalyst's automated tests run this example.
""" """
import pandas as pd import pandas as pd
@@ -9,7 +9,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"%matplotlib inline\n", "%matplotlib inline\n",
"%load_ext zipline" "%load_ext catalyst"
] ]
}, },
{ {
@@ -2170,9 +2170,9 @@
} }
], ],
"source": [ "source": [
"%%zipline --start=2011-1-1 --end=2013-1-1\n", "%%catalyst --start=2011-1-1 --end=2013-1-1\n",
"\n", "\n",
"from zipline.api import order, record, symbol\n", "from catalyst.api import order, record, symbol\n",
"import matplotlib.pyplot as plt\n", "import matplotlib.pyplot as plt\n",
"\n", "\n",
"def initialize(context):\n", "def initialize(context):\n",
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from zipline.api import order, record, symbol from catalyst.api import order, record, symbol
def initialize(context): def initialize(context):
@@ -44,7 +44,7 @@ def analyze(context=None, results=None):
def _test_args(): def _test_args():
"""Extra arguments to use when zipline's automated tests run this example. """Extra arguments to use when catalyst's automated tests run this example.
""" """
import pandas as pd import pandas as pd
@@ -24,7 +24,7 @@ momentum).
""" """
from zipline.api import order, record, symbol from catalyst.api import order, record, symbol
# Import exponential moving average from talib wrapper # Import exponential moving average from talib wrapper
from talib import EMA from talib import EMA
@@ -99,7 +99,7 @@ def analyze(context=None, results=None):
def _test_args(): def _test_args():
"""Extra arguments to use when zipline's automated tests run this example. """Extra arguments to use when catalyst's automated tests run this example.
""" """
import pandas as pd import pandas as pd
@@ -22,7 +22,7 @@ its shares once the averages cross again (indicating downwards
momentum). momentum).
""" """
from zipline.api import order_target, record, symbol from catalyst.api import order_target, record, symbol
def initialize(context): def initialize(context):
@@ -98,7 +98,7 @@ def analyze(context=None, results=None):
def _test_args(): def _test_args():
"""Extra arguments to use when zipline's automated tests run this example. """Extra arguments to use when catalyst's automated tests run this example.
""" """
import pandas as pd import pandas as pd
@@ -3,7 +3,7 @@ A simple Pipeline algorithm that longs the top 3 stocks by RSI and shorts
the bottom 3 each day. the bottom 3 each day.
""" """
from six import viewkeys from six import viewkeys
from zipline.api import ( from catalyst.api import (
attach_pipeline, attach_pipeline,
date_rules, date_rules,
order_target_percent, order_target_percent,
@@ -11,9 +11,9 @@ from zipline.api import (
record, record,
schedule_function, schedule_function,
) )
from zipline.pipeline import Pipeline from catalyst.pipeline import Pipeline
from zipline.pipeline.factors.crypto import RSI as cRSI from catalyst.pipeline.factors.crypto import RSI as cRSI
from zipline.pipeline.factors.equity import RSI as eRSI from catalyst.pipeline.factors.equity import RSI as eRSI
def make_pipeline(): def make_pipeline():
@@ -73,7 +73,7 @@ def before_trading_start(context, data):
def _test_args(): def _test_args():
""" """
Extra arguments to use when zipline's automated tests run this example. Extra arguments to use when catalyst's automated tests run this example.
Notes for testers: Notes for testers:
@@ -2,14 +2,14 @@ import sys
import logbook import logbook
import numpy as np import numpy as np
from zipline.finance import commission from catalyst.finance import commission
zipline_logging = logbook.NestedSetup([ catalyst_logging = logbook.NestedSetup([
logbook.NullHandler(), logbook.NullHandler(),
logbook.StreamHandler(sys.stdout, level=logbook.INFO), logbook.StreamHandler(sys.stdout, level=logbook.INFO),
logbook.StreamHandler(sys.stderr, level=logbook.ERROR), logbook.StreamHandler(sys.stderr, level=logbook.ERROR),
]) ])
zipline_logging.push_application() catalyst_logging.push_application()
STOCKS = ['AMD', 'CERN', 'COST', 'DELL', 'GPS', 'INTC', 'MMM'] STOCKS = ['AMD', 'CERN', 'COST', 'DELL', 'GPS', 'INTC', 'MMM']
@@ -157,7 +157,7 @@ def analyze(context=None, results=None):
def _test_args(): def _test_args():
"""Extra arguments to use when zipline's automated tests run this example. """Extra arguments to use when catalyst's automated tests run this example.
""" """
import pandas as pd import pandas as pd
@@ -7,9 +7,9 @@ from six import with_metaclass, iteritems
from collections import namedtuple from collections import namedtuple
from toolz import groupby from toolz import groupby
from zipline.utils.enum import enum from catalyst.utils.enum import enum
from zipline.utils.numpy_utils import vectorized_is_element from catalyst.utils.numpy_utils import vectorized_is_element
from zipline.assets import Asset from catalyst.assets import Asset
Restriction = namedtuple( Restriction = namedtuple(
@@ -203,7 +203,7 @@ class SecurityListRestrictions(Restrictions):
Parameters Parameters
---------- ----------
restrictions : zipline.utils.security_list.SecurityList restrictions : catalyst.utils.security_list.SecurityList
The restrictions defined by a SecurityList The restrictions defined by a SecurityList
""" """
@@ -18,21 +18,21 @@ from copy import copy
from six import iteritems from six import iteritems
from zipline.assets import Equity, Future, Asset from catalyst.assets import Equity, Future, Asset
from zipline.finance.order import Order from catalyst.finance.order import Order
from zipline.finance.slippage import ( from catalyst.finance.slippage import (
DEFAULT_FUTURE_VOLUME_SLIPPAGE_BAR_LIMIT, DEFAULT_FUTURE_VOLUME_SLIPPAGE_BAR_LIMIT,
VolatilityVolumeShare, VolatilityVolumeShare,
VolumeShareSlippage, VolumeShareSlippage,
) )
from zipline.finance.commission import ( from catalyst.finance.commission import (
DEFAULT_PER_CONTRACT_COST, DEFAULT_PER_CONTRACT_COST,
FUTURE_EXCHANGE_FEES_BY_SYMBOL, FUTURE_EXCHANGE_FEES_BY_SYMBOL,
PerContract, PerContract,
PerShare, PerShare,
) )
from zipline.finance.cancel_policy import NeverCancel from catalyst.finance.cancel_policy import NeverCancel
from zipline.utils.input_validation import expect_types from catalyst.utils.input_validation import expect_types
log = Logger('Blotter') log = Logger('Blotter')
warning_logger = Logger('AlgoWarning') warning_logger = Logger('AlgoWarning')
@@ -98,13 +98,13 @@ class Blotter(object):
Parameters Parameters
---------- ----------
asset : zipline.assets.Asset asset : catalyst.assets.Asset
The asset that this order is for. The asset that this order is for.
amount : int amount : int
The amount of shares to order. If ``amount`` is positive, this is The amount of shares to order. If ``amount`` is positive, this is
the number of shares to buy or cover. If ``amount`` is negative, the number of shares to buy or cover. If ``amount`` is negative,
this is the number of shares to sell or short. this is the number of shares to sell or short.
style : zipline.finance.execution.ExecutionStyle style : catalyst.finance.execution.ExecutionStyle
The execution style for the order. The execution style for the order.
order_id : str, optional order_id : str, optional
The unique identifier for this order. The unique identifier for this order.
@@ -332,7 +332,7 @@ class Blotter(object):
Parameters Parameters
---------- ----------
bar_data: zipline._protocol.BarData bar_data: catalyst._protocol.BarData
Notes Notes
----- -----
@@ -17,7 +17,7 @@ import abc
from abc import abstractmethod from abc import abstractmethod
from six import with_metaclass from six import with_metaclass
from zipline.gens.sim_engine import SESSION_END from catalyst.gens.sim_engine import SESSION_END
class CancelPolicy(with_metaclass(abc.ABCMeta)): class CancelPolicy(with_metaclass(abc.ABCMeta)):
@@ -32,10 +32,10 @@ class CancelPolicy(with_metaclass(abc.ABCMeta)):
---------- ----------
event : enum-value event : enum-value
An event type, one of: An event type, one of:
- :data:`zipline.gens.sim_engine.BAR` - :data:`catalyst.gens.sim_engine.BAR`
- :data:`zipline.gens.sim_engine.DAY_START` - :data:`catalyst.gens.sim_engine.DAY_START`
- :data:`zipline.gens.sim_engine.DAY_END` - :data:`catalyst.gens.sim_engine.DAY_END`
- :data:`zipline.gens.sim_engine.MINUTE_END` - :data:`catalyst.gens.sim_engine.MINUTE_END`
Returns Returns
------- -------
@@ -18,10 +18,10 @@ from collections import defaultdict
from six import with_metaclass from six import with_metaclass
from toolz import merge from toolz import merge
from zipline.assets import Equity, Future from catalyst.assets import Equity, Future
from zipline.finance.constants import FUTURE_EXCHANGE_FEES_BY_SYMBOL from catalyst.finance.constants import FUTURE_EXCHANGE_FEES_BY_SYMBOL
from zipline.finance.shared import AllowedAssetMarker, FinancialModelMeta from catalyst.finance.shared import AllowedAssetMarker, FinancialModelMeta
from zipline.utils.dummy import DummyMapping from catalyst.utils.dummy import DummyMapping
DEFAULT_PER_SHARE_COST = 0.0075 # 0.75 cents per share DEFAULT_PER_SHARE_COST = 0.0075 # 0.75 cents per share
DEFAULT_PER_CONTRACT_COST = 0.85 # $0.85 per future contract DEFAULT_PER_CONTRACT_COST = 0.85 # $0.85 per future contract
@@ -50,13 +50,13 @@ class CommissionModel(with_metaclass(FinancialModelMeta)):
Parameters Parameters
---------- ----------
order : zipline.finance.order.Order order : catalyst.finance.order.Order
The order being processed. The order being processed.
The ``commission`` field of ``order`` is a float indicating the The ``commission`` field of ``order`` is a float indicating the
amount of commission already charged on this order. amount of commission already charged on this order.
transaction : zipline.finance.transaction.Transaction transaction : catalyst.finance.transaction.Transaction
The transaction being processed. A single order may generate The transaction being processed. A single order may generate
multiple transactions if there isn't enough volume in a given bar multiple transactions if there isn't enough volume in a given bar
to fill the full amount requested in the order. to fill the full amount requested in the order.
@@ -100,7 +100,7 @@ FUTURE_EXCHANGE_FEES_BY_SYMBOL = {
'YS': 0.75, # Silver e-mini 'YS': 0.75, # Silver e-mini
} }
# See `zipline.finance.slippage.VolatilityVolumeShare` for more information on # See `catalyst.finance.slippage.VolatilityVolumeShare` for more information on
# how these constants are used. # how these constants are used.
DEFAULT_ETA = 0.049018143225019836 DEFAULT_ETA = 0.049018143225019836
ROOT_SYMBOL_TO_ETA = { ROOT_SYMBOL_TO_ETA = {
@@ -19,7 +19,7 @@ import pandas as pd
from six import with_metaclass from six import with_metaclass
from zipline.errors import ( from catalyst.errors import (
AccountControlViolation, AccountControlViolation,
TradingControlViolation, TradingControlViolation,
) )
@@ -137,7 +137,7 @@ class RestrictedListOrder(TradingControl):
Parameters Parameters
---------- ----------
restrictions : zipline.finance.asset_restrictions.Restrictions restrictions : catalyst.finance.asset_restrictions.Restrictions
Object representing restrictions of a group of assets. Object representing restrictions of a group of assets.
""" """
@@ -19,11 +19,11 @@ from sys import float_info
from six import with_metaclass from six import with_metaclass
import zipline.utils.math_utils as zp_math import catalyst.utils.math_utils as zp_math
from numpy import isfinite from numpy import isfinite
from zipline.errors import BadOrderParameters from catalyst.errors import BadOrderParameters
class ExecutionStyle(with_metaclass(abc.ABCMeta)): class ExecutionStyle(with_metaclass(abc.ABCMeta)):
@@ -17,10 +17,10 @@ import uuid
from six import text_type from six import text_type
import zipline.protocol as zp import catalyst.protocol as zp
from zipline.assets import Asset from catalyst.assets import Asset
from zipline.utils.enum import enum from catalyst.utils.enum import enum
from zipline.utils.input_validation import expect_types from catalyst.utils.input_validation import expect_types
ORDER_STATUS = enum( ORDER_STATUS = enum(
'OPEN', 'OPEN',
@@ -76,7 +76,7 @@ import logbook
import numpy as np import numpy as np
from collections import namedtuple from collections import namedtuple
from zipline.assets import Future from catalyst.assets import Future
try: try:
# optional cython based OrderedDict # optional cython based OrderedDict
@@ -86,7 +86,7 @@ except ImportError:
from six import itervalues, iteritems from six import itervalues, iteritems
import zipline.protocol as zp import catalyst.protocol as zp
log = logbook.Logger('Performance') log = logbook.Logger('Performance')
TRADE_TYPE = zp.DATASOURCE_TYPE.TRADE TRADE_TYPE = zp.DATASOURCE_TYPE.TRADE
@@ -37,8 +37,8 @@ from collections import OrderedDict
import numpy as np import numpy as np
import logbook import logbook
from zipline.assets import Future, Asset from catalyst.assets import Future, Asset
from zipline.utils.input_validation import expect_types from catalyst.utils.input_validation import expect_types
log = logbook.Logger('Performance') log = logbook.Logger('Performance')
@@ -153,11 +153,11 @@ class Position(object):
@expect_types(asset=Asset) @expect_types(asset=Asset)
def adjust_commission_cost_basis(self, asset, cost): def adjust_commission_cost_basis(self, asset, cost):
""" """
A note about cost-basis in zipline: all positions are considered A note about cost-basis in catalyst: all positions are considered
to share a cost basis, even if they were executed in different to share a cost basis, even if they were executed in different
transactions with different commission costs, different prices, etc. transactions with different commission costs, different prices, etc.
Due to limitations about how zipline handles positions, zipline will Due to limitations about how catalyst handles positions, catalyst will
currently spread an externally-delivered commission charge across currently spread an externally-delivered commission charge across
all shares in a position. all shares in a position.
""" """
@@ -22,11 +22,11 @@ from math import isnan
from six import iteritems, itervalues from six import iteritems, itervalues
from zipline.finance.performance.position import Position from catalyst.finance.performance.position import Position
from zipline.finance.transaction import Transaction from catalyst.finance.transaction import Transaction
from zipline.utils.input_validation import expect_types from catalyst.utils.input_validation import expect_types
import zipline.protocol as zp import catalyst.protocol as zp
from zipline.assets import ( from catalyst.assets import (
Future, Future,
Asset Asset
) )
@@ -52,7 +52,7 @@ Performance Tracking
| _metrics | calculated based on the positions aggregated | | _metrics | calculated based on the positions aggregated |
| | through all the events delivered to this tracker. | | | through all the events delivered to this tracker. |
| | For details look at the comments for | | | For details look at the comments for |
| | :py:meth:`zipline.finance.risk.RiskMetrics.to_dict`| | | :py:meth:`catalyst.finance.risk.RiskMetrics.to_dict`|
+-----------------+----------------------------------------------------+ +-----------------+----------------------------------------------------+
""" """
@@ -64,9 +64,9 @@ import logbook
import pandas as pd import pandas as pd
from pandas.tseries.tools import normalize_date from pandas.tseries.tools import normalize_date
from zipline.finance.performance.period import PerformancePeriod from catalyst.finance.performance.period import PerformancePeriod
from zipline.errors import NoFurtherDataError from catalyst.errors import NoFurtherDataError
import zipline.finance.risk as risk import catalyst.finance.risk as risk
from . position_tracker import PositionTracker from . position_tracker import PositionTracker
@@ -22,13 +22,13 @@ from pandas import isnull
from six import with_metaclass from six import with_metaclass
from toolz import merge from toolz import merge
from zipline.assets import Equity, Future from catalyst.assets import Equity, Future
from zipline.errors import HistoryWindowStartsBeforeData from catalyst.errors import HistoryWindowStartsBeforeData
from zipline.finance.constants import ROOT_SYMBOL_TO_ETA from catalyst.finance.constants import ROOT_SYMBOL_TO_ETA
from zipline.finance.shared import AllowedAssetMarker, FinancialModelMeta from catalyst.finance.shared import AllowedAssetMarker, FinancialModelMeta
from zipline.finance.transaction import create_transaction from catalyst.finance.transaction import create_transaction
from zipline.utils.cache import ExpiringCache from catalyst.utils.cache import ExpiringCache
from zipline.utils.dummy import DummyMapping from catalyst.utils.dummy import DummyMapping
SELL = 1 << 0 SELL = 1 << 0
BUY = 1 << 1 BUY = 1 << 1
@@ -54,7 +54,7 @@ def fill_price_worse_than_limit_price(fill_price, order):
fill_price: float fill_price: float
The price to check. The price to check.
order: zipline.finance.order.Order order: catalyst.finance.order.Order
The order whose limit price to check. The order whose limit price to check.
Returns Returns
@@ -20,11 +20,11 @@ from pandas.tslib import normalize_date
from six import string_types from six import string_types
from sqlalchemy import create_engine from sqlalchemy import create_engine
from zipline.assets import AssetDBWriter, AssetFinder from catalyst.assets import AssetDBWriter, AssetFinder
from zipline.assets.continuous_futures import CHAIN_PREDICATES from catalyst.assets.continuous_futures import CHAIN_PREDICATES
from zipline.data.loader import load_market_data from catalyst.data.loader import load_market_data
from zipline.utils.calendars import get_calendar from catalyst.utils.calendars import get_calendar
from zipline.utils.memoize import remember_last from catalyst.utils.memoize import remember_last
log = logbook.Logger('Trading') log = logbook.Logger('Trading')
@@ -34,7 +34,7 @@ DEFAULT_CAPITAL_BASE = 1e5
class TradingEnvironment(object): class TradingEnvironment(object):
""" """
The financial simulations in zipline depend on information The financial simulations in catalyst depend on information
about the benchmark index and the risk free rates of return. about the benchmark index and the risk free rates of return.
The benchmark index defines the benchmark returns used in The benchmark index defines the benchmark returns used in
the calculation of performance metrics such as alpha/beta. Many the calculation of performance metrics such as alpha/beta. Many
@@ -49,7 +49,7 @@ class TradingEnvironment(object):
ensure proper rollover through daylight savings and so on. ensure proper rollover through daylight savings and so on.
User code will not normally need to use TradingEnvironment User code will not normally need to use TradingEnvironment
directly. If you are extending zipline's core financial directly. If you are extending catalyst's core financial
components and need to use the environment, you must import the module and components and need to use the environment, you must import the module and
build a new TradingEnvironment object, then pass that TradingEnvironment as build a new TradingEnvironment object, then pass that TradingEnvironment as
the 'env' arg to your TradingAlgorithm. the 'env' arg to your TradingAlgorithm.
@@ -16,9 +16,9 @@ from __future__ import division
from copy import copy from copy import copy
from zipline.assets import Asset from catalyst.assets import Asset
from zipline.protocol import DATASOURCE_TYPE from catalyst.protocol import DATASOURCE_TYPE
from zipline.utils.input_validation import expect_types from catalyst.utils.input_validation import expect_types
class Transaction(object): class Transaction(object):
@@ -15,11 +15,11 @@
from contextlib2 import ExitStack from contextlib2 import ExitStack
from logbook import Logger, Processor from logbook import Logger, Processor
from pandas.tslib import normalize_date from pandas.tslib import normalize_date
from zipline.protocol import BarData from catalyst.protocol import BarData
from zipline.utils.api_support import ZiplineAPI from catalyst.utils.api_support import ZiplineAPI
from six import viewkeys from six import viewkeys
from zipline.gens.sim_engine import ( from catalyst.gens.sim_engine import (
BAR, BAR,
SESSION_START, SESSION_START,
SESSION_END, SESSION_END,
@@ -19,7 +19,7 @@ import numbers
from hashlib import md5 from hashlib import md5
from datetime import datetime from datetime import datetime
from zipline.protocol import DATASOURCE_TYPE from catalyst.protocol import DATASOURCE_TYPE
from six import iteritems, b from six import iteritems, b
@@ -5,7 +5,7 @@ from libc.math cimport log
cimport numpy as np cimport numpy as np
import numpy as np import numpy as np
from zipline.utils.numpy_utils import unsigned_int_dtype_with_size_in_bytes from catalyst.utils.numpy_utils import unsigned_int_dtype_with_size_in_bytes
np.import_array() np.import_array()
@@ -7,9 +7,9 @@ file that's defined a type symbol named `databuffer` that can be used like a
See Also See Also
-------- --------
zipline.lib._floatwindow catalyst.lib._floatwindow
zipline.lib._intwindow catalyst.lib._intwindow
zipline.lib._datewindow catalyst.lib._datewindow
""" """
from numpy cimport ndarray from numpy cimport ndarray
from numpy import asanyarray, dtype, issubdtype from numpy import asanyarray, dtype, issubdtype
@@ -13,18 +13,18 @@ from numpy import (
uint32, uint32,
uint8, uint8,
) )
from zipline.errors import ( from catalyst.errors import (
WindowLengthNotPositive, WindowLengthNotPositive,
WindowLengthTooLong, WindowLengthTooLong,
) )
from zipline.lib.labelarray import LabelArray from catalyst.lib.labelarray import LabelArray
from zipline.utils.numpy_utils import ( from catalyst.utils.numpy_utils import (
datetime64ns_dtype, datetime64ns_dtype,
float64_dtype, float64_dtype,
int64_dtype, int64_dtype,
uint8_dtype, uint8_dtype,
) )
from zipline.utils.memoize import lazyval from catalyst.utils.memoize import lazyval
# These class names are all the same because of our bootleg templating system. # These class names are all the same because of our bootleg templating system.
from ._float64window import AdjustedArrayWindow as Float64Window from ._float64window import AdjustedArrayWindow as Float64Window
@@ -274,7 +274,7 @@ def ensure_ndarray(ndarray_or_adjusted_array):
Parameters Parameters
---------- ----------
ndarray_or_adjusted_array : numpy.ndarray | zipline.data.adjusted_array ndarray_or_adjusted_array : numpy.ndarray | catalyst.data.adjusted_array
Returns Returns
------- -------
@@ -5,7 +5,7 @@ from pandas import isnull, Timestamp
from numpy cimport float64_t, uint8_t, int64_t from numpy cimport float64_t, uint8_t, int64_t
from numpy import asarray, datetime64, float64, int64 from numpy import asarray, datetime64, float64, int64
from zipline.utils.compat import unicode from catalyst.utils.compat import unicode
# Purely for readability. There aren't C-level declarations for these types. # Purely for readability. There aren't C-level declarations for these types.
ctypedef object Int64Index_t ctypedef object Int64Index_t
@@ -786,7 +786,7 @@ cdef class ObjectOverwrite(_ObjectAdjustment):
cpdef mutate(self, object data): cpdef mutate(self, object data):
# data is an object here because this is intended to be used with a # data is an object here because this is intended to be used with a
# `zipline.lib.LabelArray`. # `catalyst.lib.LabelArray`.
# We don't do this in a loop because we only want to look up the label # We don't do this in a loop because we only want to look up the label
# code in the array's categories once. # code in the array's categories once.
@@ -10,22 +10,22 @@ from numpy import ndarray
import pandas as pd import pandas as pd
from toolz import compose from toolz import compose
from zipline.utils.compat import unicode from catalyst.utils.compat import unicode
from zipline.utils.functional import instance from catalyst.utils.functional import instance
from zipline.utils.preprocess import preprocess from catalyst.utils.preprocess import preprocess
from zipline.utils.sentinel import sentinel from catalyst.utils.sentinel import sentinel
from zipline.utils.input_validation import ( from catalyst.utils.input_validation import (
coerce, coerce,
expect_kinds, expect_kinds,
expect_types, expect_types,
optional, optional,
) )
from zipline.utils.numpy_utils import ( from catalyst.utils.numpy_utils import (
bool_dtype, bool_dtype,
unsigned_int_dtype_with_size_in_bytes, unsigned_int_dtype_with_size_in_bytes,
is_object, is_object,
) )
from zipline.utils.pandas_utils import ignore_pandas_nan_categorical_warning from catalyst.utils.pandas_utils import ignore_pandas_nan_categorical_warning
from ._factorize import ( from ._factorize import (
factorize_strings, factorize_strings,
@@ -17,7 +17,7 @@ from numpy cimport (
from numpy import apply_along_axis, float64, isnan, nan from numpy import apply_along_axis, float64, isnan, nan
from scipy.stats import rankdata from scipy.stats import rankdata
from zipline.utils.numpy_utils import ( from catalyst.utils.numpy_utils import (
is_missing, is_missing,
float64_dtype, float64_dtype,
int64_dtype, int64_dtype,
@@ -1,5 +1,5 @@
from __future__ import print_function from __future__ import print_function
from zipline.assets import AssetFinder from catalyst.assets import AssetFinder
from .classifiers import Classifier, CustomClassifier from .classifiers import Classifier, CustomClassifier
from .engine import SimplePipelineEngine from .engine import SimplePipelineEngine
@@ -1,7 +1,7 @@
""" """
Utilities for creating public APIs (e.g. argument validation decorators). Utilities for creating public APIs (e.g. argument validation decorators).
""" """
from zipline.utils.input_validation import preprocess from catalyst.utils.input_validation import preprocess
def restrict_to_dtype(dtype, message_template): def restrict_to_dtype(dtype, message_template):
@@ -10,7 +10,7 @@ def restrict_to_dtype(dtype, message_template):
Terms with a specific dtype. Terms with a specific dtype.
This is conceptually similar to This is conceptually similar to
zipline.utils.input_validation.expect_dtypes, but provides more flexibility catalyst.utils.input_validation.expect_dtypes, but provides more flexibility
for providing error messages that are specifically targeting Term methods. for providing error messages that are specifically targeting Term methods.
Parameters Parameters
@@ -8,15 +8,15 @@ import re
from numpy import where, isnan, nan, zeros from numpy import where, isnan, nan, zeros
import pandas as pd import pandas as pd
from zipline.lib.labelarray import LabelArray from catalyst.lib.labelarray import LabelArray
from zipline.lib.quantiles import quantiles from catalyst.lib.quantiles import quantiles
from zipline.pipeline.api_utils import restrict_to_dtype from catalyst.pipeline.api_utils import restrict_to_dtype
from zipline.pipeline.sentinels import NotSpecified from catalyst.pipeline.sentinels import NotSpecified
from zipline.pipeline.term import ComputableTerm from catalyst.pipeline.term import ComputableTerm
from zipline.utils.compat import unicode from catalyst.utils.compat import unicode
from zipline.utils.input_validation import expect_types, expect_dtypes from catalyst.utils.input_validation import expect_types, expect_dtypes
from zipline.utils.memoize import classlazyval from catalyst.utils.memoize import classlazyval
from zipline.utils.numpy_utils import ( from catalyst.utils.numpy_utils import (
categorical_dtype, categorical_dtype,
int64_dtype, int64_dtype,
vectorized_is_element, vectorized_is_element,
@@ -330,7 +330,7 @@ class Classifier(RestrictedDTypeMixin, ComputableTerm):
Called with the result of a pipeline. This needs to return an object Called with the result of a pipeline. This needs to return an object
which can be put into the workspace to continue doing computations. which can be put into the workspace to continue doing computations.
This is the inverse of :func:`~zipline.pipeline.term.Term.postprocess`. This is the inverse of :func:`~catalyst.pipeline.term.Term.postprocess`.
""" """
if self.dtype == int64_dtype: if self.dtype == int64_dtype:
return super(Classifier, self).to_workspace_value(result, assets) return super(Classifier, self).to_workspace_value(result, assets)
@@ -409,7 +409,7 @@ class Relabel(SingleInputMixin, Classifier):
Parameters Parameters
---------- ----------
arg : zipline.pipeline.Classifier arg : catalyst.pipeline.Classifier
Term produceing the input to be relabeled. Term produceing the input to be relabeled.
relabel_func : function(LabelArray) -> LabelArray relabel_func : function(LabelArray) -> LabelArray
Function to apply to the result of `term`. Function to apply to the result of `term`.
@@ -455,8 +455,8 @@ class CustomClassifier(PositiveWindowLengthMixin,
See Also See Also
-------- --------
zipline.pipeline.CustomFactor catalyst.pipeline.CustomFactor
zipline.pipeline.CustomFilter catalyst.pipeline.CustomFilter
""" """
def _allocate_output(self, windows, shape): def _allocate_output(self, windows, shape):
""" """
@@ -481,9 +481,9 @@ class Latest(LatestMixin, CustomClassifier):
See Also See Also
-------- --------
zipline.pipeline.data.dataset.BoundColumn.latest catalyst.pipeline.data.dataset.BoundColumn.latest
zipline.pipeline.factors.factor.Latest catalyst.pipeline.factors.factor.Latest
zipline.pipeline.filters.filter.Latest catalyst.pipeline.filters.filter.Latest
""" """
pass pass

Some files were not shown because too many files have changed in this diff Show More