mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-29 07:56:38 +08:00
ef4f642e62
This patch lays the groundwork for a compute engine designed to facilitate construction of factor-based universe screening and portfolio allocation. It contains: A new module, `zipline.modelling`, containing entities that can be used to express computations as dependency graphs. Each node in such a graph is an instance of the base `Term` class, defined in `zipline.modelling.term`. Dependency graphs are executed by instances of `FFCEngine`, defined in `zipline.modelling.engine`. A new module, `zipline.data.ffc`, containing loaders and dataset definitions for inputs to the modelling API. New `TradingAlgorithm` api methods: `add_factor`, and `add_filter`. These methods can only be called from `initialize`, and are used to inform the algorithm that each day it should compute the given terms. Computed factor results are made available through a new attribute of the `data` object in `before_trading_start` and `handle_data`. Computed filter results control which assets are available in the factor matrix on each day.
22 lines
381 B
Python
22 lines
381 B
Python
"""
|
|
Base class for FFC data loaders.
|
|
"""
|
|
from abc import (
|
|
ABCMeta,
|
|
abstractmethod,
|
|
)
|
|
|
|
|
|
from six import with_metaclass
|
|
|
|
|
|
class FFCLoader(with_metaclass(ABCMeta)):
|
|
"""
|
|
ABC for classes that can load data for use with zipline.modelling pipeline.
|
|
|
|
TODO: DOCUMENT THIS MORE!
|
|
"""
|
|
@abstractmethod
|
|
def load_adjusted_array(self, columns, mask):
|
|
pass
|