我正在尝试对我的谈判环境进行策略测试 在for循环中,它检查比较列表值并在将值存储在数据帧中后给出输出信号买入或卖出
按列表尝试进入数据框,但每次都会出现来自熊猫的键盘错误
for i in range(len(merged_DF)):
if signal == "":
stock_ret.append(0)
if i > 0:
if bar_num[i]>=2 and macd[i]>macd_sig[i] and macd_slope[i]>macd_sig_slope[i]:
signal = "Buy"
elif bar_num[i]<=-2 and macd[i]<macd_sig[i] and macd_slope[i]<macd_sig_slope[i]:
signal = "Sell"
elif signal == "Buy":
stock_ret.append((merged_DF["close"][i]/merged_DF["close"][i-1])-1)
if i > 0:
if bar_num[i]<=-2 and macd[i]<macd_sig[i] and macd_slope[i]<macd_sig_slope[i]:
signal = "Sell"
elif macd[i]<macd_sig[i] and macd_slope[i]<macd_sig_slope[i]:
signal = ""
elif signal == "Sell":
stock_ret.append((merged_DF["close"][i-1]/merged_DF["close"][i])-1)
if i > 0:
if bar_num[i]>=2 and macd[i]>macd_sig[i] and macd_slope[i]>macd_sig_slope[i]:
signal = "Buy"
elif macd[i]>macd_sig[i] and macd_slope[i]>macd_sig_slope[i]:
signal = ""
Traceback (most recent call last):
File "<ipython-input-26-b5a1f393f490>", line 12, in <module>
stock_ret.append((merged_DF["close"][i]/merged_DF["close"][i-1])-1)
File "c:\users\ramakrishnamekala\appdata\local\programs\python\python36\lib\site-packages\pandas\core\series.py", line 1071, in __getitem__
result = self.index.get_value(self, key)
File "c:\users\ramakrishnamekala\appdata\local\programs\python\python36\lib\site-packages\pandas\core\indexes\base.py", line 4730, in get_value
return self._engine.get_value(s, k, tz=getattr(series.dtype, "tz", None))
File "pandas/_libs/index.pyx", line 80, in pandas._libs.index.IndexEngine.get_value
File "pandas/_libs/index.pyx", line 88, in pandas._libs.index.IndexEngine.get_value
File "pandas/_libs/index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 992, in pandas._libs.hashtable.Int64HashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 998, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: 2
信号=买入或卖出或无