我有这张表:(为了方便起见,第4-19行被隐藏了),如果要满足条件,我想通过比较当前行值和满足条件的上一行值来更新值
close id SMA20 RSI14 MACD signal
0 9200.0 100 9196.450 69.381191 1.921696 1
1 9300.0 100 9196.450 69.381191 -1.921696 -1
2 9215.0 101 9198.400 79.360997 -1.044195 -1
3 9214.0 102 9200.300 77.546365 -0.605997 -1
20 9150.0 120 9190.675 17.256473 -4.207557 -1
21 9149.5 121 9187.400 17.094844 -4.734598
在此示例中,我的当前行为21,我想将9149.5与信号与我的前一行20(-1)相同的前一行进行比较,因此最早的行将是具有9300的第一行,我想将此与每一行进行比较。如果diff> 150,则信号应返回最早行的相反值,否则将保持不变。这是我尚未合并的函数,但下面是信号列的当前函数,并且将df应用于:
if price > sma20 and macd >1 and rsi14 > 40: #buy
return 1
elif price < sma20 or macd <1 or rsi14 < 40: #sell
return -1
else:
return 0
我真的很困惑,不确定使用什么功能。有没有办法在函数中应用df以包括上面的行?或者,如果我们可以更方便地修改信号功能,将不胜感激。谢谢!