我使用Zipline-1.1.1、Python3.4.6创建动态股票选择器,如下所示:
from zipline.pipeline import Pipeline, engine
from zipline.pipeline.factors import AverageDollarVolume, Returns
def make_pipeline():
dollar_volume = AverageDollarVolume(window_length=1)
high_dollar_volume = dollar_volume.percentile_between(N, 100)
recent_returns = Returns(window_length=N, mask=high_dollar_volume)
low_returns = recent_returns.percentile_between(0, n)
high_returns = recent_returns.percentile_between(N, 100)
pipe_columns = {
'low_returns': low_returns,
'high_returns': high_returns,
'recent_returns': recent_returns,
'dollar_volume': dollar_volume
}
pipe_screen = (low_returns | high_returns)
pipe = Pipeline(columns=pipe_columns, screen=pipe_screen)
return pipe
我用以下命令初始化管道对象:
^{pr2}$但当我试图填充管道时,它失败了:
result = engine.PipelineEngine.run_pipeline(my_pipe, '2017-07-10', '2017-07-11')
Traceback (most recent call last):
File "<input>", line 1, in <module>
result = engine.PipelineEngine.run_pipeline(my_pipe, '2017-07-10', '2017-07-11')
TypeError: run_pipeline() missing 1 required positional argument: 'end_date'
我不知道出了什么问题,任何帮助都是非常感谢的。在
如果我没弄错,您使用的是this库。在
就我所看到的代码而言,要想使用
run_pipeline
方法,必须先instantiate打开管道引擎,例如SimplePipelineEngine
。您需要它,因为PipelineEngine
是一个类,甚至是抽象类,而不是对象。在因此,您必须创建
SimplePipelineEngine
类的对象,然后对其调用run_pipeline
。你可以这样做:当然,您必须首先创建
your_loader
等。在Here是
SimplePipelineEngine
用法的示例。我希望这会有帮助。在相关问题 更多 >
编程相关推荐