gpt4 book ai didi

python - 如何更新已弃用的 python zipline.transforms 模块?

转载 作者:IT老高 更新时间:2023-10-28 21:14:19 24 4
gpt4 key购买 nike

我使用 quantopian zipline 包 http://www.zipline.io/beginner-tutorial.html 编写了一个 python 程序.我最近更新了包,发现 zipline.transforms 包已被弃用。我使用了 zipline.transforms 包中的两个函数,batch_transform()MovingAverage

除了说用 history() 函数替换 batch_transform 之外,我还没有找到一个很好的帖子来演示如何解决这个问题。但是,我不知道如何确切地替换它。我还没有找到说明如何修复 MovingAverage 弃用的帖子。

这是我正在使用的代码。

from zipline.algorithm import TradingAlgorithm
from zipline.transforms import batch_transform
from zipline.transforms import MovingAverage


class TradingStrategy(TradingAlgorithm):

def initialize(self, window_length=6):
self.add_transform(
MovingAverage, 'kernel', ['price'], window_length=self.window_length)

@batch_transform
def get_data(data, context):
'''
Collector for some days of historical prices.
'''
daily_prices = data.price[STOCKS + [BENCHMARK]]
return daily_prices

strategy = TradingStrategy()

有人可以提供一个如何更新上述代码的示例吗?鉴于 quantopian 的流行程度,我认为有很多人在处理这些问题。

最佳答案

似乎没有直接的方法可以使用 history 代替 batch_transform

在我看来,不仅方法改变了,而且它们的使用方式也完全改变了。

文档提到以下内容:

Every zipline algorithm consists of two functions you have to define:

  • 初始化(上下文)
  • handle_data(context, data)

以下是文档中使用历史方法创建一些基本移动平均线的示例:

def initialize(context):
context.i = 0
context.asset = symbol('AAPL')


def handle_data(context, data):
# Skip first 300 days to get full windows
context.i += 1
if context.i < 300:
return

# Compute averages
# data.history() has to be called with the same params
# from above and returns a pandas dataframe.
short_mavg = data.history(context.asset, 'price', bar_count=100, frequency="1d").mean()
long_mavg = data.history(context.asset, 'price', bar_count=300, frequency="1d").mean()

# Trading logic
if short_mavg > long_mavg:
# order_target orders as many shares as needed to
# achieve the desired number of shares.
order_target(context.asset, 100)
elif short_mavg < long_mavg:
order_target(context.asset, 0)

# Save values for later inspection
record(AAPL=data.current(context.asset, 'price'),
short_mavg=short_mavg,
long_mavg=long_mavg)

关于python - 如何更新已弃用的 python zipline.transforms 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46347001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com