运行以下pybacktest代码:
import matplotlib
import matplotlib.pyplot as plt
import pybacktest
import pandas as pd
short_ma = 50
long_ma = 200
ohlc = pybacktest.load_from_yahoo('AAPL', start=2000)
ohlc.tail()
ms = ohlc.C.rolling(short_ma).mean()
ml = ohlc.C.rolling(long_ma).mean()
buy = cover = (ms > ml) & (ms.shift() < ml.shift()) # ma cross up
sell = short = (ms < ml) & (ms.shift() > ml.shift()) # ma cross down
bt = pybacktest.Backtest(locals(), 'ma_cross')
print(bt.summary())
bt.plot_equity()
我在标题中看到了错误,有关更多信息,请参见此屏幕截图:
有人知道解决这个问题的方法吗
因此,按照这一思路:
AttributeError: 'DataFrame' object has no attribute 'ix'
我使用WingWare的调用堆栈来备份调用
__getattribute__
我换了一行:
(backtest.py的第188行)带有:
感谢commenter@GustiAdli的确认
该代码也适用于Jupyter笔记本,正确的代码应为:
正确的输出应为:
我正在为此更改(以及需要执行的其他修复)创建一个新的存储库:
https://github.com/enjoysmath/pybacktest
因为最初的消息似乎被忽略了(最近一期消息来自去年)
相关问题 更多 >
编程相关推荐