我想做的是,我必须在行上运行一个循环,如果条件满足,它应该根据我的命令打印。在索引[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行,覆盖您以前的答案
如果你不想覆盖你自己,你需要在你的第一个条件中添加一个检查,看看是否有一个"决策;值已存在。