我是新来的Python和尝试修改对交易脚本,我发现这里: https://github.com/quantopian/zipline/blob/master/zipline/examples/pairtrade.py的Python:KeyError异常“转向”
原来的脚本设计只使用价格。我想使用回报来适合我的模型和投资数量的价格,但我不明白它是如何做到的。
我曾尝试:
- 在主定义返回的数据帧,并调用它在运行
- 在主定义返回的数据帧为全局对象,并使用在需要的地方在“句柄数据”
- 直接在句柄数据,以限定retuns的数据帧
我假设的最后一个选项是最合适的,但然后我有熊猫错误“转向” ATTRIB UTE。
更具体我尝试定义“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)
其中“数据”是含有价格,stock1,stock2和stock3列名全局定义的数据帧。处理数据中的那些行返回错误:
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'
有人会知道为什么以及如何正确执行该操作吗?
非常感谢, 文森特
它是导致异常的最后一行吗? ('DataRegression = DataRegression.dropna(axis = 0)'?) – 2013-02-11 12:35:39
这是第二行导致异常 – VincentH 2013-02-11 12:41:26
(这更有意义的错误!)这是否意味着'DataRegression [Stock1] .shift(1 )'抛出相同的异常?你能确认'type(DataRegression [Stock1])'的输出吗? – 2013-02-11 12:52:17