我在这里尝试做的是我必须在这里的行上运行循环,在索引[7] 中它应该显示"Sell"但是如果条件不起作用,我的第二个



我想做的是,我必须在行上运行一个循环,如果条件满足,它应该根据我的命令打印。在索引[7]中;出售";但我的第二个if条件不起作用。我做错了什么?

for i in range (n_steps,(len(extended_stock_data_new)-1)):
if (extended_stock_data_new["Close"][i]<=extended_stock_data_new["Prediction"][i+1]):
extended_stock_data_new.loc[[i],"Decision"]="Buy"
if (extended_stock_data_new["Low"][i+1]<extended_stock_data_new["Prediction"][i+1]<=extended_stock_data_new["High"][i+1]):
extended_stock_data_new.loc[[i+1],"Decision"]="Sell"
else:
extended_stock_data_new.loc[[i],"Decision"]="--"

extended_stock_data_new.head(50) 
output:
0   2020-01-25 08:00:00 3295.26 3298.26 3291.30 3291.75 NaN NaN
1   2020-01-27 10:00:00 3267.88 3269.01 3253.26 3259.76 NaN NaN
2   2020-01-27 11:00:00 3259.51 3269.51 3258.26 3269.51 NaN NaN
3   2020-01-27 12:00:00 3269.76 3269.76 3265.26 3267.26 NaN NaN
4   2020-01-27 13:00:00 3267.13 3267.26 3258.76 3260.26 NaN NaN
5   2020-01-27 14:00:00 3260.51 3266.76 3260.51 3265.26 NaN NaN
6   2020-01-27 15:00:00 3265.38 3266.01 3262.76 3263.01 3264.800049 Buy
7   2020-01-27 16:00:00 3263.26 3264.26 3260.01 3260.26 3263.800049 Buy
8   2020-01-27 17:00:00 3260.51 3263.13 3259.26 3261.51 3260.699951 Buy
9   2020-01-27 18:00:00 3261.26 3264.01 3259.51 3261.76 3261.600098 Buy
10  2020-01-27 19:00:00 3262.26 3267.26 3257.76 3262.76 3262.100098 Buy
11  2020-01-27 20:00:00 3262.51 3263.01 3250.26 3254.01 3263.300049 Buy
12  2020-01-27 21:00:00 3253.76 3253.76 3240.26 3240.26 3254.800049 Buy

那么你正在重写自己:

当i==6:

  • 您分配";购买";到第i排
  • 您分配";出售";到第i+1行

当i==7:时

  • 您分配";购买";到第i行,覆盖您以前的答案

如果你不想覆盖你自己,你需要在你的第一个条件中添加一个检查,看看是否有一个"决策;值已存在。

相关内容

最新更新