我是 Python 新手,并尝试修改我在这里找到的配对交易脚本: https ://github.com/quantopian/zipline/blob/master/zipline/examples/pairtrade.py
原始脚本旨在仅使用价格。我想使用回报来适应我的模型和投资数量的价格,但我不知道该怎么做。
我试过了:
- 在 main 中定义返回的数据框并在运行中调用它
- 将 main 中的返回数据框定义为全局对象,并在“处理数据”中需要时使用
- 直接在句柄数据中定义一个retuns的数据框
我认为最后一个选项是最合适的,但是熊猫'shift'属性出现错误。
更具体地说,我尝试将“DataRegression”定义如下:
DataRegression = data.copy()
DataRegression[Stock1]=DataRegression[Stock1]/DataRegression[Stock1].shift(1)-1
DataRegression[Stock2]=DataRegression[Stock2]/DataRegression[Stock2].shift(1)-1
DataRegression[Stock3]=DataRegression[Stock3]/DataRegression[Stock3].shift(1)-1
DataRegression = DataRegression.dropna(axis=0)
其中“数据”是一个数据框,其中包含全局定义的价格、库存 1、库存 2 和库存 3 列名称。句柄数据中的那些行返回错误:
File "A:\Apps\Python\Python.2.7.3.x86\lib\site-packages\zipline-0.5.6-py2.7.egg\zipline\utils\protocol_utils.py", line 85, in __getattr__
return self.__internal[key]
KeyError: 'shift'
有谁知道为什么以及如何正确地做到这一点?
非常感谢,文森特