gpt4 book ai didi

python - Zipline:泡菜回测以恢复模拟

转载 作者:行者123 更新时间:2023-11-28 19:04:27 24 4
gpt4 key购买 nike

我使用 Zipline 已经有一段时间了,能够 pickle 一个回测以便以后能够恢复它,我可以从中受益匪浅。这个想法是保存交易算法的状态并在新数据可用时更新它。我开始挑选一些我能想到的属性,但忘记了其他一些属性,因此想知道是否有人有一个简单的解决方案来做到这一点。最好的,文森特

附言:我尝试用那几行更新投资组合。一切正常,但需要覆盖更多属性。

if self.load_former_ptf:
for k, v in context.former_portfolio.__dict__.items():
self.TradingAlgorithm.portfolio.__setattr__(k, v)

updPositionDict = {}
for p in context.former_portfolio.positions.values():
formerDelta = p.amount*p.last_sale_price
newSid = context.symbol(p.sid.symbol)
newPrice = data[newSid].price
newQuantity = int(formerDelta/newPrice)
# portfolio should be made of positions instead of plain dict
updPositionDict.update({newSid:{'amount':newQuantity, 'cost_basis':p.cost_basis,
'last_sale_date':p.last_sale_price, 'last_sale_price':newPrice,
'sid':newSid}})
self.TradingAlgorithm.portfolio.positions = updPositionDict
self.load_former_ptf = False

最佳答案

...wondering if anyone had an easy solution to do that.

我没有使用过zipline,也没有针对您的要求的实现解决方案。我能帮你的只是pickling你的测试状态。

尽管根据您提供的信息,我只能了解到 perf_tracker 是您需要帮助的地方。看着its source酸洗应该没有问题(如果我错了请纠正我,因为我自己没有做过)。

您还可以阅读有关酸洗自定义对象的信息 here .另一个有趣的方法是 __repr__这有助于从字符串中重新创建对象。

关于python - Zipline:泡菜回测以恢复模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48624987/

24 4 0