python ZIPLINE PIPELINE策略与捆绑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python ZIPLINE PIPELINE策略与捆绑相关的知识,希望对你有一定的参考价值。
from zipline.pipeline import CustomFactor, Pipeline, CustomFilter
from zipline import TradingAlgorithm
from zipline.api import symbols, attach_pipeline, schedule_function, date_rules, time_rules, pipeline_output
from zipline.pipeline.factors import Returns
import numpy as np
import pandas as pd
from datetime import datetime
from zipline import run_algorithm
from zipline.api import order, record, symbol
import pytz
class SecurityInList(CustomFactor):
inputs = []
window_length = 1
securities = []
def compute(self, today, assets, out):
out[:] = np.in1d(assets, self.securities)
def initialize(context):
# do NOT import symbols in RESEARCH and use following to define symbol list
# sec_list = [symbols('SPY'),symbols('VEU'), symbols('SHY'), symbols('TLT'), symbols('AGG')]
sec_list = symbols ('MDY', 'EFA')
attach_pipeline(make_pipeline(sec_list, context), 'my_pipeline')
schedule_function(func=rebalance,
date_rule=date_rules.every_day(),
time_rule=time_rules.market_open(minutes=30))
def make_pipeline(sec_list, context):
# Return Factors
mask = SecurityInList()
mask.securities = sec_list
mask = mask.eq(1)
yr_returns = Returns(window_length=252, mask=mask)
pipe = Pipeline(
screen = mask,
columns = {
'yr_returns': yr_returns
}
)
return pipe
def before_trading_start(context, data):
"""
Called every day before market open.
"""
context.output = pipeline_output('my_pipeline')
print (context.output)
def rebalance (context, data) :
# print (dir(context))
print (pipeline_output('my_pipeline'))
pass
capital_base = 10000
start = datetime(2015, 1, 1, 0, 0, 0, 0, pytz.utc)
end = datetime(2016, 1, 1, 0, 0, 0, 0, pytz.utc)
result = run_algorithm(start = start, end = end, initialize=initialize,\
capital_base=capital_base,\
before_trading_start = before_trading_start,
bundle = 'etfs_bundle')
以上是关于python ZIPLINE PIPELINE策略与捆绑的主要内容,如果未能解决你的问题,请参考以下文章
python ZIPLINE RUN PIPELINE
python 运行ZIPLINE PIPELINE(包括模拟输入)
python 用捆绑运行ZIPLINE PIPELINE
python ZIPLINE PIPELINE战略,没有大的因素
python ZIPLINE简单策略与管道因素
CtaAlgo vs PyAlgoTrade